Files
LookingGlass/cmake/MsQuic.Static.targets
2026-11-06 14:37:38 +11:00

56 lines
3.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<LGMsQuicSourceDir>$([MSBuild]::NormalizeDirectory('$(MSBuildThisFileDirectory)..\repos\MsQuic'))</LGMsQuicSourceDir>
<LGMsQuicBuildDir>$([MSBuild]::NormalizeDirectory('$(MSBuildProjectDirectory)\$(IntDir)MsQuic'))</LGMsQuicBuildDir>
<LGMsQuicArchitecture Condition="'$(Platform)'=='Win32'">Win32</LGMsQuicArchitecture>
<LGMsQuicArchitecture Condition="'$(Platform)'=='x64'">x64</LGMsQuicArchitecture>
<LGMsQuicLibraryDir>$(LGMsQuicBuildDir)obj\$(LGBaseConfiguration)\</LGMsQuicLibraryDir>
<LGMsQuicStaticLibrary>$(LGMsQuicLibraryDir)msquic_static.lib</LGMsQuicStaticLibrary>
<LGMsQuicCoreLibrary>$(LGMsQuicLibraryDir)core.lib</LGMsQuicCoreLibrary>
<LGMsQuicPlatformLibrary>$(LGMsQuicLibraryDir)msquic_platform.lib</LGMsQuicPlatformLibrary>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(LGMsQuicSourceDir)src\inc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>QUIC_BUILD_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<AdditionalDependencies>$(LGMsQuicStaticLibrary);$(LGMsQuicCoreLibrary);$(LGMsQuicPlatformLibrary);ws2_32.lib;schannel.lib;secur32.lib;OneCore.lib;wbemuuid.lib;winmm.lib;ntdll.lib;bcrypt.lib;ncrypt.lib;crypt32.lib;iphlpapi.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
<Target
Name="ConfigureLGMsQuic"
BeforeTargets="ClCompile"
Inputs="$(LGMsQuicSourceDir)CMakeLists.txt;$(MSBuildThisFileFullPath)"
Outputs="$(LGMsQuicBuildDir)CMakeCache.txt">
<Error
Condition="!Exists('$(LGMsQuicSourceDir)CMakeLists.txt')"
Text="The MsQuic submodule is not initialized. Run git submodule update --init --recursive." />
<Error
Condition="'$(LGMsQuicArchitecture)'==''"
Text="Static MsQuic does not support the $(Platform) platform in this project." />
<MakeDir Directories="$(LGMsQuicBuildDir)" />
<!-- NormalizeDirectory adds a trailing slash. The dot prevents that slash
from escaping the closing quote in the command line. -->
<Exec
Command="cmake -S &quot;$(LGMsQuicSourceDir).&quot; -B &quot;$(LGMsQuicBuildDir).&quot; -G &quot;Visual Studio 17 2022&quot; -A &quot;$(LGMsQuicArchitecture)&quot; -T v143 -DCMAKE_SYSTEM_VERSION=&quot;$(WindowsTargetPlatformVersion)&quot; -DQUIC_BUILD_SHARED=OFF -DQUIC_BUILD_TOOLS=OFF -DQUIC_BUILD_TEST=OFF -DQUIC_BUILD_PERF=OFF -DQUIC_TLS_LIB=schannel -DQUIC_ENABLE_LOGGING=OFF -DQUIC_STATIC_LINK_CRT=OFF -DQUIC_STATIC_LINK_PARTIAL_CRT=OFF -DQUIC_SOURCE_LINK=OFF -DQUIC_PDBALTPATH=OFF -DQUIC_EMBED_GIT_HASH=OFF" />
</Target>
<Target
Name="BuildLGMsQuic"
BeforeTargets="Link"
DependsOnTargets="ConfigureLGMsQuic">
<Exec
Command="cmake --build &quot;$(LGMsQuicBuildDir).&quot; --config &quot;$(LGBaseConfiguration)&quot; --target msquic_static --parallel" />
<Error
Condition="!Exists('$(LGMsQuicStaticLibrary)')"
Text="The static MsQuic build did not produce $(LGMsQuicStaticLibrary)." />
<Error
Condition="!Exists('$(LGMsQuicCoreLibrary)')"
Text="The static MsQuic build did not produce $(LGMsQuicCoreLibrary)." />
<Error
Condition="!Exists('$(LGMsQuicPlatformLibrary)')"
Text="The static MsQuic build did not produce $(LGMsQuicPlatformLibrary)." />
</Target>
</Project>