Browse Source

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 years ago
parent
commit
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