
Compiler output is identical before & after this step git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6037 212acab6-be3b-0410-9dea-997c60f758d6
105 lines
2.4 KiB
Python
105 lines
2.4 KiB
Python
target = "NSIS"
|
|
Import('BuildUtil env')
|
|
|
|
files = Split("""
|
|
nsismenu/nsismenu.cpp
|
|
nsismenu/nslinks.cpp
|
|
""")
|
|
|
|
resources = Split("""
|
|
nsismenu/nsisicon.ico
|
|
""")
|
|
|
|
rc = 'nsismenu/nsismenu.rc'
|
|
|
|
libs = Split("""
|
|
advapi32
|
|
comctl32
|
|
gdi32
|
|
shell32
|
|
user32
|
|
""")
|
|
|
|
if env['UNICODE']:
|
|
libs.append(["wxbase28u", "wxmsw28u_core", "wxmsw28u_html"])
|
|
else:
|
|
libs.append(["wxbase28", "wxmsw28_core", "wxmsw28_html"])
|
|
|
|
html = Split("""
|
|
#Menu/index.html
|
|
""")
|
|
|
|
images = Split("""
|
|
#Menu/images/line.gif
|
|
#Menu/images/site.gif
|
|
""")
|
|
|
|
|
|
if env['UNICODE']:
|
|
images.append("#Menu/images/Unicode/header.gif")
|
|
else:
|
|
images.append("#Menu/images/header.gif")
|
|
|
|
import os
|
|
from os.path import join
|
|
|
|
if env['PLATFORM'] != 'win32' and WhereIs('wx-config') or \
|
|
env['PLATFORM'] == 'win32' and env.get('WXWIN'):
|
|
|
|
# build
|
|
|
|
if env['PLATFORM'] != 'win32':
|
|
rc = libs = []
|
|
|
|
nsis_menu = BuildUtil(
|
|
target,
|
|
files,
|
|
libs,
|
|
res = rc,
|
|
resources = resources,
|
|
flags = ['$MSVCRT_FLAG', '$EXCEPTION_FLAG'],
|
|
root_util = True,
|
|
cross_platform = True
|
|
)
|
|
|
|
# manifest
|
|
|
|
if env.has_key('MSVS_VERSION'):
|
|
if float(env['MSVS_VERSION'].replace('Exp','')) >= 8.0:
|
|
manifest = env.SideEffect('%s.exe.manifest' % target, nsis_menu)
|
|
env.DistributeBin(manifest, alias='install-utils')
|
|
|
|
# set directories
|
|
|
|
if nsis_menu[0].env['PLATFORM'] == 'win32':
|
|
wxinc = [join(env['WXWIN'], 'include')]
|
|
|
|
if env['UNICODE']:
|
|
wxlib = [join(os.environ['WXWIN'], 'lib', 'vc_libunsis')]
|
|
wxinc.append(join(os.environ['WXWIN'], 'lib', 'vc_libunsis', 'mswu'))
|
|
else:
|
|
wxlib = [join(os.environ['WXWIN'], 'lib', 'vc_libnsis')]
|
|
wxinc.append(join(os.environ['WXWIN'], 'lib', 'vc_libnsis', 'msw'))
|
|
|
|
nsis_menu[0].env.Append(LIBPATH = wxlib)
|
|
nsis_menu[0].env.Append(CPPPATH = wxinc)
|
|
else:
|
|
nsis_menu[0].env.ParseConfig('wx-config --cxxflags --libs')
|
|
|
|
# install menu files
|
|
|
|
env.DistributeMenu(html, alias='install-utils')
|
|
env.DistributeMenu(images, path='images', alias='install-utils')
|
|
|
|
else:
|
|
|
|
# no wxWidgets
|
|
def err(target, source, env):
|
|
if env['PLATFORM'] == 'win32':
|
|
print '*** error: WXWIN must be set to build NSIS Menu!'
|
|
else:
|
|
print '*** error: wx-config must be in the PATH to build NSIS Menu!'
|
|
return 1
|
|
|
|
cmd = env.Command(target, files, Action(err, ''))
|
|
env.Alias('NSIS Menu', cmd)
|