Files
GitAddonsManager/CMakeLists.txt
T

109 lines
3.2 KiB
CMake

cmake_minimum_required(VERSION 3.1.0)
project(GitAddonsManager LANGUAGES CXX)
find_package(Qt6 COMPONENTS Quick Core QuickControls2 Concurrent Network Widgets REQUIRED)
find_package(Qt6LinguistTools)
find_package(QuaZip-Qt6)
find_package(Git)
if(GIT_EXECUTABLE)
execute_process(
COMMAND ${GIT_EXECUTABLE} describe --tags --long --dirty
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE ${PROJECT_NAME}_GIT_DESCRIBE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
if (NOT WIN32)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBGIT2 REQUIRED IMPORTED_TARGET libgit2)
else()
include_directories(${LIBGIT2_INCLUDE_DIR})
endif()
add_compile_definitions(QT_DEPRECATED_WARNINGS)
qt_standard_project_setup()
qt_add_resources(RESOURCES
qml.qrc
)
if (qt6QuickCompiler_FOUND)
qtquick_compiler_add_resources(RESOURCES qml.qrc)
message(STATUS "Using qtquickcompiler")
else()
message(STATUS "qtquickcompiler not found, skipping")
endif()
set(qml_files
AddonsPanel.qml
AddonUpdateButton.qml
ColorPicker.qml
main.qml
MaterialSettings.qml
Options.qml
StyleSettingsBase.qml
Tray.qml
UniversalSettings.qml
Update.qml
)
set(${PROJECT_NAME}_BUILD_NAME "" CACHE STRING "name of the build pipeline for self updates")
set(${PROJECT_NAME}_BRANCH_NAME "" CACHE STRING "name of the branch for self updates")
option(${PROJECT_NAME}_SELF_UPDATE "Enable the self-update feature")
qt_add_executable(GitAddonsManager
addon.h control.h utils.h
main.cpp addon.cpp control.cpp
CI.mk .gitlab-ci.yml
${RESOURCES}
MANUAL_FINALIZATION
)
set_property(TARGET GitAddonsManager PROPERTY CXX_STANDARD 20)
add_compile_definitions(
GIT_DESCRIBE="${${PROJECT_NAME}_GIT_DESCRIBE}"
GAM_EXEC="GitAddonsManager${CMAKE_EXECUTABLE_SUFFIX}"
)
if (${PROJECT_NAME}_SELF_UPDATE)
if (${PROJECT_NAME}_BUILD_NAME STREQUAL "")
message(FATAL_ERROR "${PROJECT_NAME}_SELF_UPDATE is enabled but ${PROJECT_NAME}_BUILD_NAME is not set" )
endif()
if (${PROJECT_NAME}_BRANCH_NAME STREQUAL "")
message(FATAL_ERROR "${PROJECT_NAME}_SELF_UPDATE is enabled but ${PROJECT_NAME}_BRANCH_NAME is not set" )
endif()
add_compile_definitions(GAM_BRANCH_NAME="${${PROJECT_NAME}_BRANCH_NAME}")
add_compile_definitions(GAM_BUILD_NAME="${${PROJECT_NAME}_BUILD_NAME}")
add_compile_definitions(GAM_SELF_UPDATE)
endif()
target_link_libraries(GitAddonsManager PUBLIC Qt6::Core)
target_link_libraries(GitAddonsManager PUBLIC Qt6::Quick)
target_link_libraries(GitAddonsManager PUBLIC Qt6::QuickControls2)
target_link_libraries(GitAddonsManager PUBLIC Qt6::Concurrent)
target_link_libraries(GitAddonsManager PUBLIC Qt6::Network)
target_link_libraries(GitAddonsManager PUBLIC Qt6::Widgets)
target_link_libraries(GitAddonsManager PUBLIC QuaZip::QuaZip)
if (NOT WIN32)
target_link_libraries(GitAddonsManager PUBLIC PkgConfig::LIBGIT2)
else()
target_link_libraries(GitAddonsManager PUBLIC ${LIBGIT2_LIBRARY})
endif()
target_link_libraries(GitAddonsManager PRIVATE Qt6::QmlPrivate Qt6::QuickPrivate)
set(APPNAME GitAddonsManager)
install(TARGETS GitAddonsManager
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
qt_finalize_executable(GitAddonsManager)