summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorstijn <stinos@zoho.com>2015-01-02 11:49:23 +0100
committerstijn <stinos@zoho.com>2015-01-02 16:52:07 +0100
commit8dec62a1a41f1c48aa7bdd3848c0f46a62de4f29 (patch)
treeae589d8860bbb3597fa99085b733e0521c4450ee
parentfd40a9c38e7e15850b8802fb9845dc4ea423f53b (diff)
downloadmicropython-8dec62a1a41f1c48aa7bdd3848c0f46a62de4f29.tar.gz
micropython-8dec62a1a41f1c48aa7bdd3848c0f46a62de4f29.zip
msvc: Define main build/include directories in a single location
- Use a single file env.props for defining the main directories used when building. env.props resolves the base directory and defines overridable output directories, and is used by all other build files. - Fix the build currently failing, basically because the preprocessing command for generating qstrdefs uses different include directories than the build itself does. (specifically, qstrdefs.h uses #include "py/mpconfig.h" since the fixes for #1022 in 51dfcb4, so we need to use the base directory as include directory, not the py dir itself). So define a single variable containing the include directories instead and use it where needed.
-rw-r--r--windows/msvc/common.props11
-rw-r--r--windows/msvc/env.props9
-rw-r--r--windows/msvc/genhdr.targets13
-rw-r--r--windows/msvc/sources.props4
4 files changed, 26 insertions, 11 deletions
diff --git a/windows/msvc/common.props b/windows/msvc/common.props
index ce0651d2e6..4bc5df5413 100644
--- a/windows/msvc/common.props
+++ b/windows/msvc/common.props
@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ImportGroup Label="PropertySheets" />
+ <ImportGroup Label="PropertySheets">
+ <Import Project="env.props" />
+ </ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
- <OutDir>$(ProjectDir)</OutDir>
- <IntDir>$(ProjectDir)build\$(Configuration)$(Platform)\</IntDir>
+ <OutDir>$(PyOutDir)</OutDir>
+ <IntDir>$(PyBuildDir)$(Configuration)$(Platform)\</IntDir>
+ <PyIncDirs>$(PyBaseDir);$(PyBaseDir)windows;$(PyBaseDir)windows\msvc;$(PyBuildDir)</PyIncDirs>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
- <AdditionalIncludeDirectories>.\;..\;.\build;.\msvc</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>$(PyIncDirs);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>_USE_MATH_DEFINES;_CRT_SECURE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>false</SDLCheck>
<WarningLevel>Level1</WarningLevel>
diff --git a/windows/msvc/env.props b/windows/msvc/env.props
new file mode 100644
index 0000000000..824b529e67
--- /dev/null
+++ b/windows/msvc/env.props
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <PyBaseDir>$([System.IO.Path]::GetFullPath(`$(MSBuildThisFileDirectory)..\..`))\</PyBaseDir>
+ <PyBuildDir Condition="'$(PyBuildDir)'==''">$(MSBuildThisFileDirectory)build\</PyBuildDir>
+ <PyOutDir Condition="'$(PyOutDir)'==''">$(PyBaseDir)windows\</PyOutDir>
+ <PyEnvIncluded>True</PyEnvIncluded>
+ </PropertyGroup>
+</Project>
diff --git a/windows/msvc/genhdr.targets b/windows/msvc/genhdr.targets
index e359b44419..fe0abbe093 100644
--- a/windows/msvc/genhdr.targets
+++ b/windows/msvc/genhdr.targets
@@ -1,12 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="GenerateHeaders">
+ <Import Project="env.props" Condition="$(PyEnvIncluded)!=True"/>
+
<Target Name="GenerateHeaders" DependsOnTargets="MakeQstrData;MakeVersionHeader">
</Target>
<PropertyGroup>
- <SrcDir>$(MsBuildThisFileDirectory)..\..\py\</SrcDir>
- <DestDir>$(MsBuildThisFileDirectory)..\build\genhdr\</DestDir>
+ <SrcDir>$(PyBaseDir)py\</SrcDir>
+ <DestDir>$(PyBuildDir)genhdr\</DestDir>
</PropertyGroup>
<Target Name="MakeDestDir">
@@ -17,10 +19,13 @@
<Target Name="MakeQstrData" DependsOnTargets="MakeDestDir">
<PropertyGroup>
<PreProc>$(DestDir)qstrdefs.preprocessed.h</PreProc>
- <QstrDefs>$(MsBuildThisFileDirectory)..\..\unix\qstrdefsport.h</QstrDefs>
+ <QstrDefs>$(PyBaseDir)unix\qstrdefsport.h</QstrDefs>
<DestFile>$(DestDir)qstrdefs.generated.h</DestFile>
</PropertyGroup>
- <Exec Command="cl /nologo /I$(SrcDir) /I$(MsBuildThisFileDirectory).. /Fi$(PreProc) /P $(SrcDir)qstrdefs.h"/>
+ <ItemGroup>
+ <PyIncDirs Include="$(PyIncDirs)"/>
+ </ItemGroup>
+ <Exec Command="cl /nologo /I@(PyIncDirs, ' /I') /Fi$(PreProc) /P $(SrcDir)qstrdefs.h"/>
<Exec Command="python $(SrcDir)makeqstrdata.py $(PreProc) $(QstrDefs) > $(DestFile).tmp"/>
<Exec Command="fc /B $(DestFile).tmp $(DestFile) > NUL 2>&amp;1" IgnoreExitCode="true">
<Output TaskParameter="ExitCode" PropertyName="FilesDiffer" />
diff --git a/windows/msvc/sources.props b/windows/msvc/sources.props
index 364f36b044..7ec0b652bd 100644
--- a/windows/msvc/sources.props
+++ b/windows/msvc/sources.props
@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <PyBaseDir>$(MsbuildThisFileDirectory)..\..\</PyBaseDir>
- </PropertyGroup>
+ <Import Project="env.props" Condition="$(PyEnvIncluded)!=True"/>
<ItemGroup>
<ClCompile Include="$(PyBaseDir)py\*.c" />
<ClCompile Include="$(PyBaseDir)extmod\*.c" />