From c446fe5cf787cea2821123c9482885deadfcb903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Dumas?= Date: Tue, 12 Mar 2024 09:29:11 -0700 Subject: [PATCH] Add macos-14 images to GitHub actions. (#23) --- .github/workflows/continuous.yaml | 16 ++++++++++++++-- .github/workflows/wheel.yaml | 9 +++++++-- cmake/recipes/external/embree.cmake | 11 +++++++++++ 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/.github/workflows/continuous.yaml b/.github/workflows/continuous.yaml index f0f9467d..395b0e6e 100644 --- a/.github/workflows/continuous.yaml +++ b/.github/workflows/continuous.yaml @@ -23,12 +23,18 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, macos-12] + os: [ubuntu-22.04, macos-13, macos-14] config: [RelwithDebInfo, Debug] compiler: [gcc, apple, llvm] sanitizer: ["Address", "Thread"] # TODO: Add Memory+Undefined Sanitizer exclude: - - os: macos-12 + - os: macos-13 + compiler: gcc + - os: macos-13 + sanitizer: Thread + - os: macos-13 + config: Debug + - os: macos-14 compiler: gcc - os: ubuntu-22.04 compiler: apple @@ -83,6 +89,12 @@ jobs: echo "CXX='$(brew --prefix llvm@17)/bin/clang++'" >> $GITHUB_ENV fi + - name: Setup Xcode version + if: runner.os == 'macOS' + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '15.2' + - name: Get number of CPU cores uses: SimenB/github-actions-cpu-cores@v1 id: cpu-cores diff --git a/.github/workflows/wheel.yaml b/.github/workflows/wheel.yaml index 45f31253..f807cd3e 100644 --- a/.github/workflows/wheel.yaml +++ b/.github/workflows/wheel.yaml @@ -10,7 +10,7 @@ jobs: strategy: fail-fast: false matrix: - os: ['ubuntu-22.04', 'macos-12', 'windows-2022'] + os: [ubuntu-22.04, macos-13, macos-14, windows-2022] name: ${{matrix.os}} runs-on: ${{matrix.os}} @@ -19,6 +19,12 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Setup Xcode version + if: runner.os == 'macOS' + uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: '15.2' + - name: Setup Python uses: actions/setup-python@v5 with: @@ -42,7 +48,6 @@ jobs: path: ./wheelhouse/*.whl - upload_pypi: name: Upload wheels to PyPI runs-on: ubuntu-latest diff --git a/cmake/recipes/external/embree.cmake b/cmake/recipes/external/embree.cmake index 73ad7e87..f505e99f 100644 --- a/cmake/recipes/external/embree.cmake +++ b/cmake/recipes/external/embree.cmake @@ -124,6 +124,17 @@ function(embree_import_target) add_library(embree::embree INTERFACE IMPORTED GLOBAL) target_include_directories(embree::embree SYSTEM INTERFACE ${embree_SOURCE_DIR}/include) target_link_libraries(embree::embree INTERFACE embree) + + # Generate a dummy .cpp for embree's math library, to workaround a weird link issue with + # LLVM-Clang on macOS + # Generate implementation file + file(WRITE "${embree_BINARY_DIR}/embree_math_dummy.cpp.in" [[ + namespace embree { + void math_dummy() {} + } + ]]) + configure_file(${embree_BINARY_DIR}/embree_math_dummy.cpp.in ${embree_BINARY_DIR}/embree_math_dummy.cpp COPYONLY) + target_sources(math PRIVATE ${embree_BINARY_DIR}/embree_math_dummy.cpp) endfunction() # Call via a proper function in order to scope variables such as CMAKE_FIND_PACKAGE_PREFER_CONFIG and TBB_DIR