@@ -82,118 +82,9 @@ if ($IsWindows) {
8282 }
8383}
8484
85-
86- if (-Not $LauncherOnly ) {
87- $RepoRoot = [IO.Path ]::Combine($PSScriptRoot , " .." )
88-
89- Write-Host " Configuring Vulkan-Header submodule..."
90-
91- $ExternalVulkanHeadersDir = Join-Path - Path $RepoRoot - ChildPath " __externals/Vulkan-Headers"
92- $ExternalVulkanHeadersOutputDir = Join-Path - Path $ExternalVulkanHeadersDir - ChildPath " build"
93- $ExternalVulkanHeadersInstallDir = Join-Path - Path $ExternalVulkanHeadersOutputDir - ChildPath " install"
94-
95- if (-Not (Test-Path - Path $ExternalVulkanHeadersInstallDir )) {
96- & $cMakeProgram - S $ExternalVulkanHeadersDir - B $ExternalVulkanHeadersOutputDir
97- & $cMakeProgram -- install $ExternalVulkanHeadersOutputDir -- prefix $ExternalVulkanHeadersInstallDir
98- }
99- } else {
100- Write-Host " Skipping submodules initialization..."
101- }
102-
103-
10485function Build ([string ]$configuration , [int ]$VsVersion , [bool ]$runBuild ) {
10586
106- $architecture = ' x64'
107-
108- # Check if the system supports multiple configurations
109- $isMultipleConfig = $IsWindows
110-
111- # Check the system name
112- if ($IsLinux ) {
113- $systemName = " Linux"
114- }
115- elseif ($IsMacOS ) {
116- $systemName = " Darwin"
117- }
118- elseif ($IsWindows ) {
119- $systemName = " Windows"
120- }
121- else {
122- throw ' The OS is not supported'
123- }
124-
125- Write-Host " Building $systemName $architecture $configuration "
126-
127- [string ]$BuildDirectoryNameExtension = If ($isMultipleConfig ) { " MultiConfig" } Else { $configuration }
128- [string ]$BuildDirectoryName = " Result." + $systemName + " ." + $architecture + " ." + $BuildDirectoryNameExtension
129- [string ]$buildDirectoryPath = [IO.Path ]::Combine($RepoRoot , $BuildDirectoryName )
130- [string ]$cMakeCacheVariableOverride = " "
131- [string ]$cMakeGenerator = " -G Ninja"
132-
133- # Create build directory
134- if (-Not (Test-Path $buildDirectoryPath )) {
135- $Null = New-Item - ItemType Directory - Path $BuildDirectoryPath - ErrorAction SilentlyContinue
136- }
137-
138- # Define CMake Generator arguments
139- $cMakeOptions = " -DCMAKE_SYSTEM_NAME=$systemName " , " -DCMAKE_BUILD_TYPE=$configuration "
140- $submoduleCMakeOptions = @ {
141- ' ENTT' = @ (" -DENTT_INCLUDE_HEADERS=ON" )
142- ' SPDLOG' = @ (" -DSPDLOG_BUILD_SHARED=OFF" , " -DBUILD_STATIC_LIBS=ON" , " -DSPDLOG_FMT_EXTERNAL=ON" , " -DSPDLOG_FMT_EXTERNAL_HO=OFF" );
143- ' GLFW ' = @ (" -DGLFW_BUILD_DOCS=OFF" , " -DGLFW_BUILD_EXAMPLES=OFF" , " -DGLFW_INSTALL=OFF" );
144- ' ASSIMP' = @ (" -DASSIMP_BUILD_TESTS=OFF" , " -DASSIMP_INSTALL=OFF" , " -DASSIMP_BUILD_SAMPLES=OFF" , " -DASSIMP_BUILD_ASSIMP_TOOLS=OFF" , " -DASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT=OFF" , " -DASSIMP_BUILD_OBJ_IMPORTER=ON" , " -DASSIMP_BUILD_ALL_EXPORTERS_BY_DEFAULT=OFF" , " -DASSIMP_BUILD_OBJ_EXPORTER=ON" );
145- ' STDUUID' = @ (" -DUUID_BUILD_TESTS=OFF" , " -DUUID_USING_CXX20_SPAN=ON" , " -DUUID_SYSTEM_GENERATOR=OFF" );
146- ' YAMLCPP' = @ (" -DYAML_CPP_BUILD_TOOLS=OFF" , " -DYAML_CPP_BUILD_TESTS=OFF" , " -DYAML_CPP_FORMAT_SOURCE=OFF" , " -DYAML_BUILD_SHARED_LIBS=OFF" );
147- ' FRAMEWORK' = @ (" -DBUILD_FRAMEWORK=ON" );
148- ' VULKAN_LOADER' = @ (" -DVULKAN_HEADERS_INSTALL_DIR=$ExternalVulkanHeadersInstallDir " , " -DUSE_MASM=OFF" , " -DUSE_GAS=OFF" )
149- ' SPIRV_TOOLS' = @ (" -DSPIRV_SKIP_EXECUTABLES=ON" , " -DSPIRV_SKIP_TESTS=ON" )
150- ' SPIRV_CROSS' = @ (" -DSPIRV_CROSS_ENABLE_TESTS=OFF" )
151- ' LAUNCHER_ONLY' = @ (" -DLAUNCHER_ONLY=ON" )
152- ' GLM' = @ (" -DCMAKE_POLICY_VERSION_MINIMUM=3.5" )
153- }
154-
155- $cMakeCacheVariableOverride = $cMakeOptions -join ' '
156-
157- # Define CMake Generator argument
158- switch ($systemName ) {
159- " Windows" {
160- switch ($VsVersion ) {
161- 2022 {
162- $cMakeGenerator = " -G `" Visual Studio 17 2022`" -A $architecture "
163- }
164- Default {
165- throw ' This version of Visual Studio is not supported'
166- }
167- }
168- $cMakeCacheVariableOverride += ' -DCMAKE_CONFIGURATION_TYPES=Debug;Release '
169- }
170- " Linux" {
171- # Set Linux build compiler
172- $env: CC = ' gcc'
173- $env: CXX = ' g++'
174- }
175- " Darwin" {
176- $cMakeGenerator = " -G `" Xcode`" "
177- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.FRAMEWORK -join ' '
178- }
179- }
180-
181- if ($LauncherOnly ) {
182- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.LAUNCHER_ONLY -join ' '
183- } else {
184- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.ENT -join ' '
185- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.SPDLOG -join ' '
186- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.ASSIMP -join ' '
187- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.STDUUID -join ' '
188- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.YAMLCPP -join ' '
189- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.VULKAN_LOADER -join ' '
190- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.SPIRV_CROSS -join ' '
191- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.SPIRV_TOOLS -join ' '
192- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.GLFW -join ' '
193- $cMakeCacheVariableOverride += ' ' + $submoduleCMakeOptions.GLM -join ' '
194- }
195-
196- $cMakeArguments = " -S $repositoryRootPath -B $buildDirectoryPath $cMakeGenerator $cMakeCacheVariableOverride "
87+ $cMakeArguments = " --preset $Configuration "
19788
19889 # CMake Generation process
19990 Write-Host $cMakeArguments
@@ -205,14 +96,7 @@ function Build([string]$configuration, [int]$VsVersion , [bool]$runBuild) {
20596 # CMake Build Process
20697 #
20798 if ($runBuild ) {
208- if ($cMakeGenerator -like ' Visual Studio*' ) {
209- # With a Visual Studio Generator, `msbuild.exe` is used to run the build. By default, `msbuild.exe` will
210- # launch worker processes to opportunistically re-use for subsequent builds. To cause the worker processes
211- # to exit at the end of the main process, pass `-nodeReuse:false`.
212- $buildToolOptions = ' -nodeReuse:false'
213- }
214-
215- $buildArguments = " --build $buildDirectoryPath --config $configuration "
99+ $buildArguments = " --build --preset $Configuration "
216100 if ($buildToolOptions ) {
217101 $buildArguments = $buildArguments , $buildToolOptions -join " --"
218102 }
0 commit comments