Basic AMD64 System::Call support
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@6444 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
a7261be70c
commit
a7076ff238
9 changed files with 268 additions and 46 deletions
|
@ -45,7 +45,8 @@ defenv.Append(CPPDEFINES = [('NSISCALL', '$STDCALL')])
|
|||
|
||||
### asm
|
||||
|
||||
defenv.Append(ASFLAGS = ['/coff'])
|
||||
if 'x86' in defenv.get('TARGET_ARCH','x86'):
|
||||
defenv.Append(ASFLAGS = ['/coff']) # ML64 does not support /coff
|
||||
|
||||
### debug
|
||||
|
||||
|
|
|
@ -287,9 +287,10 @@ def generate(env):
|
|||
|
||||
|
||||
include_path, lib_path, exe_path, sdk_path = "", "", "", ""
|
||||
targ_arc = env.get('TARGET_ARCH', 'x86')
|
||||
|
||||
if os.environ.has_key('MSVC_USE_SCRIPT') and "None" == os.environ['MSVC_USE_SCRIPT']:
|
||||
for x in ['INCLUDE', 'LIB', 'PATH']: env['ENV'][x] = ""
|
||||
for x in ['INCLUDE', 'LIB', 'PATH', 'CL', 'LINK', 'ML']: env['ENV'][x] = ""
|
||||
if not env.WhereIs('cl', os.environ['PATH']):
|
||||
raise SCons.Errors.InternalError("CL not found in %s" % os.environ['PATH'])
|
||||
include_path = os.environ['INCLUDE']
|
||||
|
@ -309,8 +310,8 @@ def generate(env):
|
|||
env.PrependENVPath('INCLUDE', include_path)
|
||||
env.PrependENVPath('LIB', lib_path)
|
||||
env.PrependENVPath('PATH', exe_path)
|
||||
|
||||
env['ENV']['CPU'] = 'i386' # TODO: Check TARGET_ARCH for AMD64
|
||||
|
||||
env['ENV']['CPU'] = (targ_arc.upper(), 'i386')['x86' in targ_arc.lower()] # i386 or AMD64
|
||||
env['ENV']['TARGETOS'] = 'BOTH'
|
||||
env['ENV']['APPVER'] = '4.0'
|
||||
env['ENV']['MSSDK'] = sdk_path
|
||||
|
@ -319,7 +320,7 @@ def generate(env):
|
|||
env['ENV']['INETSDK'] = sdk_path
|
||||
env['ENV']['MSSDK'] = sdk_path
|
||||
env['ENV']['MSTOOLS'] = sdk_path
|
||||
|
||||
|
||||
env['CFILESUFFIX'] = '.c'
|
||||
env['CXXFILESUFFIX'] = '.cc'
|
||||
|
||||
|
@ -329,7 +330,10 @@ def generate(env):
|
|||
env['AR'] = '"' + sdk_path_AR + '"'
|
||||
env['ARFLAGS'] = SCons.Util.CLVar('/nologo')
|
||||
env['ARCOM'] = "${TEMPFILE('$AR $ARFLAGS /OUT:$TARGET $SOURCES')}"
|
||||
|
||||
|
||||
if 'AMD64' in targ_arc.upper():
|
||||
env['AS'] = 'ml64'
|
||||
|
||||
env['SHLINK'] = '$LINK'
|
||||
env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS /dll')
|
||||
env['_SHLINK_TARGETS'] = win32ShlinkTargets
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue