瀏覽代碼

ci: Enable FindOpenMP tests on macOS Ninja and Makefiles jobs

Since Apple does not distribute the OpenMP header and library
with its AppleClang compiler, download them as part of the jobs.
Brad King 3 年之前
父節點
當前提交
7ef3638454

+ 1 - 0
.gitlab/.gitignore

@@ -8,6 +8,7 @@
 /mingw
 /msvc*
 /ninja*
+/openmp
 /open-watcom*
 /python*
 /qt*

+ 3 - 0
.gitlab/ci/configure_macos_arm64_ninja.cmake

@@ -1,3 +1,6 @@
+set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
 set(CMake_TEST_GUI "ON" CACHE BOOL "")
 include("${CMAKE_CURRENT_LIST_DIR}/configure_macos_common.cmake")
 include("${CMAKE_CURRENT_LIST_DIR}/configure_common.cmake")

+ 3 - 0
.gitlab/ci/configure_macos_x86_64_makefiles.cmake

@@ -1,3 +1,6 @@
+set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
 set(CMake_TEST_GUI "ON" CACHE BOOL "")
 if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
   set(CMake_TEST_ISPC "ON" CACHE STRING "")

+ 3 - 0
.gitlab/ci/configure_macos_x86_64_ninja.cmake

@@ -1,3 +1,6 @@
+set(CMake_TEST_FindOpenMP "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_C "ON" CACHE BOOL "")
+set(CMake_TEST_FindOpenMP_CXX "ON" CACHE BOOL "")
 set(CMake_TEST_GUI "ON" CACHE BOOL "")
 if (NOT "$ENV{CMAKE_CI_NIGHTLY}" STREQUAL "")
   set(CMake_TEST_ISPC "ON" CACHE STRING "")

+ 1 - 0
.gitlab/ci/env_macos_arm64_ninja.sh

@@ -0,0 +1 @@
+. .gitlab/ci/openmp-env.sh

+ 1 - 0
.gitlab/ci/env_macos_x86_64_makefiles.sh

@@ -1,3 +1,4 @@
+. .gitlab/ci/openmp-env.sh
 if test "$CMAKE_CI_NIGHTLY" = "true"; then
   source .gitlab/ci/ispc-env.sh
 fi

+ 1 - 0
.gitlab/ci/env_macos_x86_64_ninja.sh

@@ -1,3 +1,4 @@
+. .gitlab/ci/openmp-env.sh
 if test "$CMAKE_CI_NIGHTLY" = "true"; then
   source .gitlab/ci/ispc-env.sh
 fi

+ 3 - 0
.gitlab/ci/openmp-env.sh

@@ -0,0 +1,3 @@
+.gitlab/ci/openmp.sh
+export CMAKE_PREFIX_PATH=$PWD/.gitlab/openmp${CMAKE_PREFIX_PATH:+:$CMAKE_PREFIX_PATH}
+export DYLD_LIBRARY_PATH=$PWD/.gitlab/openmp/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}

+ 32 - 0
.gitlab/ci/openmp.sh

@@ -0,0 +1,32 @@
+#!/bin/sh
+
+set -e
+
+baseurl="https://cmake.org/files/dependencies/openmp"
+
+case "$(uname -s)-$(uname -m)" in
+    Darwin-*)
+        shatool="shasum -a 256"
+        sha256sum="6eef660db7a085a04f87e4aac79da9f37d26ff0fb17c8781d3a21bd5244997e9"
+        filename="openmp-12.0.1-darwin20-Release"
+        # tarball contains usr/local/
+        strip_components=--strip-components=2
+        ;;
+    *)
+        echo "Unrecognized platform $(uname -s)-$(uname -m)"
+        exit 1
+        ;;
+esac
+readonly shatool
+readonly sha256sum
+
+readonly tarball="$filename.tar.gz"
+
+cd .gitlab
+mkdir -p openmp
+
+echo "$sha256sum  $tarball" > openmp.sha256sum
+curl -OL "$baseurl/$tarball"
+$shatool --check openmp.sha256sum
+tar -C openmp $strip_components -xzf $tarball
+rm $tarball openmp.sha256sum

+ 1 - 1
.gitlab/os-macos.yml

@@ -143,7 +143,7 @@
     - ninja --version
     # Download Qt
     - cmake -P .gitlab/ci/download_qt.cmake
-    - export CMAKE_PREFIX_PATH=$PWD/.gitlab/qt
+    - export CMAKE_PREFIX_PATH=$PWD/.gitlab/qt${CMAKE_PREFIX_PATH:+:$CMAKE_PREFIX_PATH}
 
 .cmake_build_macos:
     stage: build