diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index d71900e6134..e005e25a0a4 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -23,7 +23,7 @@ on: jobs: build: - runs-on: macos-13 + runs-on: macos-latest strategy: matrix: @@ -88,6 +88,7 @@ jobs: working-directory: ${{ runner.temp }}/shadow_build_dir run: ${{ env.QT_ROOT_DIR }}/bin/qt-cmake -S ${{ github.workspace }} -B . -G Ninja -DCMAKE_BUILD_TYPE=${{ matrix.BuildType }} + -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DQGC_BUILD_TESTING=${{ matrix.BuildType == 'Debug' && 'ON' || 'OFF' }} -DQGC_STABLE_BUILD=${{ github.ref_type == 'tag' || contains(github.ref, 'Stable') && 'ON' || 'OFF' }} diff --git a/CMakeLists.txt b/CMakeLists.txt index 491fb33a9b3..762920cce32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -231,6 +231,14 @@ if(QGC_DISABLE_APM_MAVLINK) add_compile_definitions(NO_ARDUPILOT_DIALECT) endif() +set(MACOS_UNIVERSAL_BUILD FALSE) +if(MACOS) + if(CMAKE_OSX_ARCHITECTURES AND NOT "${CMAKE_HOST_SYSTEM_PROCESSOR}" IN_LIST CMAKE_OSX_ARCHITECTURES) + set(MACOS_UNIVERSAL_BUILD TRUE) + endif() +endif() +cmake_dependent_option(QGC_BUILD_DEPENDENCIES "Force Building of Dependencies." OFF "CMAKE_CROSSCOMPILING OR MACOS_UNIVERSAL_BUILD" ON) + ####################################################### # Custom Build Configuration ####################################################### diff --git a/cmake/CreateMacDMG.cmake b/cmake/CreateMacDMG.cmake index f2ccbf3ee35..cce72e9c379 100644 --- a/cmake/CreateMacDMG.cmake +++ b/cmake/CreateMacDMG.cmake @@ -37,6 +37,6 @@ file(REMOVE_RECURSE package) file(MAKE_DIRECTORY package) file(COPY staging/QGroundControl.app DESTINATION package) file(REMOVE /tmp/tmp.dmg) -execute_process(COMMAND hdiutil create /tmp/tmp.dmg -ov -volname QGroundControl -fs HFS+ -srcfolder package) +execute_process(COMMAND hdiutil create /tmp/tmp.dmg -ov -volname QGroundControl -fs APFS -srcfolder package) execute_process(COMMAND hdiutil convert /tmp/tmp.dmg -format UDBZ -o package/QGroundControl.dmg) file(REMOVE /tmp/tmp.dmg) diff --git a/src/Geo/CMakeLists.txt b/src/Geo/CMakeLists.txt index 85a21ab8195..4a4899c8480 100644 --- a/src/Geo/CMakeLists.txt +++ b/src/Geo/CMakeLists.txt @@ -17,7 +17,7 @@ target_include_directories(Geo PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) set(MINIMUM_GEOGRAPHICLIB_VERSION 2.3) -if(NOT CMAKE_CROSSCOMPILING) +if(NOT QGC_BUILD_DEPENDENCIES) find_package(GeographicLib ${MINIMUM_GEOGRAPHICLIB_VERSION} COMPONENTS STATIC) if(GeographicLib_FOUND) message(STATUS "Found GeographicLib") diff --git a/src/Joystick/CMakeLists.txt b/src/Joystick/CMakeLists.txt index 52a0afb75b9..1cebdecdbd0 100644 --- a/src/Joystick/CMakeLists.txt +++ b/src/Joystick/CMakeLists.txt @@ -62,7 +62,7 @@ qt_add_resources(Joystick "gamecontrollerdb.txt" set(MINIMUM_SDL2_VERSION 2.30.0) -if(NOT CMAKE_CROSSCOMPILING) +if(NOT QGC_BUILD_DEPENDENCIES) find_package(SDL2 ${MINIMUM_SDL2_VERSION}) if(SDL2_FOUND) message(STATUS "Found JoystickSDL ${SDL2_VERSION_STRING}")