Cache dependencies through CPM

This commit is contained in:
Holden
2025-01-20 04:34:08 -05:00
committed by Holden
parent 89a3291348
commit dd73a6b20d
22 changed files with 130 additions and 167 deletions
+9
View File
@@ -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:
+3
View File
@@ -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
+3
View File
@@ -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
+3
View File
@@ -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
+7
View File
@@ -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
+7
View File
@@ -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
+7
View File
@@ -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
+7
View File
@@ -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
+1
View File
@@ -92,3 +92,4 @@ docs/.vitepress/cache/
docs/.vitepress/dist/
CMakeUserPresets.json
cpm_modules
+2
View File
@@ -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")
+24 -1
View File
@@ -80,4 +80,27 @@ export(TARGETS
GenericCodeGen
APPEND FILE MapboxCoreTargets.cmake
)
)
# 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()
+27 -66
View File
@@ -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"
-1
View File
@@ -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"
-1
View File
@@ -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)
-1
View File
@@ -47,7 +47,6 @@ CPMAddPackage(
NAME px4-gpsdrivers
GITHUB_REPOSITORY PX4/PX4-GPSDrivers
GIT_TAG main
GIT_SHALLOW TRUE
SOURCE_SUBDIR src
)
+4 -22
View File
@@ -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"
+6 -18
View File
@@ -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"
-1
View File
@@ -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"
-1
View File
@@ -32,7 +32,6 @@ CPMAddPackage(
NAME libevents
GITHUB_REPOSITORY mavlink/libevents
GIT_TAG main
GIT_SHALLOW TRUE
SOURCE_SUBDIR libs/cpp
)
+1 -2
View File
@@ -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
+4 -18
View File
@@ -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)
+15 -35
View File
@@ -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"