# Powershell script to set up MSVC CUDA cmake builds that mirror the CI. Useful for reproducing issues. param ($EIGEN_CI_ROOTDIR, $EIGEN_CI_BUILDDIR, $EIGEN_CI_BUILD_TARGET, $EIGEN_CI_ADDITIONAL_ARGS, $EIGEN_CI_BEFORE_SCRIPT, $EIGEN_CI_CMAKE_GENERATOR, $EIGEN_CI_MSVC_ARCH, $EIGEN_CI_MSVC_VER, $EIGEN_CI_TEST_CUSTOM_CXX_FLAGS, $EIGEN_CI_CUDA_CXX_FLAGS, $EIGEN_CI_CUDA_COMPUTE_ARCH ) # Set defaults if not already set. IF (!$EIGEN_CI_CUDA_CXX_FLAGS) { $EIGEN_CI_CUDA_CXX_FLAGS = "" } IF (!$EIGEN_CI_CUDA_COMPUTE_ARCH) { $EIGEN_CI_CUDA_COMPUTE_ARCH = "50;70" } IF (!$EIGEN_CI_BUILD_TARGET) { $EIGEN_CI_BUILD_TARGET = "buildtests_gpu" } IF (!$EIGEN_CI_ADDITIONAL_ARGS) { $EIGEN_CI_ADDITIONAL_ARGS = '-DCMAKE_CUDA_COMPILER=nvcc.exe -DCMAKE_CUDA_SEPARABLE_COMPILATION=OFF -DEIGEN_TEST_CUDA=on -DEIGEN_CUDA_CXX_FLAGS='+${EIGEN_CI_CUDA_CXX_FLAGS}+' -DEIGEN_CUDA_COMPUTE_ARCH='+${EIGEN_CI_CUDA_COMPUTE_ARCH} } # Export variables into the global scope $global:EIGEN_CI_CUDA_CXX_FLAGS = $EIGEN_CI_CUDA_CXX_FLAGS $global:EIGEN_CI_CUDA_COMPUTE_ARCH = $EIGEN_CI_CUDA_COMPUTE_ARCH # Call the generic msvc setup scripts. function Get-ScriptDirectory { Split-Path $MyInvocation.ScriptName } $script = Join-Path (Get-ScriptDirectory) 'ci_cmake_msvc.ps1' & $script $EIGEN_CI_ROOTDIR $EIGEN_CI_BUILDDIR $EIGEN_CI_BUILD_TARGET $EIGEN_CI_ADDITIONAL_ARGS $EIGEN_CI_BEFORE_SCRIPT $EIGEN_CI_CMAKE_GENERATOR $EIGEN_CI_MSVC_ARCH $EIGEN_CI_MSVC_VER $EIGEN_CI_TEST_CUSTOM_CXX_FLAGS