From dd73a6b20d5e81434e8329f567bccfd9ca167e8c Mon Sep 17 00:00:00 2001 From: Holden Date: Mon, 20 Jan 2025 04:34:08 -0500 Subject: [PATCH] Cache dependencies through CPM --- .github/actions/qt-android/action.yml | 9 +++ .github/workflows/android-linux.yml | 3 + .github/workflows/android-macos.yml | 3 + .github/workflows/android-windows.yml | 3 + .github/workflows/ios.yml | 7 ++ .github/workflows/linux.yml | 7 ++ .github/workflows/macos.yml | 7 ++ .github/workflows/windows.yml | 7 ++ .gitignore | 1 + cmake/CustomOptions.cmake | 2 + cmake/modules/vulkan.cmake | 25 ++++++- src/AnalyzeView/CMakeLists.txt | 93 +++++++----------------- src/Comms/CMakeLists.txt | 1 - src/FirmwarePlugin/APM/CMakeLists.txt | 1 - src/GPS/CMakeLists.txt | 1 - src/Geo/CMakeLists.txt | 26 +------ src/Joystick/CMakeLists.txt | 24 ++---- src/MAVLink/CMakeLists.txt | 1 - src/MAVLink/LibEvents/CMakeLists.txt | 1 - src/UTMSP/CMakeLists.txt | 3 +- src/Utilities/CMakeLists.txt | 22 +----- src/Utilities/Compression/CMakeLists.txt | 50 ++++--------- 22 files changed, 130 insertions(+), 167 deletions(-) diff --git a/.github/actions/qt-android/action.yml b/.github/actions/qt-android/action.yml index ba0ae16ed..f494843b5 100644 --- a/.github/actions/qt-android/action.yml +++ b/.github/actions/qt-android/action.yml @@ -15,6 +15,10 @@ inputs: description: ABIs to Build required: false default: 'armeabi-v7a;arm64-v8a' + cpm-cache: + description: CPM Cache Path + required: false + default: ${{ github.workspace }}/cpm_modules runs: using: "composite" steps: @@ -59,6 +63,11 @@ runs: verbose: 1 evict-old-files: 'job' + - uses: actions/cache@v4 + with: + path: ${{ inputs.cpm-cache }} + key: ${{ github.workflow }}-cpm-modules-${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }} + - name: Install Qt for ${{ runner.os }} uses: jurplel/install-qt-action@v4 with: diff --git a/.github/workflows/android-linux.yml b/.github/workflows/android-linux.yml index 22d054ebe..77e4c2dfb 100644 --- a/.github/workflows/android-linux.yml +++ b/.github/workflows/android-linux.yml @@ -41,6 +41,7 @@ jobs: QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} QT_ANDROID_KEYSTORE_KEY_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} QT_ANDROID_ABIS: ${{ matrix.BuildType == 'Release' && 'armeabi-v7a;arm64-v8a' || 'arm64-v8a' }} + CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm_modules steps: - name: Checkout repo @@ -67,6 +68,7 @@ jobs: arch: linux_gcc_64 version: ${{ env.QT_VERSION }} abis: ${{ env.QT_ANDROID_ABIS }} + cpm-cache: ${{ env.CPM_SOURCE_CACHE }} - run: mkdir ${{ runner.temp }}/shadow_build_dir @@ -80,6 +82,7 @@ jobs: -DQT_ANDROID_SIGN_APK=${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request' && 'ON' || 'OFF' }} -DQT_DEBUG_FIND_PACKAGE=ON -DQGC_STABLE_BUILD=${{ github.ref_type == 'tag' || contains(github.ref, 'Stable') && 'ON' || 'OFF' }} + -DCPM_SOURCE_CACHE=${{ env.CPM_SOURCE_CACHE }} - name: Build working-directory: ${{ runner.temp }}/shadow_build_dir diff --git a/.github/workflows/android-macos.yml b/.github/workflows/android-macos.yml index 222bbb75a..59e5d3d2e 100644 --- a/.github/workflows/android-macos.yml +++ b/.github/workflows/android-macos.yml @@ -28,6 +28,7 @@ jobs: QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} QT_ANDROID_KEYSTORE_KEY_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} QT_ANDROID_ABIS: 'arm64-v8a' + CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm_modules steps: - name: Checkout repo @@ -53,6 +54,7 @@ jobs: arch: clang_64 version: ${{ env.QT_VERSION }} abis: ${{ env.QT_ANDROID_ABIS }} + cpm-cache: ${{ env.CPM_SOURCE_CACHE }} - run: mkdir ${{ runner.temp }}/shadow_build_dir @@ -66,6 +68,7 @@ jobs: -DQT_ANDROID_SIGN_APK=${{ github.ref == 'refs/heads/master' && github.event_name != 'pull_request' && 'ON' || 'OFF' }} -DQT_DEBUG_FIND_PACKAGE=ON -DQGC_STABLE_BUILD=${{ github.ref_type == 'tag' || contains(github.ref, 'Stable') && 'ON' || 'OFF' }} + -DCPM_SOURCE_CACHE=${{ env.CPM_SOURCE_CACHE }} - name: Build working-directory: ${{ runner.temp }}/shadow_build_dir diff --git a/.github/workflows/android-windows.yml b/.github/workflows/android-windows.yml index 5a5df94dd..19f3e33f3 100644 --- a/.github/workflows/android-windows.yml +++ b/.github/workflows/android-windows.yml @@ -41,6 +41,7 @@ jobs: QT_ANDROID_KEYSTORE_STORE_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} QT_ANDROID_KEYSTORE_KEY_PASS: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }} QT_ANDROID_ABIS: 'arm64-v8a' + CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm_modules steps: - name: Checkout repo @@ -63,6 +64,7 @@ jobs: arch: win64_msvc2022_64 version: ${{ env.QT_VERSION }} abis: ${{ env.QT_ANDROID_ABIS }} + cpm-cache: ${{ env.CPM_SOURCE_CACHE }} - name: Set up Visual Studio shell uses: ilammy/msvc-dev-cmd@v1 @@ -81,6 +83,7 @@ jobs: -DQT_ANDROID_SIGN_APK=OFF -DQT_DEBUG_FIND_PACKAGE=ON -DQGC_STABLE_BUILD=${{ github.ref_type == 'tag' || contains(github.ref, 'Stable') && 'ON' || 'OFF' }} + -DCPM_SOURCE_CACHE=${{ env.CPM_SOURCE_CACHE }} - name: Build working-directory: ${{ runner.temp }}/shadow_build_dir diff --git a/.github/workflows/ios.yml b/.github/workflows/ios.yml index 71b21438a..cb43eab36 100644 --- a/.github/workflows/ios.yml +++ b/.github/workflows/ios.yml @@ -24,6 +24,7 @@ jobs: PACKAGE: QGroundControl QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 + CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm_modules steps: - name: Checkout repo @@ -56,6 +57,11 @@ jobs: verbose: 1 evict-old-files: 'job' + - uses: actions/cache@v4 + with: + path: ${{ env.CPM_SOURCE_CACHE }} + key: ${{ github.workflow }}-cpm-modules-${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }} + - name: Install Qt for MacOS uses: jurplel/install-qt-action@v4 with: @@ -86,6 +92,7 @@ jobs: -DCMAKE_BUILD_TYPE=${{ matrix.BuildType }} -DQT_HOST_PATH="${{ env.QT_ROOT_DIR }}/../macos" -DQGC_STABLE_BUILD=${{ github.ref_type == 'tag' || contains(github.ref, 'Stable') && 'ON' || 'OFF' }} + -DCPM_SOURCE_CACHE=${{ env.CPM_SOURCE_CACHE }} - name: Build working-directory: ${{ runner.temp }}/shadow_build_dir diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index dee70cb60..108d0f2bc 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -36,6 +36,7 @@ jobs: PACKAGE: QGroundControl-x86_64 QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 + CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm_modules steps: - name: Checkout repo @@ -84,6 +85,11 @@ jobs: verbose: 1 evict-old-files: 'job' + - uses: actions/cache@v4 + with: + path: ${{ env.CPM_SOURCE_CACHE }} + key: ${{ github.workflow }}-cpm-modules-${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }} + - name: Install Qt for Linux (x64) uses: jurplel/install-qt-action@v4 with: @@ -106,6 +112,7 @@ jobs: -DCMAKE_BUILD_TYPE=${{ matrix.BuildType }} -DQGC_BUILD_TESTING=${{ matrix.BuildType == 'Debug' && 'ON' || 'OFF' }} -DQGC_STABLE_BUILD=${{ github.ref_type == 'tag' || contains(github.ref, 'Stable') && 'ON' || 'OFF' }} + -DCPM_SOURCE_CACHE=${{ env.CPM_SOURCE_CACHE }} - name: Build working-directory: ${{ runner.temp }}/shadow_build_dir diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index a46987c58..1080acffb 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -35,6 +35,7 @@ jobs: PACKAGE: QGroundControl QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 + CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm_modules steps: - name: Checkout repo @@ -77,6 +78,11 @@ jobs: verbose: 1 evict-old-files: 'job' + - uses: actions/cache@v4 + with: + path: ${{ env.CPM_SOURCE_CACHE }} + key: ${{ github.workflow }}-cpm-modules-${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }} + - name: Install Qt uses: jurplel/install-qt-action@v4 with: @@ -104,6 +110,7 @@ jobs: -DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" -DMACOS_SIGNING_IDENTITY=${{ secrets.MACOS_SIGNING_IDENTITY }} -DQGC_STABLE_BUILD=${{ github.ref_type == 'tag' || contains(github.ref, 'Stable') && 'ON' || 'OFF' }} + -DCPM_SOURCE_CACHE=${{ env.CPM_SOURCE_CACHE }} - name: Build working-directory: ${{ runner.temp }}/shadow_build_dir diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 6837fdbc9..2eb59eb59 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -37,6 +37,7 @@ jobs: QT_VERSION: 6.8.1 GST_VERSION: 1.22.12 SCCACHE_GHA_ENABLED: "true" + CPM_SOURCE_CACHE: ${{ github.workspace }}/cpm_modules steps: - name: Checkout repo @@ -73,6 +74,11 @@ jobs: variant: sccache save: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} + - uses: actions/cache@v4 + with: + path: ${{ env.CPM_SOURCE_CACHE }} + key: ${{ github.workflow }}-cpm-modules-${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }} + - name: Install Qt for Windows (x64) uses: jurplel/install-qt-action@v4 with: @@ -113,6 +119,7 @@ jobs: -DQT_HOST_PATH="${{ env.QT_ROOT_DIR }}/../msvc2022_64" -DQT_DEBUG_FIND_PACKAGE=ON -DQGC_STABLE_BUILD=${{ github.ref_type == 'tag' || contains(github.ref, 'Stable') && 'ON' || 'OFF' }} + -DCPM_SOURCE_CACHE=${{ env.CPM_SOURCE_CACHE }} - name: Build working-directory: ${{ runner.temp }}\shadow_build_dir diff --git a/.gitignore b/.gitignore index 0f03ff6df..6f8ce40e9 100644 --- a/.gitignore +++ b/.gitignore @@ -92,3 +92,4 @@ docs/.vitepress/cache/ docs/.vitepress/dist/ CMakeUserPresets.json +cpm_modules diff --git a/cmake/CustomOptions.cmake b/cmake/CustomOptions.cmake index 7841a11c7..805f9cac2 100644 --- a/cmake/CustomOptions.cmake +++ b/cmake/CustomOptions.cmake @@ -54,3 +54,5 @@ option(QGC_DISABLE_PX4_PLUGIN_FACTORY "Disable PX4 Plugin Factory" OFF) # If you need to make an incompatible changes to stored settings, bump this version number # up by 1. This will caused store settings to be cleared on next boot. set(QGC_SETTINGS_VERSION "9" CACHE STRING "Settings Version") + +set(CPM_SOURCE_CACHE ${CMAKE_BINARY_DIR}/cpm_modules CACHE PATH "Directory to download CPM dependencies") diff --git a/cmake/modules/vulkan.cmake b/cmake/modules/vulkan.cmake index dce8ddd0e..7366e161e 100644 --- a/cmake/modules/vulkan.cmake +++ b/cmake/modules/vulkan.cmake @@ -80,4 +80,27 @@ export(TARGETS GenericCodeGen APPEND FILE MapboxCoreTargets.cmake -) \ No newline at end of file +) + +# TODO: Build Vulkan Headers +# include(CPM) +# CPMAddPackage( +# NAME Vulkan-Headers +# GITHUB_REPOSITORY KhronosGroup/Vulkan-Headers +# GIT_TAG v1.3.269 +# ) + +# # Vulkan-Headers defines a header target but not one for the module. +# if(Vulkan-Headers_ADDED) +# add_library(Vulkan-Module) +# target_sources(Vulkan-Module +# PUBLIC FILE_SET CXX_MODULES +# BASE_DIRS "${Vulkan-Headers_SOURCE_DIR}/include" +# FILES "${Vulkan-Headers_SOURCE_DIR}/include/vulkan/vulkan.cppm" +# ) +# target_compile_definitions(Vulkan-Module PUBLIC +# # Your options here, project-dependent: +# # https://github.com/KhronosGroup/Vulkan-Hpp#configuration-options +# ) +# target_link_libraries(Vulkan-Module PUBLIC Vulkan-Headers) +# endif() diff --git a/src/AnalyzeView/CMakeLists.txt b/src/AnalyzeView/CMakeLists.txt index a4a8f7541..ca0f6d6e2 100644 --- a/src/AnalyzeView/CMakeLists.txt +++ b/src/AnalyzeView/CMakeLists.txt @@ -89,14 +89,11 @@ target_include_directories(AnalyzeView PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) #===========================================================================# -message(STATUS "Building ULogParser") - include(CPM) CPMAddPackage( NAME ulog_cpp GITHUB_REPOSITORY PX4/ulog_cpp GIT_TAG main - GIT_SHALLOW TRUE ) if(TARGET ulog_cpp::ulog_cpp) @@ -105,82 +102,46 @@ endif() #===========================================================================# -set(MINIMUM_EXIV2_VERSION 0.28) -set(TARGET_EXIV2_VERSION 0.28.3) +include(CPM) -set(MINIMUM_EXPAT_VERSION 2.2.6) -set(TARGET_EXPAT_VERSION 2.6.4) +# https://github.com/libexpat/libexpat/releases/download/R_2_6_4/expat-win32bin-2.6.4.zip -# if(QGC_DOWNLOAD_DEPENDENCIES) -# set(EXIV2_URL) -# if(MSVC) -# set(EXIV2_URL "https://github.com/Exiv2/exiv2/releases/download/v${TARGET_EXIV2_VERSION}/exiv2-${TARGET_EXIV2_VERSION}-2019msvc64.zip") -# elseif(LINUX) -# set(EXIV2_URL "https://github.com/Exiv2/exiv2/releases/download/v${TARGET_EXIV2_VERSION}/exiv2-${TARGET_EXIV2_VERSION}-Linux64.tar.gz") -# elseif(MACOS) -# set(EXIV2_URL "https://github.com/Exiv2/exiv2/releases/download/v${TARGET_EXIV2_VERSION}/exiv2-${TARGET_EXIV2_VERSION}-Darwin.tar.gz") -# endif() -# -# if(EXIV2_URL) -# include(CPM) -# CPMAddPackage( -# NAME exiv2 -# URL ${EXIV2_URL} -# ) -# exiv2_SOURCE_DIR -# target_link_libraries(AnalyzeView PRIVATE Exiv2::exiv2lib) -# return() -# endif() +CPMFindPackage( + NAME expat + VERSION 2.2.6 + GITHUB_REPOSITORY libexpat/libexpat + GIT_TAG "R_2_6_4" + SOURCE_SUBDIR expat + OPTIONS + "EXPAT_BUILD_DOCS OFF" + "EXPAT_BUILD_EXAMPLES OFF" + "EXPAT_BUILD_FUZZERS OFF" + "EXPAT_BUILD_PKGCONFIG OFF" + "EXPAT_BUILD_TESTS OFF" + "EXPAT_BUILD_TOOLS OFF" + "EXPAT_ENABLE_INSTALL OFF" + "EXPAT_SHARED_LIBS OFF" +) + +# if(MSVC) +# set(EXIV2_URL "https://github.com/Exiv2/exiv2/releases/download/v${EXIV2_VERSION}/exiv2-${EXIV2_VERSION}-2019msvc64.zip") +# elseif(LINUX) +# set(EXIV2_URL "https://github.com/Exiv2/exiv2/releases/download/v${EXIV2_VERSION}/exiv2-${EXIV2_VERSION}-Linux64.tar.gz") +# elseif(MACOS) +# set(EXIV2_URL "https://github.com/Exiv2/exiv2/releases/download/v${EXIV2_VERSION}/exiv2-${EXIV2_VERSION}-Darwin.tar.gz") # endif() -if(NOT QGC_BUILD_DEPENDENCIES) - find_package(exiv2 ${MINIMUM_EXIV2_VERSION}) - if(TARGET Exiv2::exiv2lib) # AND exiv2_VERSION VERSION_GREATER_EQUAL ${MINIMUM_EXIV2_VERSION}) - target_link_libraries(AnalyzeView PRIVATE Exiv2::exiv2lib) - return() - endif() -endif() - -if(NOT QGC_BUILD_DEPENDENCIES) - find_package(EXPAT ${MINIMUM_EXPAT_VERSION}) -endif() - -if(NOT TARGET EXPAT::EXPAT) - message(STATUS "Building Expat") - - include(CPM) - CPMAddPackage( - NAME expat - VERSION ${TARGET_EXPAT_VERSION} - GITHUB_REPOSITORY libexpat/libexpat - GIT_TAG "R_2_6_4" - GIT_SHALLOW TRUE - SOURCE_SUBDIR expat - OPTIONS - "EXPAT_BUILD_DOCS OFF" - "EXPAT_BUILD_EXAMPLES OFF" - "EXPAT_BUILD_FUZZERS OFF" - "EXPAT_BUILD_PKGCONFIG OFF" - "EXPAT_BUILD_TESTS OFF" - "EXPAT_BUILD_TOOLS OFF" - "EXPAT_ENABLE_INSTALL OFF" - "EXPAT_SHARED_LIBS OFF" - ) -endif() - -message(STATUS "Building Exiv2") - if(TARGET EXPAT::EXPAT) set(_EXIV2_ENABLE_XMP ON) else() set(_EXIV2_ENABLE_XMP OFF) endif() -include(CPM) CPMAddPackage( NAME exiv2 - VERSION ${TARGET_EXIV2_VERSION} + VERSION 0.28 GITHUB_REPOSITORY Exiv2/exiv2 + GIT_TAG v0.28.3 OPTIONS "EXIV2_ENABLE_XMP ${_EXIV2_ENABLE_XMP}" "EXIV2_ENABLE_EXTERNAL_XMP OFF" diff --git a/src/Comms/CMakeLists.txt b/src/Comms/CMakeLists.txt index c95f7eae3..8f1a9fd22 100644 --- a/src/Comms/CMakeLists.txt +++ b/src/Comms/CMakeLists.txt @@ -100,7 +100,6 @@ if(QGC_ZEROCONF_ENABLED) NAME qmdnsengine GITHUB_REPOSITORY nitroshare/qmdnsengine GIT_TAG master - GIT_SHALLOW TRUE OPTIONS "BUILD_DOC OFF" "BUILD_EXAMPLES OFF" diff --git a/src/FirmwarePlugin/APM/CMakeLists.txt b/src/FirmwarePlugin/APM/CMakeLists.txt index 0cf357778..42cac0725 100644 --- a/src/FirmwarePlugin/APM/CMakeLists.txt +++ b/src/FirmwarePlugin/APM/CMakeLists.txt @@ -48,7 +48,6 @@ CPMAddPackage( NAME ArduPilotParams GITHUB_REPOSITORY ArduPilot/ParameterRepository GIT_TAG main - GIT_SHALLOW TRUE ) # file(GLOB QML_SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/*.qml) diff --git a/src/GPS/CMakeLists.txt b/src/GPS/CMakeLists.txt index 6ae110ea3..843cdd14e 100644 --- a/src/GPS/CMakeLists.txt +++ b/src/GPS/CMakeLists.txt @@ -47,7 +47,6 @@ CPMAddPackage( NAME px4-gpsdrivers GITHUB_REPOSITORY PX4/PX4-GPSDrivers GIT_TAG main - GIT_SHALLOW TRUE SOURCE_SUBDIR src ) diff --git a/src/Geo/CMakeLists.txt b/src/Geo/CMakeLists.txt index f8d41140e..d69317eb7 100644 --- a/src/Geo/CMakeLists.txt +++ b/src/Geo/CMakeLists.txt @@ -17,34 +17,16 @@ target_include_directories(Geo PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) #===========================================================================# -set(MINIMUM_GEOGRAPHICLIB_VERSION 2.3) -set(TARGET_GEOGRAPHICLIB_VERSION 2.5) - -if(NOT QGC_BUILD_DEPENDENCIES) - if(LINUX) - list(APPEND CMAKE_MODULE_PATH "/usr/share/cmake/geographiclib") - endif() - find_package(GeographicLib ${MINIMUM_GEOGRAPHICLIB_VERSION} COMPONENTS STATIC) - if(TARGET GeographicLib::GeographicLib) - target_link_libraries(Geo PRIVATE GeographicLib::GeographicLib) - return() - elseif(GeographicLib_FOUND) - target_link_libraries(Geo PRIVATE ${GeographicLib_LIBRARIES}) - target_include_directories(Geo PRIVATE ${GeographicLib_INCLUDE_DIRS}) - target_link_directories(Geo PRIVATE ${GeographicLib_LIBRARY_DIRS}) - return() - endif() +if(LINUX AND EXISTS "/usr/share/cmake/geographiclib") + list(APPEND CMAKE_MODULE_PATH "/usr/share/cmake/geographiclib") endif() -message(STATUS "Building GeographicLib") - include(CPM) CPMAddPackage( NAME geographiclib - VERSION ${TARGET_GEOGRAPHICLIB_VERSION} + VERSION 2.3 GITHUB_REPOSITORY geographiclib/geographiclib - GIT_TAG "r${TARGET_GEOGRAPHICLIB_VERSION}" - GIT_SHALLOW TRUE + GIT_TAG r2.5 OPTIONS "BUILD_BOTH_LIBS OFF" "BUILD_DOCUMENTATION OFF" diff --git a/src/Joystick/CMakeLists.txt b/src/Joystick/CMakeLists.txt index 781ff25ec..6dab435ac 100644 --- a/src/Joystick/CMakeLists.txt +++ b/src/Joystick/CMakeLists.txt @@ -55,7 +55,6 @@ CPMAddPackage( NAME sdl_gamecontrollerdb GITHUB_REPOSITORY mdqinc/SDL_GameControllerDB GIT_TAG master - GIT_SHALLOW TRUE ) set_source_files_properties(${sdl_gamecontrollerdb_SOURCE_DIR}/gamecontrollerdb.txt PROPERTIES QT_RESOURCE_ALIAS gamecontrollerdb.txt) @@ -67,18 +66,9 @@ qt_add_resources(Joystick "gamecontrollerdb.txt" #===========================================================================# -set(MINIMUM_SDL2_VERSION 2.0.20) -set(TARGET_SDL2_VERSION 2.30.11) - -if(NOT QGC_BUILD_DEPENDENCIES) - find_package(SDL2 ${MINIMUM_SDL2_VERSION}) - if(TARGET SDL2::SDL2) - target_link_libraries(Joystick PRIVATE SDL2::SDL2) - return() - endif() -endif() - -message(STATUS "Building SDL2") +# https://github.com/libsdl-org/SDL/releases/download/prerelease-3.1.10/SDL3-3.1.10-win32-x64.zip +# https://github.com/libsdl-org/SDL/releases/download/prerelease-3.1.10/SDL3-devel-3.1.10-android.zip +# https://github.com/libsdl-org/SDL/releases/download/prerelease-3.1.10/SDL3-3.1.10.dmg if(WIN32) set(SDL2_EXTRA_OPTIONS @@ -87,13 +77,11 @@ if(WIN32) ) endif() -include(CPM) -CPMAddPackage( +CPMFindPackage( NAME sdl2 - VERSION ${TARGET_SDL2_VERSION} + VERSION 2.0.20 GITHUB_REPOSITORY libsdl-org/SDL - GIT_TAG "release-${TARGET_SDL2_VERSION}" - GIT_SHALLOW TRUE + GIT_TAG release-2.30.11 OPTIONS "SDL2_DISABLE_INSTALL ON" "SDL2_DISABLE_INSTALL ON" diff --git a/src/MAVLink/CMakeLists.txt b/src/MAVLink/CMakeLists.txt index 9d0899fcb..366aba088 100644 --- a/src/MAVLink/CMakeLists.txt +++ b/src/MAVLink/CMakeLists.txt @@ -41,7 +41,6 @@ message(STATUS "Building MAVLink") # NAME mavlink # GITHUB_REPOSITORY mavlink/mavlink # GIT_TAG master -# GIT_SHALLOW TRUE # OPTIONS # "MAVLINK_DIALECT all" # "MAVLINK_VERSION 2.0" diff --git a/src/MAVLink/LibEvents/CMakeLists.txt b/src/MAVLink/LibEvents/CMakeLists.txt index c68ce3c3b..3b02cfe98 100644 --- a/src/MAVLink/LibEvents/CMakeLists.txt +++ b/src/MAVLink/LibEvents/CMakeLists.txt @@ -32,7 +32,6 @@ CPMAddPackage( NAME libevents GITHUB_REPOSITORY mavlink/libevents GIT_TAG main - GIT_SHALLOW TRUE SOURCE_SUBDIR libs/cpp ) diff --git a/src/UTMSP/CMakeLists.txt b/src/UTMSP/CMakeLists.txt index ea9dc2e02..3a9750e14 100644 --- a/src/UTMSP/CMakeLists.txt +++ b/src/UTMSP/CMakeLists.txt @@ -6,9 +6,8 @@ qt_add_library(UTMSP STATIC) if(QGC_UTM_ADAPTER) message(STATUS "UTMSP is Initialized") - # message(STATUS "Building nlohmann_json") # include(CPM) - # CPMAddPackage( + # CPMFindPackage( # NAME nlohmann_json # VERSION 3.11.3 # GITHUB_REPOSITORY nlohmann/json diff --git a/src/Utilities/CMakeLists.txt b/src/Utilities/CMakeLists.txt index 72ecfcfb1..1ced593bb 100644 --- a/src/Utilities/CMakeLists.txt +++ b/src/Utilities/CMakeLists.txt @@ -62,30 +62,16 @@ endif() #===========================================================================# -set(MINIMUM_SHAPELIB_VERSION 1.6.0) -set(TARGET_SHAPELIB_VERSION 1.6.1) - -if(NOT QGC_BUILD_DEPENDENCIES) - find_package(Shapelib ${MINIMUM_SHAPELIB_VERSION}) - if(TARGET SHAPELIB::shp) - target_link_libraries(Utilities PRIVATE SHAPELIB::shp) - return() - endif() -endif() - -message(STATUS "Building Shapelib") - include(CPM) -CPMAddPackage( +CPMFindPackage( NAME shapelib - VERSION ${TARGET_SHAPELIB_VERSION} + VERSION 1.6.0 GITHUB_REPOSITORY OSGeo/shapelib + GIT_TAG v1.6.1 OPTIONS "BUILD_SHAPELIB_CONTRIB OFF" "BUILD_APPS OFF" "BUILD_TESTING OFF" ) -if(TARGET shp) - target_link_libraries(Utilities PRIVATE shp) -endif() +target_link_libraries(Utilities PRIVATE shp) diff --git a/src/Utilities/Compression/CMakeLists.txt b/src/Utilities/Compression/CMakeLists.txt index 0e1604fa8..29456af7c 100644 --- a/src/Utilities/Compression/CMakeLists.txt +++ b/src/Utilities/Compression/CMakeLists.txt @@ -21,48 +21,28 @@ target_include_directories(Compression PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) #===========================================================================# -set(MINIMUM_ZLIB_VERSION 1.2.13) -set(TARGET_ZLIB_VERSION 1.3.1) +include(CPM) +CPMFindPackage( + NAME zlib + VERSION 1.3.1 + GITHUB_REPOSITORY madler/zlib + OPTIONS + "ZLIB_BUILD_EXAMPLES OFF" + "SKIP_INSTALL_FILES ON" + "SKIP_INSTALL_LIBRARIES ON" + "SKIP_INSTALL_HEADERS ON" + "SKIP_INSTALL_ALL ON" + "ZLIB_USE_STATIC_LIBS ON" +) -if(NOT QGC_BUILD_DEPENDENCIES) - set(ZLIB_USE_STATIC_LIBS ON) - find_package(ZLIB ${MINIMUM_ZLIB_VERSION}) - if(TARGET ZLIB::ZLIB) - target_link_libraries(Compression PRIVATE ZLIB::ZLIB) - endif() -endif() - -if(NOT TARGET ZLIB::ZLIB) - message(STATUS "Building ZLIB") - - include(CPM) - CPMAddPackage( - NAME zlib - VERSION ${TARGET_ZLIB_VERSION} - GITHUB_REPOSITORY madler/zlib - OPTIONS - "ZLIB_BUILD_EXAMPLES OFF" - "SKIP_INSTALL_FILES ON" - "SKIP_INSTALL_LIBRARIES ON" - "SKIP_INSTALL_HEADERS ON" - "SKIP_INSTALL_ALL ON" - ) - - if(TARGET zlibstatic) - target_link_libraries(Compression PRIVATE zlibstatic) - endif() -endif() +target_link_libraries(Compression PRIVATE zlibstatic) #===========================================================================# -message(STATUS "Building XZ") - -include(CPM) CPMAddPackage( NAME xz-embedded + VERSION 2024-12-30 GITHUB_REPOSITORY tukaani-project/xz-embedded - GIT_TAG "v2024-12-30" - GIT_SHALLOW TRUE OPTIONS "BUILD_SHAPELIB_CONTRIB OFF" "BUILD_APPS OFF"