<Project Sdk="Microsoft.NET.Sdk" InitialTargets="ConfigureNative"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath> </PropertyGroup> <Import Project="../Raylib-cs/Build.props" /> <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('Linux'))"> <NativeExt>so</NativeExt> <NativePre>lib</NativePre> <NativeArch>x64</NativeArch> </PropertyGroup> <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('OSX'))"> <NativeExt>dylib</NativeExt> <NativePre>lib</NativePre> <NativeArch Condition="$(BuildArch) == ''">x86_x64</NativeArch> <NativeArch Condition="$(BuildArch) != ''">$(BuildArch)</NativeArch> </PropertyGroup> <PropertyGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))"> <NativeExt>dll</NativeExt> <NativePre>$(Configuration)/</NativePre> <NativeArch Condition="$(BuildArch) == ''">x64</NativeArch> <NativeArch Condition="$(BuildArch) != ''">$(BuildArch)</NativeArch> </PropertyGroup> <ItemGroup Condition="$([MSBuild]::IsOSPlatform('OSX')) AND $(NativeArch) == 'arm64'"> <CMakeArgs Include="-D CMAKE_OSX_ARCHITECTURES=arm64" /> </ItemGroup> <ItemGroup Condition="$([MSBuild]::IsOSPlatform('OSX')) AND $(NativeArch) == 'x86_64'"> <CMakeArgs Include="-D CMAKE_OSX_ARCHITECTURES=x86_64" /> </ItemGroup> <ItemGroup Condition="$([MSBuild]::IsOsPlatform('Windows')) AND $(NativeArch) == 'win32'"> <CMakeArgs Include="-A win32" /> </ItemGroup> <ItemGroup Condition="$([MSBuild]::IsOsPlatform('Windows')) AND $(NativeArch) == 'x64'"> <CMakeArgs Include="-A x64" /> </ItemGroup> <ItemGroup> <Content Include="$(OutputPath)native/raylib/$(NativePre)raylib.$(NativeExt)" Link="%(Filename)%(Extension)" CopyToOutputDirectory="PreserveNewest" Condition="Exists('$(OutputPath)native/raylib/$(NativePre)raylib.$(NativeExt)')" /> <CMakeArgs Include="-B $(OutputPath)native" /> <CMakeArgs Include="-S $(BaseIntermediateOutputPath)raylib-$(TargetRaylibTag)" /> <CMakeArgs Include="-D CMAKE_BUILD_TYPE=$(Configuration)" /> <CMakeArgs Include="-D BUILD_SHARED_LIBS=ON" /> <CMakeArgs Include="-D BUILD_EXAMPLES=OFF" /> <CMakeArgs Include="-D CMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded" /> <CMakeArgs Include="-D CMAKE_MINIMUM_REQUIRED_VERSION=3.15" /> <CMakeArgs Include="-D CMAKE_POLICY_DEFAULT_CMP0091=NEW" /> <!-- <CMakeArgs Include="-D GRAPHICS=GRAPHICS_API_OPENGL_43" /> --> </ItemGroup> <Target Name="ConfigureNative" Condition="$(SkipLocalBuild) != true"> <DownloadFile SourceUrl="https://github.com/raysan5/raylib/archive/refs/tags/$(TargetRaylibTag).zip" DestinationFolder="$(BaseIntermediateOutputPath)" DestinationFileName="raylib.zip" Condition="!Exists('$(BaseIntermediateOutputPath)raylib.zip')" /> <Unzip SourceFiles="$(BaseIntermediateOutputPath)raylib.zip" DestinationFolder="$(BaseIntermediateOutputPath)" OverwriteReadOnlyFiles="true" Condition="!Exists('$(BaseIntermediateOutputPath)raylib-$(TargetRaylibTag)')" /> <Exec Command="cmake @(CMakeArgs, ' ') $(CMakeExtraArgs)" Condition="!Exists('$(BaseIntermediateOutputPath)native/CMakeCache.txt')" /> <Exec Command="cmake --build $(OutputPath)native --config $(Configuration)" /> </Target> </Project>