aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2017-09-03 13:25:34 -0700
committerRob Mensching <rob@firegiant.com>2017-09-03 14:24:33 -0700
commit420ce71170489840376c8236da268a7747bb607b (patch)
treeb7aa6960883e0afadb72b926659642e0b7313be7 /src
parent5d8375007754101ff2889d0e79486c8f9b7cf5ab (diff)
downloadwix-420ce71170489840376c8236da268a7747bb607b.tar.gz
wix-420ce71170489840376c8236da268a7747bb607b.tar.bz2
wix-420ce71170489840376c8236da268a7747bb607b.zip
Enable multi-target build and dutil.nupkg
Diffstat (limited to 'src')
-rw-r--r--src/Cpp.Build.props95
-rw-r--r--src/NativeMultiTargeting.Build.props10
-rw-r--r--src/dutil/build/WixToolset.DUtil.props23
-rw-r--r--src/dutil/dutil.nuspec23
-rw-r--r--src/dutil/dutil.vcxproj45
-rw-r--r--src/dutil/dutil.vcxproj.filters1
-rw-r--r--src/dutil/packages.config4
7 files changed, 177 insertions, 24 deletions
diff --git a/src/Cpp.Build.props b/src/Cpp.Build.props
index 4fa2f590..1e4d4cbc 100644
--- a/src/Cpp.Build.props
+++ b/src/Cpp.Build.props
@@ -3,7 +3,98 @@
3 3
4<Project> 4<Project>
5 <PropertyGroup> 5 <PropertyGroup>
6 <IntDir>$(BaseIntermediateOutputPath)</IntDir> 6 <BaseOutputPath>$(OutputPath)</BaseOutputPath>
7 <OutDir>$(OutputPath)</OutDir> 7 <IntDir>$(BaseIntermediateOutputPath)$(Platform)\</IntDir>
8 <OutDir>$(OutputPath)$(Platform)\</OutDir>
8 </PropertyGroup> 9 </PropertyGroup>
10
11 <ItemDefinitionGroup>
12 <ClCompile>
13 <DisableSpecificWarnings>$(DisableSpecificCompilerWarnings)</DisableSpecificWarnings>
14 <WarningLevel>Level4</WarningLevel>
15 <AdditionalIncludeDirectories>$(ProjectDir)inc;$(MSBuildProjectDirectory);$(IntDir);$(SqlCESdkIncludePath);$(ProjectAdditionalIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
16 <PreprocessorDefinitions>WIN32;_WINDOWS;_WIN32_MSI=500;_WIN32_WINNT=0x0501;$(ArmPreprocessorDefinitions);$(UnicodePreprocessorDefinitions);_CRT_STDIO_LEGACY_WIDE_SPECIFIERS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
17 <PrecompiledHeader>Use</PrecompiledHeader>
18 <PrecompiledHeaderFile>precomp.h</PrecompiledHeaderFile>
19 <CallingConvention>StdCall</CallingConvention>
20 <TreatWarningAsError>true</TreatWarningAsError>
21 <ExceptionHandling>false</ExceptionHandling>
22 <AdditionalOptions>-YlprecompDefine</AdditionalOptions>
23 <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/Zc:threadSafeInit- %(AdditionalOptions)</AdditionalOptions>
24 <MultiProcessorCompilation Condition=" $(NUMBER_OF_PROCESSORS) &gt; 4 ">true</MultiProcessorCompilation>
25 </ClCompile>
26 <ResourceCompile>
27 <PreprocessorDefinitions>$(ArmPreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
28 <AdditionalIncludeDirectories>$(ProjectAdditionalResourceIncludeDirectories);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
29 </ResourceCompile>
30 <Lib>
31 <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ProjectAdditionalLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
32 </Lib>
33 <Link>
34 <SubSystem>$(ProjectSubSystem)</SubSystem>
35 <ModuleDefinitionFile>$(ProjectModuleDefinitionFile)</ModuleDefinitionFile>
36 <NoEntryPoint>$(ResourceOnlyDll)</NoEntryPoint>
37 <GenerateDebugInformation>true</GenerateDebugInformation>
38 <AdditionalDependencies>$(ProjectAdditionalLinkLibraries);advapi32.lib;comdlg32.lib;user32.lib;oleaut32.lib;gdi32.lib;shell32.lib;ole32.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies>
39 <AdditionalLibraryDirectories>$(OutDir);$(AdditionalMultiTargetLibraryPath);$(ArmLibraryDirectories);$(ProjectAdditionalLinkLibraryDirectories);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
40 <AdditionalOptions Condition=" $(PlatformToolset.StartsWith('v14')) ">/IGNORE:4099 %(AdditionalOptions)</AdditionalOptions>
41 </Link>
42 </ItemDefinitionGroup>
43
44 <ItemDefinitionGroup Condition=" '$(Platform)'=='Win32' and '$(PlatformToolset)'!='v100'">
45 <ClCompile>
46 <EnableEnhancedInstructionSet>NoExtensions</EnableEnhancedInstructionSet>
47 </ClCompile>
48 </ItemDefinitionGroup>
49 <ItemDefinitionGroup Condition=" '$(Platform)'=='arm' ">
50 <ClCompile>
51 <CallingConvention>CDecl</CallingConvention>
52 </ClCompile>
53 </ItemDefinitionGroup>
54 <ItemDefinitionGroup Condition=" '$(ConfigurationType)'=='StaticLibrary' ">
55 <ClCompile>
56 <DebugInformationFormat>OldStyle</DebugInformationFormat>
57 <OmitDefaultLibName>true</OmitDefaultLibName>
58 <IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
59 </ClCompile>
60 </ItemDefinitionGroup>
61 <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' ">
62 <ClCompile>
63 <Optimization>Disabled</Optimization>
64 <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
65 <PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
66 <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
67 </ClCompile>
68 </ItemDefinitionGroup>
69 <ItemDefinitionGroup Condition=" '$(Configuration)'=='Debug' and '$(CLRSupport)'=='true' ">
70 <ClCompile>
71 <BasicRuntimeChecks></BasicRuntimeChecks>
72 <RuntimeLibrary>MultiThreadedDebugDll</RuntimeLibrary>
73 </ClCompile>
74 </ItemDefinitionGroup>
75 <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' ">
76 <ClCompile>
77 <Optimization>MinSpace</Optimization>
78 <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
79 <FunctionLevelLinking>true</FunctionLevelLinking>
80 <IntrinsicFunctions>true</IntrinsicFunctions>
81 <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
82 </ClCompile>
83 <Link>
84 <EnableCOMDATFolding>true</EnableCOMDATFolding>
85 <OptimizeReferences>true</OptimizeReferences>
86 </Link>
87 </ItemDefinitionGroup>
88 <ItemDefinitionGroup Condition=" '$(Configuration)'=='Release' and '$(CLRSupport)'=='true' ">
89 <ClCompile>
90 <BasicRuntimeChecks></BasicRuntimeChecks>
91 <RuntimeLibrary>MultiThreadedDll</RuntimeLibrary>
92 </ClCompile>
93 </ItemDefinitionGroup>
94 <ItemDefinitionGroup Condition=" '$(CLRSupport)'=='true' ">
95 <Link>
96 <KeyFile>$(LinkKeyFile)</KeyFile>
97 <DelaySign>$(LinkDelaySign)</DelaySign>
98 </Link>
99 </ItemDefinitionGroup>
9</Project> 100</Project>
diff --git a/src/NativeMultiTargeting.Build.props b/src/NativeMultiTargeting.Build.props
new file mode 100644
index 00000000..98b1933e
--- /dev/null
+++ b/src/NativeMultiTargeting.Build.props
@@ -0,0 +1,10 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4<Project>
5 <!-- Overrides the standard Cpp.Build.props to include the PlatformToolset in the output path. -->
6 <PropertyGroup>
7 <IntDir>$(BaseIntermediateOutputPath)$(PlatformToolset)\$(PlatformTarget)\</IntDir>
8 <OutDir>$(OutputPath)$(PlatformToolset)\$(PlatformTarget)\</OutDir>
9 </PropertyGroup>
10</Project>
diff --git a/src/dutil/build/WixToolset.DUtil.props b/src/dutil/build/WixToolset.DUtil.props
new file mode 100644
index 00000000..ec1ae2a4
--- /dev/null
+++ b/src/dutil/build/WixToolset.DUtil.props
@@ -0,0 +1,23 @@
1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3
4<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
5 <ItemDefinitionGroup>
6 <ClCompile>
7 <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
8 </ClCompile>
9 <ResourceCompile>
10 <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)native\include\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
11 </ResourceCompile>
12 </ItemDefinitionGroup>
13 <ItemDefinitionGroup Condition=" $(PlatformToolset.ToLower().StartsWith('v140')) ">
14 <Link>
15 <AdditionalDependencies>$(MSBuildThisFileDirectory)native\lib\v140\$(PlatformTarget)\dutil.lib;%(AdditionalDependencies)</AdditionalDependencies>
16 </Link>
17 </ItemDefinitionGroup>
18 <ItemDefinitionGroup Condition=" $(PlatformToolset.ToLower().StartsWith('v141')) ">
19 <Link>
20 <AdditionalDependencies>$(MSBuildThisFileDirectory)native\lib\v141\$(PlatformTarget)\dutil.lib;%(AdditionalDependencies)</AdditionalDependencies>
21 </Link>
22 </ItemDefinitionGroup>
23</Project>
diff --git a/src/dutil/dutil.nuspec b/src/dutil/dutil.nuspec
new file mode 100644
index 00000000..337d43cc
--- /dev/null
+++ b/src/dutil/dutil.nuspec
@@ -0,0 +1,23 @@
1<?xml version="1.0"?>
2<package >
3 <metadata>
4 <id>$id$</id>
5 <version>$version$</version>
6 <authors>$authors$</authors>
7 <owners>$authors$</owners>
8 <licenseUrl>https://github.com/wixtoolset/dutil/blob/master/LICENSE.TXT</licenseUrl>
9 <projectUrl>https://github.com/wixtoolset/dutil</projectUrl>
10 <requireLicenseAcceptance>false</requireLicenseAcceptance>
11 <description>$description$</description>
12 <copyright>$copyright$</copyright>
13 </metadata>
14
15 <files>
16 <file src="build\$id$.props" target="build\" />
17 <file src="inc\*" target="build\native\include" />
18 <file src="..\..\build\$configuration$\v140_xp\x64\dutil.lib" target="build\native\lib\v140\x64" />
19 <file src="..\..\build\$configuration$\v140_xp\x86\dutil.lib" target="build\native\lib\v140\x86" />
20 <file src="..\..\build\$configuration$\v141_xp\x64\dutil.lib" target="build\native\lib\v141\x64" />
21 <file src="..\..\build\$configuration$\v141_xp\x86\dutil.lib" target="build\native\lib\v141\x86" />
22 </files>
23</package>
diff --git a/src/dutil/dutil.vcxproj b/src/dutil/dutil.vcxproj
index 7bd78f1e..38608953 100644
--- a/src/dutil/dutil.vcxproj
+++ b/src/dutil/dutil.vcxproj
@@ -19,22 +19,6 @@
19 <Configuration>Release</Configuration> 19 <Configuration>Release</Configuration>
20 <Platform>x64</Platform> 20 <Platform>x64</Platform>
21 </ProjectConfiguration> 21 </ProjectConfiguration>
22 <ProjectConfiguration Include="Debug|Itanium">
23 <Configuration>Debug</Configuration>
24 <Platform>Itanium</Platform>
25 </ProjectConfiguration>
26 <ProjectConfiguration Include="Release|Itanium">
27 <Configuration>Release</Configuration>
28 <Platform>Itanium</Platform>
29 </ProjectConfiguration>
30 <ProjectConfiguration Include="Debug|ARM">
31 <Configuration>Debug</Configuration>
32 <Platform>ARM</Platform>
33 </ProjectConfiguration>
34 <ProjectConfiguration Include="Release|ARM">
35 <Configuration>Release</Configuration>
36 <Platform>ARM</Platform>
37 </ProjectConfiguration>
38 </ItemGroup> 22 </ItemGroup>
39 23
40 <PropertyGroup Label="Globals"> 24 <PropertyGroup Label="Globals">
@@ -44,10 +28,11 @@
44 <MultiTargetLibrary>true</MultiTargetLibrary> 28 <MultiTargetLibrary>true</MultiTargetLibrary>
45 <PlatformToolset>v141_xp</PlatformToolset> 29 <PlatformToolset>v141_xp</PlatformToolset>
46 <CharacterSet>MultiByte</CharacterSet> 30 <CharacterSet>MultiByte</CharacterSet>
31 <Description>WiX Toolset native library foundation</Description>
47 </PropertyGroup> 32 </PropertyGroup>
48 33
49 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> 34 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
50 35<!--
51 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> 36 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
52 <UseDebugLibraries>true</UseDebugLibraries> 37 <UseDebugLibraries>true</UseDebugLibraries>
53 </PropertyGroup> 38 </PropertyGroup>
@@ -62,14 +47,17 @@
62 <UseDebugLibraries>false</UseDebugLibraries> 47 <UseDebugLibraries>false</UseDebugLibraries>
63 <WholeProgramOptimization>true</WholeProgramOptimization> 48 <WholeProgramOptimization>true</WholeProgramOptimization>
64 </PropertyGroup> 49 </PropertyGroup>
65 50 -->
66 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> 51 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
67 <ImportGroup Label="ExtensionSettings"> 52 <ImportGroup Label="ExtensionSettings">
68 </ImportGroup> 53 </ImportGroup>
69 54
70 <ImportGroup Label="Shared"> 55 <ImportGroup Label="Shared">
56 <Import Project="..\..\packages\Nerdbank.GitVersioning.2.0.37-beta\build\Nerdbank.GitVersioning.targets" Condition="Exists('..\..\packages\Nerdbank.GitVersioning.2.0.37-beta\build\Nerdbank.GitVersioning.targets')" />
71 </ImportGroup> 57 </ImportGroup>
72 58
59 <Import Project="..\NativeMultiTargeting.Build.props" />
60<!--
73 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> 61 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
74 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> 62 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
75 </ImportGroup> 63 </ImportGroup>
@@ -145,6 +133,7 @@
145 <EnableCOMDATFolding>true</EnableCOMDATFolding> 133 <EnableCOMDATFolding>true</EnableCOMDATFolding>
146 <OptimizeReferences>true</OptimizeReferences> 134 <OptimizeReferences>true</OptimizeReferences>
147 <AdditionalDependencies>advapi32.lib;oleaut32.lib;shell32.lib;ole32.lib;version.lib;activeds.lib;adsiid.lib;crypt32.lib;msi.lib;netapi32.lib;Ws2_32.lib;cabinet.lib;shlwapi.lib;gdiplus.lib;wininet.lib;ESENT.lib;Userenv.lib;Wtsapi32.lib;Comctl32.lib;Msimg32.lib;%(AdditionalDependencies)</AdditionalDependencies> 135 <AdditionalDependencies>advapi32.lib;oleaut32.lib;shell32.lib;ole32.lib;version.lib;activeds.lib;adsiid.lib;crypt32.lib;msi.lib;netapi32.lib;Ws2_32.lib;cabinet.lib;shlwapi.lib;gdiplus.lib;wininet.lib;ESENT.lib;Userenv.lib;Wtsapi32.lib;Comctl32.lib;Msimg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
136 <GenerateDebugInformation>true</GenerateDebugInformation>
148 </Link> 137 </Link>
149 </ItemDefinitionGroup> 138 </ItemDefinitionGroup>
150 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> 139 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -164,8 +153,9 @@
164 <EnableCOMDATFolding>true</EnableCOMDATFolding> 153 <EnableCOMDATFolding>true</EnableCOMDATFolding>
165 <OptimizeReferences>true</OptimizeReferences> 154 <OptimizeReferences>true</OptimizeReferences>
166 <AdditionalDependencies>advapi32.lib;oleaut32.lib;shell32.lib;ole32.lib;version.lib;activeds.lib;adsiid.lib;crypt32.lib;msi.lib;netapi32.lib;Ws2_32.lib;cabinet.lib;shlwapi.lib;gdiplus.lib;wininet.lib;ESENT.lib;Userenv.lib;Wtsapi32.lib;Comctl32.lib;Msimg32.lib;%(AdditionalDependencies)</AdditionalDependencies> 155 <AdditionalDependencies>advapi32.lib;oleaut32.lib;shell32.lib;ole32.lib;version.lib;activeds.lib;adsiid.lib;crypt32.lib;msi.lib;netapi32.lib;Ws2_32.lib;cabinet.lib;shlwapi.lib;gdiplus.lib;wininet.lib;ESENT.lib;Userenv.lib;Wtsapi32.lib;Comctl32.lib;Msimg32.lib;%(AdditionalDependencies)</AdditionalDependencies>
156 <GenerateDebugInformation>true</GenerateDebugInformation>
167 </Link> 157 </Link>
168 </ItemDefinitionGroup> 158 </ItemDefinitionGroup> -->
169 159
170 <ItemGroup> 160 <ItemGroup>
171 <ClCompile Include="acl2util.cpp" /> 161 <ClCompile Include="acl2util.cpp" />
@@ -186,8 +176,7 @@
186 <ClCompile Include="dlutil.cpp" /> 176 <ClCompile Include="dlutil.cpp" />
187 <ClCompile Include="dutil.cpp"> 177 <ClCompile Include="dutil.cpp">
188 <PrecompiledHeader>Create</PrecompiledHeader> 178 <PrecompiledHeader>Create</PrecompiledHeader>
189 <!-- turn off typedef warning in shlobj.h --> 179 <DisableSpecificWarnings>4091;4458</DisableSpecificWarnings>
190 <DisableSpecificWarnings>4091</DisableSpecificWarnings>
191 </ClCompile> 180 </ClCompile>
192 <ClCompile Include="eseutil.cpp" /> 181 <ClCompile Include="eseutil.cpp" />
193 <ClCompile Include="fileutil.cpp" /> 182 <ClCompile Include="fileutil.cpp" />
@@ -293,8 +282,20 @@
293 </ItemGroup> 282 </ItemGroup>
294 283
295 <ItemGroup> 284 <ItemGroup>
285 <None Include="packages.config" />
296 <None Include="xsd\thmutil.xsd" /> 286 <None Include="xsd\thmutil.xsd" />
297 </ItemGroup> 287 </ItemGroup>
298 288
289 <Target Name="PackNativeNuget"
290 DependsOnTargets="GetBuildVersion">
291 <Exec Command='nuget pack dutil.nuspec -OutputDirectory $(BaseOutputPath) -Properties Configuration=$(Configuration);Id=WixToolset.DUtil;Version="$(BuildVersionSimple)";Authors="$(Authors)";Copyright="$(Copyright)";Description="$(Description)";Title="$(Title)"' />
292 </Target>
293
299 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 294 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
300</Project> 295 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
296 <PropertyGroup>
297 <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
298 </PropertyGroup>
299 <Error Condition="!Exists('..\..\packages\Nerdbank.GitVersioning.2.0.37-beta\build\Nerdbank.GitVersioning.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Nerdbank.GitVersioning.2.0.37-beta\build\Nerdbank.GitVersioning.targets'))" />
300 </Target>
301</Project> \ No newline at end of file
diff --git a/src/dutil/dutil.vcxproj.filters b/src/dutil/dutil.vcxproj.filters
index 644f45a8..b7fda8d4 100644
--- a/src/dutil/dutil.vcxproj.filters
+++ b/src/dutil/dutil.vcxproj.filters
@@ -361,5 +361,6 @@
361 <None Include="xsd\thmutil.xsd"> 361 <None Include="xsd\thmutil.xsd">
362 <Filter>Header Files</Filter> 362 <Filter>Header Files</Filter>
363 </None> 363 </None>
364 <None Include="packages.config" />
364 </ItemGroup> 365 </ItemGroup>
365</Project> \ No newline at end of file 366</Project> \ No newline at end of file
diff --git a/src/dutil/packages.config b/src/dutil/packages.config
new file mode 100644
index 00000000..191b1dee
--- /dev/null
+++ b/src/dutil/packages.config
@@ -0,0 +1,4 @@
1<?xml version="1.0" encoding="utf-8"?>
2<packages>
3 <package id="Nerdbank.GitVersioning" version="2.0.37-beta" targetFramework="native" developmentDependency="true" />
4</packages> \ No newline at end of file