Write-Output installdir:$installdir
Write-Output sourcedir:$sourcedir
-$vsInstallPath=& "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vswhere.exe" -version 16.0 -property installationpath
-Write-Output "vswhere.exe installPath: $vsInstallPath"
-$vsInstallPath = if ("$vsInstallPath" -eq "" ) { "C:\BuildTools" } else { "$vsInstallPath" }
-Write-Output "Final installPath: $vsInstallPath"
-Import-Module (Join-Path $vsInstallPath "Common7\Tools\Microsoft.VisualStudio.DevShell.dll")
-Enter-VsDevShell -VsInstallPath $vsInstallPath -SkipAutomaticLocation -DevCmdArguments '-arch=x64 -no_logo -host_arch=amd64'
+$MyPath = $MyInvocation.MyCommand.Path | Split-Path -Parent
+. "$MyPath\mesa_vs_init.ps1"
Push-Location $builddir
Exit 1
}
+$MyPath = $MyInvocation.MyCommand.Path | Split-Path -Parent
+. "$MyPath\mesa_vs_init.ps1"
+
# we want more secure TLS 1.2 for most things, but it breaks SourceForge
# downloads so must be done after Chocolatey use
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 -bor [Net.SecurityProtocolType]::Tls13;
$llvm_build = New-Item -ItemType Directory -ErrorAction SilentlyContinue -Force -Path ".\llvm-project" -Name "build"
Push-Location -Path $llvm_build.FullName
Write-Host "Compiling LLVM and Clang"
-cmd.exe /C 'C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake ../llvm -GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_USE_CRT_RELEASE=MT -DCMAKE_INSTALL_PREFIX="C:\llvm-10" -DLLVM_ENABLE_PROJECTS="clang;lld" -DLLVM_TARGETS_TO_BUILD=AMDGPU;X86 -DLLVM_OPTIMIZED_TABLEGEN=TRUE -DLLVM_ENABLE_ASSERTIONS=TRUE -DLLVM_INCLUDE_UTILS=OFF -DLLVM_INCLUDE_RUNTIMES=OFF -DLLVM_INCLUDE_TESTS=OFF -DLLVM_INCLUDE_EXAMPLES=OFF -DLLVM_INCLUDE_GO_TESTS=OFF -DLLVM_INCLUDE_BENCHMARKS=OFF -DLLVM_BUILD_LLVM_C_DYLIB=OFF -DLLVM_ENABLE_DIA_SDK=OFF -DCLANG_BUILD_TOOLS=ON -DLLVM_SPIRV_INCLUDE_TESTS=OFF -Wno-dev && ninja -j32 install'
+cmake ../llvm `
+-GNinja `
+-DCMAKE_BUILD_TYPE=Release `
+-DLLVM_USE_CRT_RELEASE=MT `
+-DCMAKE_INSTALL_PREFIX="C:\llvm-10" `
+-DLLVM_ENABLE_PROJECTS="clang;lld" `
+-DLLVM_TARGETS_TO_BUILD="AMDGPU;X86" `
+-DLLVM_OPTIMIZED_TABLEGEN=TRUE `
+-DLLVM_ENABLE_ASSERTIONS=TRUE `
+-DLLVM_INCLUDE_UTILS=OFF `
+-DLLVM_INCLUDE_RUNTIMES=OFF `
+-DLLVM_INCLUDE_TESTS=OFF `
+-DLLVM_INCLUDE_EXAMPLES=OFF `
+-DLLVM_INCLUDE_GO_TESTS=OFF `
+-DLLVM_INCLUDE_BENCHMARKS=OFF `
+-DLLVM_BUILD_LLVM_C_DYLIB=OFF `
+-DLLVM_ENABLE_DIA_SDK=OFF `
+-DCLANG_BUILD_TOOLS=ON `
+-DLLVM_SPIRV_INCLUDE_TESTS=OFF `
+-Wno-dev && `
+ninja -j32 install
$buildstatus = $?
Pop-Location
if (!$buildstatus) {
Push-Location -Path $libclc_build.FullName
Write-Host "Compiling libclc"
# libclc can only be built with Ninja, because CMake's VS backend doesn't know how to compile new language types
-cmd.exe /C 'C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake ../libclc -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_FLAGS="-m64" -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DCMAKE_INSTALL_PREFIX="C:\llvm-10" -DLIBCLC_TARGETS_TO_BUILD="spirv-mesa3d-;spirv64-mesa3d-" && ninja -j32 install'
+cmake ../libclc `
+-GNinja `
+-DCMAKE_BUILD_TYPE=Release `
+-DCMAKE_CXX_FLAGS="-m64" `
+-DCMAKE_POLICY_DEFAULT_CMP0091=NEW `
+-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded `
+-DCMAKE_INSTALL_PREFIX="C:\llvm-10" `
+-DLIBCLC_TARGETS_TO_BUILD="spirv-mesa3d-;spirv64-mesa3d-" && `
+ninja -j32 install
$buildstatus = $?
Pop-Location
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $libclc_build
$spv_build = New-Item -ItemType Directory -Path ".\SPIRV-Tools" -Name "build"
Push-Location -Path $spv_build.FullName
# SPIRV-Tools doesn't use multi-threaded MSVCRT, but we need it to
-cmd.exe /C 'C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded -DCMAKE_INSTALL_PREFIX="C:\spirv-tools" && ninja -j32 install'
+cmake .. `
+-GNinja `
+-DCMAKE_BUILD_TYPE=Release `
+-DCMAKE_POLICY_DEFAULT_CMP0091=NEW `
+-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded `
+-DCMAKE_INSTALL_PREFIX="C:\spirv-tools" && `
+ninja -j32 install
$buildstatus = $?
Pop-Location
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue -Path $spv_build
Exit 1
}
+$MyPath = $MyInvocation.MyCommand.Path | Split-Path -Parent
+. "$MyPath\mesa_vs_init.ps1"
+
Get-Date
Write-Host "Downloading glext.h"
New-Item -ItemType Directory -Path ".\glext" -Name "GL"
$piglit_build = New-Item -ItemType Directory -Path "C:\src\piglit" -Name "build"
Push-Location -Path $piglit_build.FullName
Write-Host "Compiling Piglit"
-cmd.exe /C 'C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake .. -GNinja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="C:\Piglit" -DGLUT_INCLUDE_DIR=C:\freeglut\include -DGLUT_glut_LIBRARY_RELEASE=C:\freeglut\lib\x64\freeglut.lib -DGLEXT_INCLUDE_DIR=.\glext && ninja -j32'
+cmake .. `
+-GNinja `
+-DCMAKE_BUILD_TYPE=Release `
+-DCMAKE_INSTALL_PREFIX="C:\Piglit" `
+-DGLUT_INCLUDE_DIR=C:\freeglut\include `
+-DGLUT_glut_LIBRARY_RELEASE=C:\freeglut\lib\x64\freeglut.lib `
+-DGLEXT_INCLUDE_DIR=.\glext && `
+ninja -j32
$buildstatus = $?
ninja -j32 install | Out-Null
$installstatus = $?
$deqp_build = New-Item -ItemType Directory -Path "C:\deqp"
Push-Location -Path $deqp_build.FullName
Write-Host "Compiling deqp"
-cmd.exe /C "C:\BuildTools\Common7\Tools\VsDevCmd.bat -host_arch=amd64 -arch=amd64 && cmake -S $($deqp_source) -B . -GNinja -DCMAKE_BUILD_TYPE=Release -DDEQP_TARGET=default && ninja -j32"
+cmake -S $($deqp_source) `
+-B . `
+-GNinja `
+-DCMAKE_BUILD_TYPE=Release `
+-DDEQP_TARGET=default && `
+ninja -j32
$buildstatus = $?
Pop-Location
if (!$buildstatus -Or !$installstatus) {