Merge topic 'linux-release-builders'

922cd3affe ci: fix the project detection for CDash submissions
c5b072800d gitlab-ci: add jobs for reproducing the release binaries
45f2786ff7 Release/linux: remove explicit LANG setting
c540fcaa6b Sphinx/create_identifiers: handle qhp contents as utf-8
e237fc65b7 Sphinx/create_identifiers: use `not in` not `not _ in`
0aa061f6f8 Sphinx/create_identifiers: remove unused import

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !4852
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8339dc0..3447964 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -82,25 +82,31 @@
 
 .macos: &macos
     variables:
+        GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci ext/$CI_CONCURRENT_ID"
+        # TODO: Factor this out so that each job selects the Xcode version to
+        # use so that different versions can be tested in a single pipeline.
+        DEVELOPER_DIR: "/Applications/Xcode-11.5.app/Contents/Developer"
+
+.macos_build: &macos_build
+    extends: .macos
+
+    variables:
         # Note that shell runners only support runners with a single
         # concurrency level. We can't use `$CI_CONCURRENCY_ID` because this may
         # change between the build and test stages which CMake doesn't support.
         # Even if we could, it could change if other runners on the machine
         # could run at the same time, so we drop it.
         GIT_CLONE_PATH: "$CI_BUILDS_DIR/cmake ci"
-        # TODO: Factor this out so that each job selects the Xcode version to
-        # use so that different versions can be tested in a single pipeline.
-        DEVELOPER_DIR: "/Applications/Xcode-11.5.app/Contents/Developer"
 
 .macos_ninja: &macos_ninja
-    extends: .macos
+    extends: .macos_build
 
     variables:
         CMAKE_CONFIGURATION: macos_ninja
         CTEST_NO_WARNINGS_ALLOWED: 1
 
 .macos_makefiles: &macos_makefiles
-    extends: .macos
+    extends: .macos_build
 
     variables:
         CMAKE_CONFIGURATION: macos_makefiles
@@ -109,6 +115,12 @@
 
 .windows: &windows
     variables:
+        GIT_CLONE_PATH: "$CI_BUILDS_DIR\\cmake ci ext\\$CI_CONCURRENT_ID"
+
+.windows_build: &windows_build
+    extends: .windows
+
+    variables:
         # Note that shell runners only support runners with a single
         # concurrency level. We can't use `$CI_CONCURRENCY_ID` because this may
         # change between the build and test stages which CMake doesn't support.
@@ -117,7 +129,7 @@
         GIT_CLONE_PATH: "$CI_BUILDS_DIR\\cmake ci"
 
 .windows_ninja: &windows_ninja
-    extends: .windows
+    extends: .windows_build
 
     variables:
         # Debug and RelWithDebinfo build types use the `/Zi` which results in
@@ -133,7 +145,7 @@
         CMAKE_CONFIGURATION: windows_vs2019_x64_ninja
         VCVARSALL: "${VS160COMNTOOLS}\\..\\..\\VC\\Auxiliary\\Build\\vcvarsall.bat"
         VCVARSPLATFORM: "x64"
-        VCVARSVERSION: "14.25"
+        VCVARSVERSION: "14.26"
 
 .windows_vs2019_x64: &windows_vs2019_x64
     extends: .windows
@@ -142,7 +154,7 @@
         CMAKE_CONFIGURATION: windows_vs2019_x64
         CMAKE_GENERATOR: "Visual Studio 16 2019"
         CMAKE_GENERATOR_PLATFORM: "x64"
-        CMAKE_GENERATOR_TOOLSET: "v142,version=14.25"
+        CMAKE_GENERATOR_TOOLSET: "v142,version=14.26"
 
 .linux_builder_tags: &linux_builder_tags
     tags:
@@ -163,8 +175,15 @@
         - macos
         - shell
         - xcode-11.5
-        - nonconcurrent # Use runners without concurrency for fixed GIT_CLONE_PATH.
-        # TODO: Use "concurrent" and "nonconcurrent" on individual jobs.
+        - nonconcurrent
+
+.macos_builder_ext_tags: &macos_builder_ext_tags
+    tags:
+        - cmake # Since this is a bare runner, pin to a project.
+        - macos
+        - shell
+        - xcode-11.5
+        - concurrent
 
 .windows_builder_tags: &windows_builder_tags
     tags:
@@ -173,8 +192,16 @@
         - shell
         - vs2019
         - msvc-19.25
-        - nonconcurrent # Use runners without concurrency for fixed GIT_CLONE_PATH.
-        # TODO: Use "concurrent" and "nonconcurrent" on individual jobs.
+        - nonconcurrent
+
+.windows_builder_ext_tags: &windows_builder_ext_tags
+    tags:
+        - cmake # Since this is a bare runner, pin to a project.
+        - windows
+        - shell
+        - vs2019
+        - msvc-19.25
+        - concurrent
 
 .before_script_unix: &before_script_unix
     - .gitlab/ci/cmake.sh
@@ -519,7 +546,7 @@
     <<:
         - *windows_vs2019_x64
         - *cmake_test_windows_external
-        - *windows_builder_tags
+        - *windows_builder_ext_tags
     rules: *rules_settings
     dependencies:
         - test:windows-vs2019-x64-ninja