* Basic System::Call support when compiling with 64-bit MinGW/GCC toolchain
* Win64 fixes git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6607 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
757d16f937
commit
286edd20c4
41 changed files with 335 additions and 232 deletions
|
@ -4,7 +4,17 @@ Import('defenv')
|
|||
|
||||
### imports
|
||||
|
||||
Import('FlagsConfigure')
|
||||
Import('FlagsConfigure GetOptionOrEnv')
|
||||
|
||||
### HACKS!
|
||||
if GetOptionOrEnv('NSIS_SCONS_GNU_ENVPATHHACK'):
|
||||
import os
|
||||
defenv['ENV']['PATH'] = os.getenv('PATH') # Major hack!
|
||||
import_env = ['SystemDrive', 'SystemRoot', 'TEMP', 'TMP', 'PATHEXT']
|
||||
for var in import_env:
|
||||
if var in os.environ:
|
||||
defenv['ENV'][var] = os.environ.get(var, '')
|
||||
#print defenv.Dump()
|
||||
|
||||
### cross compiling
|
||||
|
||||
|
@ -15,10 +25,11 @@ def cross_env(env):
|
|||
### flags
|
||||
|
||||
def entry(x,u):
|
||||
if x == 'NSISWinMainNOCRT':
|
||||
x = '_' + x
|
||||
elif x == 'DllMain':
|
||||
x = '_DllMain@12'
|
||||
if defenv['TARGET_ARCH'] == 'x86':
|
||||
if x == 'NSISWinMainNOCRT':
|
||||
x = '_' + x
|
||||
elif x == 'DllMain':
|
||||
x = '_DllMain@12'
|
||||
return '-Wl,-e%s' % x
|
||||
|
||||
defenv['ENTRY_FLAG'] = entry
|
||||
|
@ -203,6 +214,12 @@ conf.Finish()
|
|||
# sure the sections will be written in the correct order.
|
||||
#
|
||||
|
||||
if defenv['TARGET_ARCH'] == 'amd64':
|
||||
stub_env.Append(LINKFLAGS = ['-B pei-x86-64'])
|
||||
stub_uenv.Append(LINKFLAGS = ['-B pei-x86-64'])
|
||||
else:
|
||||
stub_env.Append(LINKFLAGS = ['--oformat pei-i386'])
|
||||
stub_uenv.Append(LINKFLAGS = ['--oformat pei-i386'])
|
||||
stub_env.Append(LINKFLAGS = ['-T', File('linker_script').rfile()])
|
||||
stub_uenv.Append(LINKFLAGS = ['-T', File('linker_script').rfile()])
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
OUTPUT_FORMAT(pei-i386)
|
||||
/*
|
||||
OUTPUT_FORMAT(pei-i386 VS pei-x86-64) must be set somewhere else
|
||||
*/
|
||||
SECTIONS
|
||||
{
|
||||
.text __image_base__ + __section_alignment__ :
|
||||
|
|
|
@ -118,4 +118,17 @@ def FlagsConfigure(env):
|
|||
"""
|
||||
return env.Configure(custom_tests = { 'CheckCompileFlag' : check_compile_flag, 'CheckLinkFlag': check_link_flag })
|
||||
|
||||
Export('AddAvailableLibs AddZLib FlagsConfigure GetAvailableLibs')
|
||||
def GetOptionOrEnv(name, defval = None):
|
||||
"""
|
||||
Get option set on scons command line or in os.environ
|
||||
"""
|
||||
import os
|
||||
#if optenv and optenv.has_key(name):
|
||||
# return optenv[name]
|
||||
if ARGUMENTS.has_key(name):
|
||||
return ARGUMENTS[name]
|
||||
if os.environ.has_key(name):
|
||||
return os.environ[name]
|
||||
return defval
|
||||
|
||||
Export('AddAvailableLibs AddZLib FlagsConfigure GetAvailableLibs GetOptionOrEnv')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue