]> granicus.if.org Git - python/commitdiff
Build _ctypes.pyd for win AMD64 into the MSVC project file.
authorThomas Heller <theller@ctypes.org>
Fri, 25 Aug 2006 09:26:33 +0000 (09:26 +0000)
committerThomas Heller <theller@ctypes.org>
Fri, 25 Aug 2006 09:26:33 +0000 (09:26 +0000)
Since MSVC doesn't know about .asm files, a helper batch file is needed
to find ml64.exe in predefined locations.  The helper script hardcodes
the path to the MS Platform SDK.

PCbuild/_ctypes.vcproj
PCbuild/amd64_ml64.bat [new file with mode: 0644]

index a77fdd4bed0c62eed33a5c40e48eed057f00e39b..748ee44f7f8cd78bd451d1ca07ff623f7e9dff65 100644 (file)
@@ -4,6 +4,7 @@
        Version="7.10"
        Name="_ctypes"
        ProjectGUID="{F22F40F4-D318-40DC-96B3-88DC81CE0894}"
+       RootNamespace="_ctypes"
        Keyword="Win32Proj">
        <Platforms>
                <Platform
                        CharacterSet="2">
                        <Tool
                                Name="VCCLCompilerTool"
-                               AdditionalOptions=" /USECL:MS_OPTERON"
+                               AdditionalOptions=" /USECL:MS_OPTERON /GS-"
                                InlineFunctionExpansion="1"
                                AdditionalIncludeDirectories="..\Include,..\PC,..\Modules\_ctypes\libffi_msvc"
                                PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
                </File>
                <File
                        RelativePath="..\Modules\_ctypes\libffi_msvc\win32.c">
+                       <FileConfiguration
+                               Name="ReleaseAMD64|Win32"
+                               ExcludedFromBuild="TRUE">
+                               <Tool
+                                       Name="VCCLCompilerTool"/>
+                       </FileConfiguration>
+               </File>
+               <File
+                       RelativePath="..\Modules\_ctypes\libffi_msvc\win64.asm">
+                       <FileConfiguration
+                               Name="Debug|Win32"
+                               ExcludedFromBuild="TRUE">
+                               <Tool
+                                       Name="VCCustomBuildTool"/>
+                       </FileConfiguration>
+                       <FileConfiguration
+                               Name="Release|Win32"
+                               ExcludedFromBuild="TRUE">
+                               <Tool
+                                       Name="VCCustomBuildTool"/>
+                       </FileConfiguration>
+                       <FileConfiguration
+                               Name="ReleaseAMD64|Win32">
+                               <Tool
+                                       Name="VCCustomBuildTool"
+                                       CommandLine="amd64_ml64 /nologo /c /Fo &quot;$(IntDir)\win64.obj&quot; &quot;$(InputPath)&quot;
+"
+                                       Outputs="&quot;$(IntDir)\win64.obj&quot;"/>
+                       </FileConfiguration>
+                       <FileConfiguration
+                               Name="ReleaseItanium|Win32"
+                               ExcludedFromBuild="TRUE">
+                               <Tool
+                                       Name="VCCustomBuildTool"/>
+                       </FileConfiguration>
                </File>
        </Files>
        <Globals>
diff --git a/PCbuild/amd64_ml64.bat b/PCbuild/amd64_ml64.bat
new file mode 100644 (file)
index 0000000..fa9acf1
--- /dev/null
@@ -0,0 +1,17 @@
+@echo off
+rem Try to find the AMD64 assembler and call it with the supplied arguments.
+
+set MLEXE=Microsoft Platform SDK\Bin\Win64\x86\AMD64\ml64.EXE
+
+rem For the environment variables see also
+rem http://msdn.microsoft.com/library/en-us/win64/win64/wow64_implementation_details.asp
+
+if exist "%ProgramFiles%\%MLEXE%" (
+  set ML64="%ProgramFiles%\%MLEXE%"
+) else if exist "%ProgramW6432%\%MLEXE%" (
+  set ML64="%ProgramW6432%\%MLEXE%"
+) else (
+  set ML64=ml64.exe
+)
+
+%ML64% %*