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