diff --git a/.github/workflows/build-macos-hosts.yml b/.github/workflows/build-macos-hosts.yml index d805bf70d..a145ac8dc 100644 --- a/.github/workflows/build-macos-hosts.yml +++ b/.github/workflows/build-macos-hosts.yml @@ -26,13 +26,30 @@ jobs: - name: uname -a run: uname -a - - name: install required packages + - name: install required packages with MacPorts # Homebrew dropped Intel support + if: inputs.arch == 'amd64' + run: | + curl -fsSL https://github.com/macports/macports-base/releases/download/v2.12.6/MacPorts-2.12.6-15-Sequoia.pkg -o "$RUNNER_TEMP/MacPorts.pkg" + sudo installer -pkg "$RUNNER_TEMP/MacPorts.pkg" -target / + echo /opt/local/bin >> "$GITHUB_PATH" + echo /opt/local/sbin >> "$GITHUB_PATH" + export PATH=/opt/local/bin:/opt/local/sbin:$PATH + sudo port selfupdate + sudo port install vulkan-loader vulkan-headers MoltenVK ImageMagick7 chafa lua quickjs-ng jq + + - name: install required packages with Homebrew + if: inputs.arch == 'aarch64' run: | HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew update HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install --overwrite vulkan-loader vulkan-headers molten-vk imagemagick chafa lua quickjs-ng jq - name: configure project - run: cmake -DSET_TWEAK=Off -DBUILD_TESTS=On . + run: | + if [ "${{ inputs.arch }}" = "amd64" ]; then + export CMAKE_PREFIX_PATH=/opt/local + export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} + fi + cmake -DSET_TWEAK=Off -DBUILD_TESTS=On . - name: build project run: cmake --build . --target package --verbose -j4 diff --git a/CMakeLists.txt b/CMakeLists.txt index 3fa14120b..685f2f6e6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1458,10 +1458,11 @@ if(yyjson_FOUND) # `target_link_libraries(yyjson::yyjson)` sets rpath implicitly endif() -# Used for dlopen finding dylibs installed by homebrew -# `/opt/homebrew/lib` is not on in dlopen search path by default +# Used for dlopen finding dylibs installed by package managers +# `/opt/homebrew/lib`, `/usr/local/lib` and `/opt/local/lib` are not on the +# dlopen search path by default if(APPLE AND BINARY_LINK_TYPE STREQUAL "dlopen") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,/opt/homebrew/lib -Wl,-rpath,/usr/local/lib") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,/opt/homebrew/lib -Wl,-rpath,/usr/local/lib -Wl,-rpath,/opt/local/lib") endif() if(ANDROID)