diff --git a/build.ps1 b/build.ps1 index b647b4f..8642d5e 100644 --- a/build.ps1 +++ b/build.ps1 @@ -22,35 +22,46 @@ $sourceFilePath = Join-Path -Path $directoryPath -ChildPath "$msvcVersion\module $destinationFilePath = ".\build\std.cppm" Copy-Item -Path $sourceFilePath -Destination $destinationFilePath -clang++ -std=c++26 -Wno-reserved-identifier -Wno-reserved-module-identifier --precompile .\build/std.cppm -o .\build/std.pcm -clang++ -std=c++26 --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-CompileStatus.cppm -o .\build\Crafter.Build-CompileStatus.pcm -clang++ -std=c++26 --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Command.cppm -o .\build\Crafter.Build-Command.pcm -clang++ -std=c++26 --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Shader.cppm -o .\build\Crafter.Build-Shader.pcm -clang++ -std=c++26 --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Module.cppm -o .\build\Crafter.Build-Module.pcm -clang++ -std=c++26 --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Implementation.cppm -o .\build\Crafter.Build-Implementation.pcm -clang++ -std=c++26 --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Configuration.cppm -o .\build\Crafter.Build-Configuration.pcm -clang++ -std=c++26 --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Test.cppm -o .\build\Crafter.Build-Test.pcm -clang++ -std=c++26 --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Project.cppm -o .\build\Crafter.Build-Project.pcm -clang++ -std=c++26 --precompile -fprebuilt-module-path=.\build -D CRAFTER_BUILD_CONFIGURATION_TYPE_EXECUTABLE interfaces\Crafter.Build.cppm -o .\build\Crafter.Build.pcm +$vulkanBasePath = "C:\VulkanSDK" -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Command.pcm -o .\build\Crafter.Build-Command.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Shader.pcm -o .\build\Crafter.Build-Shader.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Module.pcm -o .\build\Crafter.Build-Module.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Implementation.pcm -o .\build\Crafter.Build-Implementation.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Configuration.pcm -o .\build\Crafter.Build-Configuration.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Project.pcm -o .\build\Crafter.Build-Project.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Test.pcm -o .\build\Crafter.Build-Test.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-CompileStatus.pcm -o .\build\Crafter.Build-CompileStatus.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build.pcm -o .\build\Crafter.Build.o +# Get all folders (assumes version format like 14.50.35717) +$folders = Get-ChildItem -Path $vulkanBasePath -Directory -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Command.cpp -o .\build\Crafter.Build-Command_impl.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Test.cpp -o .\build\Crafter.Build-Test_impl.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Implementation.cpp -o .\build\Crafter.Build-Implementation_impl.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Shader.cpp -o .\build\Crafter.Build-Shader_impl.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Module.cpp -o .\build\Crafter.Build-Module_impl.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Configuration.cpp -o .\build\Crafter.Build-Configuration_impl.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Project.cpp -o .\build\Crafter.Build-Project_impl.o -clang++ -std=c++26 -O3 -fprebuilt-module-path=.\build -c .\implementations\main.cpp -o .\build\main.o +# Sort the folders by version and select the latest one +$latestVulkanVersion = $folders | Sort-Object { [Version]$_ .Name } -Descending | Select-Object -First 1 + +# Store the latest version folder name and combine it with the base path to get the full path to Include +$vulkanSDKPath = Join-Path -Path $vulkanBasePath -ChildPath (Join-Path -Path $latestVulkanVersion.Name -ChildPath "Include") + +clang++ -std=c++26 -I$vulkanSDKPath -Wno-reserved-identifier -Wno-reserved-module-identifier --precompile .\build/std.cppm -o .\build/std.pcm +clang++ -std=c++26 -I$vulkanSDKPath --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-CompileStatus.cppm -o .\build\Crafter.Build-CompileStatus.pcm +clang++ -std=c++26 -I$vulkanSDKPath --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Command.cppm -o .\build\Crafter.Build-Command.pcm +clang++ -std=c++26 -I$vulkanSDKPath --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Shader.cppm -o .\build\Crafter.Build-Shader.pcm +clang++ -std=c++26 -I$vulkanSDKPath --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Module.cppm -o .\build\Crafter.Build-Module.pcm +clang++ -std=c++26 -I$vulkanSDKPath --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Implementation.cppm -o .\build\Crafter.Build-Implementation.pcm +clang++ -std=c++26 -I$vulkanSDKPath --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Configuration.cppm -o .\build\Crafter.Build-Configuration.pcm +clang++ -std=c++26 -I$vulkanSDKPath --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Test.cppm -o .\build\Crafter.Build-Test.pcm +clang++ -std=c++26 -I$vulkanSDKPath --precompile -fprebuilt-module-path=.\build interfaces\Crafter.Build-Project.cppm -o .\build\Crafter.Build-Project.pcm +clang++ -std=c++26 -I$vulkanSDKPath --precompile -fprebuilt-module-path=.\build -D CRAFTER_BUILD_CONFIGURATION_TYPE_EXECUTABLE interfaces\Crafter.Build.cppm -o .\build\Crafter.Build.pcm + +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Command.pcm -o .\build\Crafter.Build-Command.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Shader.pcm -o .\build\Crafter.Build-Shader.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Module.pcm -o .\build\Crafter.Build-Module.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Implementation.pcm -o .\build\Crafter.Build-Implementation.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Configuration.pcm -o .\build\Crafter.Build-Configuration.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Project.pcm -o .\build\Crafter.Build-Project.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-Test.pcm -o .\build\Crafter.Build-Test.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build-CompileStatus.pcm -o .\build\Crafter.Build-CompileStatus.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\build\Crafter.Build.pcm -o .\build\Crafter.Build.o + +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Command.cpp -o .\build\Crafter.Build-Command_impl.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Test.cpp -o .\build\Crafter.Build-Test_impl.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Implementation.cpp -o .\build\Crafter.Build-Implementation_impl.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Shader.cpp -o .\build\Crafter.Build-Shader_impl.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Module.cpp -o .\build\Crafter.Build-Module_impl.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Configuration.cpp -o .\build\Crafter.Build-Configuration_impl.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\implementations\Crafter.Build-Project.cpp -o .\build\Crafter.Build-Project_impl.o +clang++ -std=c++26 -I$vulkanSDKPath -O3 -fprebuilt-module-path=.\build -c .\implementations\main.cpp -o .\build\main.o #clang++ -std=c++26 -O3 -L/usr/local/lib -L/usr/lib/ -lvulkan -lMachineIndependent -lOSDependent -lGenericCodeGen -lglslang -lglslang-default-resource-limits -lSPIRV -ltbb -fuse-ld=lld .\build\Crafter.Build-Command.o .\build\Crafter.Build-CompileStatus.o .\build\Crafter.Build-Shader.o .\build\Crafter.Build-Module.o .\build\Crafter.Build-Configuration.o .\build\Crafter.Build-Project.o .\build\Crafter.Build.o .\build\Crafter.Build-Command_impl.o .\build\Crafter.Build-Shader_impl.o .\build\Crafter.Build-Module_impl.o .\build\Crafter.Build-Configuration_impl.o .\build\Crafter.Build-Project_impl.o .\build\Crafter.Build-Implementation.o .\build\Crafter.Build-Implementation_impl.o .\build\Crafter.Build-Test_impl.o .\build\Crafter.Build-Test.o .\build\main.o -o .\bin/executable\Crafter-build