|  | # Base configuration for windows builds. | 
|  | .build:windows: | 
|  | extends: .common:windows | 
|  | stage: build | 
|  | variables: | 
|  | EIGEN_CI_BUILD_TARGET: buildtests | 
|  | # Reduce overall build size and compile time. | 
|  | # Note: /d2ReducedOptimizeHugeFunctions is only available in VS 2019. | 
|  | EIGEN_CI_TEST_CUSTOM_CXX_FLAGS: "/d2ReducedOptimizeHugeFunctions /DEIGEN_STRONG_INLINE=inline /Os" | 
|  | script: | 
|  | - ./ci/scripts/build.windows.script.ps1 | 
|  | tags: | 
|  | - eigen-runner | 
|  | - windows | 
|  | - x86-64 | 
|  | rules: | 
|  | - if: $CI_PIPELINE_SOURCE == "schedule" && $CI_PROJECT_NAMESPACE == "libeigen" | 
|  | - if: $CI_PIPELINE_SOURCE == "web" && $CI_PROJECT_NAMESPACE == "libeigen" | 
|  | cache: | 
|  | key: "$CI_JOB_NAME-$CI_COMMIT_REF_SLUG-BUILD" | 
|  | paths: | 
|  | - ${EIGEN_CI_BUILDDIR}/ | 
|  |  | 
|  | ######### MSVC ################################################################# | 
|  |  | 
|  | # MSVC 14.16 (VS 2017) | 
|  | build:windows:x86-64:msvc-14.16:default: | 
|  | extends: .build:windows | 
|  | variables: | 
|  | EIGEN_CI_MSVC_VER: "14.16" | 
|  | # Override to remove unsupported /d2ReducedOptimizeHugeFunctions. | 
|  | EIGEN_CI_TEST_CUSTOM_CXX_FLAGS: "/DEIGEN_STRONG_INLINE=inline /Os" | 
|  |  | 
|  | # MSVC 14.29 (VS 2019) | 
|  | build:windows:x86-64:msvc-14.29:default: | 
|  | extends: .build:windows | 
|  | variables: | 
|  | EIGEN_CI_MSVC_VER: "14.29" | 
|  |  | 
|  | build:windows:x86-64:msvc-14.29:avx2: | 
|  | extends: build:windows:x86-64:msvc-14.29:default | 
|  | variables: | 
|  | EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX2=on" | 
|  |  | 
|  | build:windows:x86-64:msvc-14.29:avx512dq: | 
|  | extends: build:windows:x86-64:msvc-14.29:default | 
|  | variables: | 
|  | EIGEN_CI_ADDITIONAL_ARGS: "-DEIGEN_TEST_AVX512DQ=on" | 
|  |  | 
|  | ######### MSVC + CUDA ########################################################## | 
|  | .build:windows:cuda: | 
|  | extends: .build:windows | 
|  | variables: | 
|  | # Addtional flags passed to the cuda compiler. | 
|  | EIGEN_CI_CUDA_CXX_FLAGS: "" | 
|  | # Compute architectures present in the GitLab CI runners. | 
|  | EIGEN_CI_CUDA_COMPUTE_ARCH: "50;75" | 
|  | EIGEN_CI_BUILD_TARGET: buildtests_gpu | 
|  | EIGEN_CI_ADDITIONAL_ARGS: | 
|  | -DEIGEN_TEST_CUDA=on | 
|  | -DEIGEN_CUDA_CXX_FLAGS="${EIGEN_CI_CUDA_CXX_FLAGS}" | 
|  | -DEIGEN_CUDA_COMPUTE_ARCH=${EIGEN_CI_CUDA_COMPUTE_ARCH} | 
|  | tags: | 
|  | - eigen-runner | 
|  | - windows | 
|  | - x86-64 | 
|  | - cuda | 
|  |  | 
|  | # MSVC 14.16 + CUDA 9.2 | 
|  | build:windows:x86-64:cuda-9.2:msvc-14.16: | 
|  | extends: .build:windows:cuda | 
|  | variables: | 
|  | # CUDA 9.2 doesn't support sm_75. | 
|  | EIGEN_CI_CUDA_COMPUTE_ARCH: "50;70" | 
|  | # CUDA 9.2 only supports up to VS 2017. | 
|  | EIGEN_CI_MSVC_VER: "14.16" | 
|  | EIGEN_CI_TEST_CUSTOM_CXX_FLAGS: "/DEIGEN_STRONG_INLINE=inline /Os" | 
|  | EIGEN_CI_BEFORE_SCRIPT: $$env:CUDA_PATH=$$env:CUDA_PATH_V9_2 | 
|  |  | 
|  | # MSVC 14.29 + CUDA 10.2 | 
|  | build:windows:x86-64:cuda-10.2:msvc-14.29: | 
|  | extends: .build:windows:cuda | 
|  | variables: | 
|  | EIGEN_CI_MSVC_VER: "14.29" | 
|  | EIGEN_CI_BEFORE_SCRIPT: $$env:CUDA_PATH=$$env:CUDA_PATH_V10_2 | 
|  |  | 
|  | # MSVC 14.29 + CUDA 11.4 | 
|  | build:windows:x86-64:cuda-11.4:msvc-14.29: | 
|  | extends: .build:windows:cuda | 
|  | variables: | 
|  | EIGEN_CI_MSVC_VER: "14.29" | 
|  | EIGEN_CI_BEFORE_SCRIPT: $$env:CUDA_PATH=$$env:CUDA_PATH_V11_4 |