浏览代码

Fix cmake issues detecting mongo and libsystemd on macOS (#1621)

- libsystemd does not exist on macOS - ignore it and reduce warnings
during cmake step
- mongo-c has cmake file on macOS - reusing the same code path and
reduce warnings
Pavel Punsky 9 月之前
父节点
当前提交
c98bb93514
共有 2 个文件被更改,包括 37 次插入2 次删除
  1. 35 0
      .github/workflows/macos.yml
  2. 2 2
      src/apps/relay/CMakeLists.txt

+ 35 - 0
.github/workflows/macos.yml

@@ -48,3 +48,38 @@ jobs:
         working-directory: examples/
         working-directory: examples/
       - run: ./run_tests_conf.sh
       - run: ./run_tests_conf.sh
         working-directory: examples/
         working-directory: examples/
+
+  build-cmake:
+    name: build + test cmake
+    strategy:
+      fail-fast: false
+      matrix:
+        ver: ["15"]
+    runs-on: macos-${{ matrix.ver }}
+    steps:
+      - uses: actions/checkout@v4
+
+      - name: Relink `python` package in `brew`
+        # Unlink and re-link to prevent errors when GitHub `macos` runner images
+        # install `python` outside of `brew`, for example:
+        # https://github.com/orgs/Homebrew/discussions/3895
+        # https://github.com/actions/setup-python/issues/577
+        # https://github.com/actions/runner-images/issues/6459
+        # https://github.com/actions/runner-images/issues/6507
+        # https://github.com/actions/runner-images/issues/2322
+        run: brew list -1 
+              | grep python 
+              | while read formula; do brew unlink $formula; brew link --overwrite $formula; done
+
+      - run: brew update
+      - run: brew install wget pkg-config libevent [email protected] sqlite hiredis mongo-c-driver libmicrohttpd
+
+      - name: Configure
+        run: cmake -B ${{github.workspace}}/build
+      - name: Build
+        run: cmake --build ${{github.workspace}}/build
+
+      - run: ./run_tests.sh
+        working-directory: examples/
+      - run: ./run_tests_conf.sh
+        working-directory: examples/

+ 2 - 2
src/apps/relay/CMakeLists.txt

@@ -75,7 +75,7 @@ else()
     list(APPEND turnserver_DEFINED TURN_NO_MYSQL)
     list(APPEND turnserver_DEFINED TURN_NO_MYSQL)
 endif()
 endif()
 
 
-if(WIN32)
+if(WIN32 OR APPLE)
 	find_package(mongoc-1.0)
 	find_package(mongoc-1.0)
 	if(mongoc-1.0_FOUND)
 	if(mongoc-1.0_FOUND)
 		list(APPEND turnserver_LIBS mongo::mongoc_shared)
 		list(APPEND turnserver_LIBS mongo::mongoc_shared)
@@ -104,7 +104,7 @@ else()
     list(APPEND turnserver_DEFINED TURN_NO_HIREDIS)
     list(APPEND turnserver_DEFINED TURN_NO_HIREDIS)
 endif()
 endif()
 
 
-if(UNIX)
+if(UNIX AND (NOT APPLE))
     find_package(libsystemd)
     find_package(libsystemd)
     if(NOT libsystemd_FOUND)
     if(NOT libsystemd_FOUND)
         list(APPEND turnserver_DEFINED TURN_NO_SYSTEMD)
         list(APPEND turnserver_DEFINED TURN_NO_SYSTEMD)