@joebigelow / wix-1 / commits / 420ce711

Enable multi-target build and dutil.nupkg

Rob Mensching committed Sep 3, 2017 at 13:25 UTC 420ce71170489840376c8236da268a7747bb607b
9 files changed +196 -27
appveyor.cmd new
+13
@@ -0,0 +1,13 @@
1 +@setlocal
2 +@pushd %~dp0
3 +
4 +msbuild -p:Configuration=Release;Platform=x86;PlatformToolset=v140_xp
5 +msbuild -p:Configuration=Release;Platform=x64;PlatformToolset=v140_xp
6 +
7 +msbuild -p:Configuration=Release;Platform=x86;PlatformToolset=v141_xp
8 +msbuild -p:Configuration=Release;Platform=x64;PlatformToolset=v141_xp
9 +
10 +msbuild -p:Configuration=Release -t:PackNativeNuget src\dutil\dutil.vcxproj
11 +
12 +@popd
13 +@endlocal
\ No newline at end of file
appveyor.yml
+6 -3
@@ -2,15 +2,18 @@ image: Visual Studio 2017
2
3 version: 0.0.0.{build}
4 configuration: Release
5 -platform:
6 - - x86
7 - - x64
5
6 environment:
7 DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
8 DOTNET_CLI_TELEMETRY_OPTOUT: 1
9 NUGET_XMLDOC_MODE: skip
10
11 +before_build:
12 + - nuget restore
13 +
14 +build_script:
15 + - appveyor.cmd
16 +
17 pull_requests:
18 do_not_increment_build_number: true
19
src/Cpp.Build.props
+93 -2
@@ -3,7 +3,98 @@
3
4 <Project>
5 <PropertyGroup>
6 - <IntDir>$(BaseIntermediateOutputPath)</IntDir>
7 - <OutDir>$(OutputPath)</OutDir>
6 + <BaseOutputPath>$(OutputPath)</BaseOutputPath>
7 + <IntDir>$(BaseIntermediateOutputPath)$(Platform)\</IntDir>
8 + <OutDir>$(OutputPath)$(Platform)\</OutDir>
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>
100 </Project>
src/NativeMultiTargeting.Build.props new
+10
@@ -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>
src/dutil/build/WixToolset.DUtil.props new
+23
@@ -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>
src/dutil/dutil.nuspec new
+23
@@ -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>
src/dutil/dutil.vcxproj
+23 -22
@@ -19,22 +19,6 @@
19 <Configuration>Release</Configuration>
20 <Platform>x64</Platform>
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>
22 </ItemGroup>
23
24 <PropertyGroup Label="Globals">
@@ -44,10 +28,11 @@
28 <MultiTargetLibrary>true</MultiTargetLibrary>
29 <PlatformToolset>v141_xp</PlatformToolset>
30 <CharacterSet>MultiByte</CharacterSet>
31 + <Description>WiX Toolset native library foundation</Description>
32 </PropertyGroup>
33
34 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
50 -
35 +<!--
36 <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
37 <UseDebugLibraries>true</UseDebugLibraries>
38 </PropertyGroup>
@@ -62,14 +47,17 @@
47 <UseDebugLibraries>false</UseDebugLibraries>
48 <WholeProgramOptimization>true</WholeProgramOptimization>
49 </PropertyGroup>
65 -
50 + -->
51 <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
52 <ImportGroup Label="ExtensionSettings">
53 </ImportGroup>
54
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')" />
57 </ImportGroup>
58
59 + <Import Project="..\NativeMultiTargeting.Build.props" />
60 +<!--
61 <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
62 <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
63 </ImportGroup>
@@ -145,6 +133,7 @@
133 <EnableCOMDATFolding>true</EnableCOMDATFolding>
134 <OptimizeReferences>true</OptimizeReferences>
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>
137 </Link>
138 </ItemDefinitionGroup>
139 <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@@ -164,8 +153,9 @@
153 <EnableCOMDATFolding>true</EnableCOMDATFolding>
154 <OptimizeReferences>true</OptimizeReferences>
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>
157 </Link>
168 - </ItemDefinitionGroup>
158 + </ItemDefinitionGroup> -->
159
160 <ItemGroup>
161 <ClCompile Include="acl2util.cpp" />
@@ -186,8 +176,7 @@
176 <ClCompile Include="dlutil.cpp" />
177 <ClCompile Include="dutil.cpp">
178 <PrecompiledHeader>Create</PrecompiledHeader>
189 - <!-- turn off typedef warning in shlobj.h -->
190 - <DisableSpecificWarnings>4091</DisableSpecificWarnings>
179 + <DisableSpecificWarnings>4091;4458</DisableSpecificWarnings>
180 </ClCompile>
181 <ClCompile Include="eseutil.cpp" />
182 <ClCompile Include="fileutil.cpp" />
@@ -293,8 +282,20 @@
282 </ItemGroup>
283
284 <ItemGroup>
285 + <None Include="packages.config" />
286 <None Include="xsd\thmutil.xsd" />
287 </ItemGroup>
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 +
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
src/dutil/dutil.vcxproj.filters
+1
@@ -361,5 +361,6 @@
361 <None Include="xsd\thmutil.xsd">
362 <Filter>Header Files</Filter>
363 </None>
364 + <None Include="packages.config" />
365 </ItemGroup>
366 </Project>
\ No newline at end of file
src/dutil/packages.config new
+4
@@ -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