issue 9981
let make_buildinfo use a temporary directory on windows
This commit is contained in:
parent
0eee1f588c
commit
33d144aa36
|
@ -19,9 +19,15 @@
|
|||
invoked as a pre-link step for pythoncore, so that overwrites
|
||||
any previous getbuildinfo.o.
|
||||
|
||||
However, if a second argument is provided, this will be used
|
||||
as a temporary directory where any getbuildinfo2.c and
|
||||
getbuildinfo.o files are put. This is useful if multiple
|
||||
configurations are being built in parallel, to avoid them
|
||||
trampling each other's files.
|
||||
|
||||
*/
|
||||
|
||||
int make_buildinfo2()
|
||||
int make_buildinfo2(const char *tmppath)
|
||||
{
|
||||
struct _stat st;
|
||||
HKEY hTortoise;
|
||||
|
@ -46,7 +52,9 @@ int make_buildinfo2()
|
|||
if (_stat(command+1, &st) < 0)
|
||||
/* subwcrev.exe not part of the release */
|
||||
return 0;
|
||||
strcat_s(command, CMD_SIZE, "\" .. ..\\Modules\\getbuildinfo.c getbuildinfo2.c");
|
||||
strcat_s(command, CMD_SIZE, "\" .. ..\\Modules\\getbuildinfo.c ");
|
||||
strcat_s(command, CMD_SIZE, tmppath);
|
||||
strcat_s(command, CMD_SIZE, "getbuildinfo2.c");
|
||||
puts(command); fflush(stdout);
|
||||
if (system(command) < 0)
|
||||
return 0;
|
||||
|
@ -55,10 +63,12 @@ int make_buildinfo2()
|
|||
|
||||
int main(int argc, char*argv[])
|
||||
{
|
||||
char command[500] = "cl.exe -c -D_WIN32 -DUSE_DL_EXPORT -D_WINDOWS -DWIN32 -D_WINDLL ";
|
||||
char command[CMD_SIZE] = "cl.exe -c -D_WIN32 -DUSE_DL_EXPORT -D_WINDOWS -DWIN32 -D_WINDLL ";
|
||||
char tmppath[CMD_SIZE] = "";
|
||||
int do_unlink, result;
|
||||
if (argc != 2) {
|
||||
fprintf(stderr, "make_buildinfo $(ConfigurationName)\n");
|
||||
char *tmpdir = NULL;
|
||||
if (argc <= 2 || argc > 3) {
|
||||
fprintf(stderr, "make_buildinfo $(ConfigurationName) [tmpdir]\n");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if (strcmp(argv[1], "Release") == 0) {
|
||||
|
@ -78,16 +88,28 @@ int main(int argc, char*argv[])
|
|||
fprintf(stderr, "unsupported configuration %s\n", argv[1]);
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if (argc > 2) {
|
||||
tmpdir = argv[2];
|
||||
strcat_s(tmppath, _countof(tmppath), tmpdir);
|
||||
strcat_s(tmppath, _countof(tmppath), "\\");
|
||||
}
|
||||
|
||||
if ((do_unlink = make_buildinfo2()))
|
||||
if ((do_unlink = make_buildinfo2(tmppath))) {
|
||||
strcat_s(command, CMD_SIZE, tmppath);
|
||||
strcat_s(command, CMD_SIZE, "getbuildinfo2.c -DSUBWCREV ");
|
||||
else
|
||||
} else
|
||||
strcat_s(command, CMD_SIZE, "..\\Modules\\getbuildinfo.c");
|
||||
strcat_s(command, CMD_SIZE, " -Fogetbuildinfo.o -I..\\Include -I..\\PC");
|
||||
strcat_s(command, CMD_SIZE, " -Fo");
|
||||
strcat_s(command, CMD_SIZE, tmppath);
|
||||
strcat_s(command, CMD_SIZE, "getbuildinfo.o -I..\\Include -I..\\PC");
|
||||
puts(command); fflush(stdout);
|
||||
result = system(command);
|
||||
if (do_unlink)
|
||||
_unlink("getbuildinfo2.c");
|
||||
if (do_unlink) {
|
||||
command[0] = '\0';
|
||||
strcat_s(command, CMD_SIZE, tmppath);
|
||||
strcat_s(command, CMD_SIZE, "getbuildinfo2.c");
|
||||
_unlink(command);
|
||||
}
|
||||
if (result < 0)
|
||||
return EXIT_FAILURE;
|
||||
return 0;
|
||||
|
|
|
@ -12,9 +12,6 @@
|
|||
<Platform
|
||||
Name="Win32"
|
||||
/>
|
||||
<Platform
|
||||
Name="x64"
|
||||
/>
|
||||
</Platforms>
|
||||
<ToolFiles>
|
||||
</ToolFiles>
|
||||
|
@ -84,64 +81,6 @@
|
|||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|x64"
|
||||
ConfigurationType="1"
|
||||
InheritedPropertySheets=".\pyproject.vsprops;.\x64.vsprops;.\release.vsprops"
|
||||
>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PreprocessorDefinitions="_CONSOLE"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManagedResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCALinkTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCManifestTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCXDCMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCBscMakeTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCFxCopTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCAppVerifierTool"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"
|
||||
/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
|
|
|
@ -59,11 +59,11 @@
|
|||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
Description="Generate build information..."
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release"
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release $(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="getbuildinfo.o"
|
||||
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
|
||||
OutputFile="$(OutDir)\$(PyDllName).dll"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
|
||||
|
@ -134,11 +134,11 @@
|
|||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
Description="Generate build information..."
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release"
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release $(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="getbuildinfo.o"
|
||||
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
|
||||
OutputFile="$(OutDir)\$(PyDllName).dll"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
|
||||
|
@ -212,11 +212,11 @@
|
|||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
Description="Generate build information..."
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Debug"
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Debug $(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="getbuildinfo.o"
|
||||
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
|
||||
OutputFile="$(OutDir)\$(PyDllName)_d.dll"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
ProgramDatabaseFile="$(OutDir)$(PyDllName)_d.pdb"
|
||||
|
@ -290,11 +290,11 @@
|
|||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
Description="Generate build information..."
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Debug"
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Debug $(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="getbuildinfo.o"
|
||||
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
|
||||
OutputFile="$(OutDir)\$(PyDllName)_d.dll"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
ProgramDatabaseFile="$(OutDir)$(PyDllName)_d.pdb"
|
||||
|
@ -364,11 +364,11 @@
|
|||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
Description="Generate build information..."
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release"
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release $(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="getbuildinfo.o"
|
||||
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
|
||||
OutputFile="$(OutDir)\$(PyDllName).dll"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
|
||||
|
@ -439,11 +439,11 @@
|
|||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
Description="Generate build information..."
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release"
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release $(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="getbuildinfo.o"
|
||||
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
|
||||
OutputFile="$(OutDir)\$(PyDllName).dll"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
|
||||
|
@ -514,11 +514,11 @@
|
|||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
Description="Generate build information..."
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release"
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release ($IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="getbuildinfo.o"
|
||||
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
|
||||
OutputFile="$(OutDir)\$(PyDllName).dll"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
|
||||
|
@ -589,11 +589,11 @@
|
|||
<Tool
|
||||
Name="VCPreLinkEventTool"
|
||||
Description="Generate build information..."
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release"
|
||||
CommandLine=""$(SolutionDir)make_buildinfo.exe" Release $(IntDir)"
|
||||
/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="getbuildinfo.o"
|
||||
AdditionalDependencies="$(IntDir)\getbuildinfo.o"
|
||||
OutputFile="$(OutDir)\$(PyDllName).dll"
|
||||
IgnoreDefaultLibraryNames="libc"
|
||||
ProgramDatabaseFile="$(OutDir)$(PyDllName).pdb"
|
||||
|
|
Loading…
Reference in New Issue