diff options
author | Simon Rozman <simon@rozman.si> | 2020-11-04 15:39:27 +0100 |
---|---|---|
committer | Simon Rozman <simon@rozman.si> | 2020-11-04 16:44:01 +0100 |
commit | b8401ad25b5d6c37266e7fee59c0bc201b07f388 (patch) | |
tree | 912c65422cb7cc9953267da81177dff3e18e4828 /api/api.vcxproj | |
parent | api: rename GetVersion to GetRunningDriverVersion (diff) | |
download | wintun-b8401ad25b5d6c37266e7fee59c0bc201b07f388.tar.xz wintun-b8401ad25b5d6c37266e7fee59c0bc201b07f388.zip |
api: upgrade nci.lib and wintun-inf.h building
The additional build steps performed are now attached to the build
process using BeforeTargets/AfterTargets.
Signed-off-by: Simon Rozman <simon@rozman.si>
Diffstat (limited to 'api/api.vcxproj')
-rw-r--r-- | api/api.vcxproj | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/api/api.vcxproj b/api/api.vcxproj index f93551d..2501337 100644 --- a/api/api.vcxproj +++ b/api/api.vcxproj @@ -106,7 +106,7 @@ <PreprocessorDefinitions>_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="Exists('$(OutDir)whql\')">HAVE_WHQL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <AdditionalOptions>/volatile:iso %(AdditionalOptions)</AdditionalOptions> - <AdditionalIncludeDirectories>..\$(Configuration)\$(WintunPlatform);..\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> </ClCompile> <ResourceCompile> <AdditionalIncludeDirectories>..\$(Configuration)\$(WintunPlatform);..\$(Configuration);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> @@ -116,12 +116,6 @@ <PreprocessorDefinitions Condition="'$(Platform)'=='ARM'">_M_ARM=7;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions Condition="'$(Platform)'=='ARM64'">_M_ARM64=1;%(PreprocessorDefinitions)</PreprocessorDefinitions> </ResourceCompile> - <CustomBuildStep> - <Command>cl.exe /nologo /DGENERATE_LIB /Ob0 /c /Fo"$(IntDir)nci.obj" /Tc "$(ProjectDir)nci.h" -lib.exe /def:"$(ProjectDir)nci.def" /out:"$(IntDir)nci.lib" /machine:$(PlatformTarget) /nologo "$(IntDir)nci.obj"</Command> - <Outputs>$(IntDir)nci.lib</Outputs> - <Inputs>$(ProjectDir)nci.def;$(ProjectDir)nci.h</Inputs> - </CustomBuildStep> <Link> <DelayLoadDLLs>bcrypt.dll;iphlpapi.dll;nci.dll;newdev.dll;version.dll</DelayLoadDLLs> <AdditionalDependencies>Bcrypt.lib;Crypt32.lib;Cfgmgr32.lib;Iphlpapi.lib;$(IntDir)nci.lib;newdev.lib;ntdll.lib;Setupapi.lib;shlwapi.lib;version.lib;%(AdditionalDependencies)</AdditionalDependencies> @@ -191,11 +185,23 @@ lib.exe /def:"$(ProjectDir)nci.def" /out:"$(IntDir)nci.lib" /machine:$(PlatformT <Import Project="..\wintun.vcxproj.user" Condition="exists('..\wintun.vcxproj.user')" /> <PropertyGroup> <BuildDependsOn>$(BuildDependsOn);SignTarget</BuildDependsOn> - <CleanDependsOn>CleanSignTarget;$(CleanDependsOn)</CleanDependsOn> + <CleanDependsOn>CleanInfVersion;CleanNci;CleanSignTarget;$(CleanDependsOn)</CleanDependsOn> <SignTargetCommandLine Condition="$(SignMode)=='TestSign'">"$(SignToolPath)" sign /sha1 "$(TestCertificate)" /fd sha256 "$(TargetPath)"</SignTargetCommandLine> <SignTargetCommandLine Condition="$(SignMode)=='ProductionSign'">"$(SignToolPath)" sign /sha1 "$(ProductionCertificate)" /fd sha256 /tr "$(TimeStampServer)" /td sha256 "$(TargetPath)"</SignTargetCommandLine> - <CustomBuildBeforeTargets>Link</CustomBuildBeforeTargets> </PropertyGroup> + <Target Name="BuildInfVersion" BeforeTargets="ClCompile" Inputs="$(OutDir)wintun\wintun.inf" Outputs="$(IntDir)wintun-inf.h"> + <Exec Command="cscript.exe /nologo "extract-driverver.js" < "$(OutDir)wintun\wintun.inf" > "$(IntDir)wintun-inf.h"" /> + </Target> + <Target Name="CleanInfVersion"> + <Delete Files="$(IntDir)wintun-inf.h" /> + </Target> + <Target Name="BuildNci" BeforeTargets="Link" Inputs="$(ProjectDir)nci.def;$(ProjectDir)nci.h" Outputs="$(IntDir)nci.lib"> + <Exec Command="cl.exe /nologo /DGENERATE_LIB /Ob0 /c /Fo"$(IntDir)nci.obj" /Tc "nci.h"" /> + <Exec Command="lib.exe /def:"$(ProjectDir)nci.def" /out:"$(IntDir)nci.lib" /machine:$(PlatformTarget) /nologo "$(IntDir)nci.obj"" /> + </Target> + <Target Name="CleanNci"> + <Delete Files="$(IntDir)nci.obj;$(IntDir)nci.lib" /> + </Target> <Target Name="SignTarget" Condition="'$(SignTargetCommandLine)'!=''" Inputs="$(TargetPath)" Outputs="$(IntermediateOutputPath)$(TargetName).sign"> <Exec Command="$(SignTargetCommandLine)" /> <Touch Files="$(IntermediateOutputPath)$(TargetName).sign" AlwaysCreate="true" /> |