| # 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 |