38 lines
2.0 KiB
CMake
38 lines
2.0 KiB
CMake
cmake_minimum_required(VERSION 3.30)
|
|
project(AppStreamQt VERSION 1.0.5 LANGUAGES CXX)
|
|
include(GNUInstallDirs)
|
|
if(NOT APPSTREAM_SOURCE_DIR)
|
|
message(FATAL_ERROR "Provide the authenticated AppStream source directory")
|
|
endif()
|
|
find_package(Qt6 6.11.2 EXACT REQUIRED COMPONENTS Core)
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(NATIVE_APPSTREAM REQUIRED IMPORTED_TARGET appstream=1.0.5)
|
|
pkg_check_modules(GIO REQUIRED IMPORTED_TARGET gio-2.0)
|
|
include(${CMAKE_CURRENT_LIST_DIR}/source-files.cmake)
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(AS_MAJOR_VERSION_CONF 1)
|
|
set(AS_MINOR_VERSION_CONF 0)
|
|
set(AS_MICRO_VERSION_CONF 5)
|
|
configure_file(${APPSTREAM_SOURCE_DIR}/qt/version.h.in version.h @ONLY)
|
|
add_library(AppStreamQt SHARED ${asqt_src} ${asqt_pub_headers} ${asqt_priv_headers})
|
|
target_compile_definitions(AppStreamQt PRIVATE QT_NO_KEYWORDS)
|
|
target_include_directories(AppStreamQt PRIVATE
|
|
${APPSTREAM_SOURCE_DIR}/qt
|
|
# Upstream pool.cpp uses as-pool-private.h for the exported
|
|
# as_pool_override_cache_locations API in the matching native 1.0.5 core.
|
|
${APPSTREAM_SOURCE_DIR}/src
|
|
${CMAKE_CURRENT_BINARY_DIR})
|
|
target_link_libraries(AppStreamQt PUBLIC Qt6::Core PRIVATE PkgConfig::NATIVE_APPSTREAM PkgConfig::GIO)
|
|
set_target_properties(AppStreamQt PROPERTIES VERSION 1.0.5 SOVERSION 3 CXX_VISIBILITY_PRESET hidden VISIBILITY_INLINES_HIDDEN ON)
|
|
install(TARGETS AppStreamQt LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
|
install(FILES ${asqt_pub_headers} ${CMAKE_CURRENT_BINARY_DIR}/version.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/AppStreamQt)
|
|
set(PREFIX ${CMAKE_INSTALL_PREFIX})
|
|
set(LIBDIR ${CMAKE_INSTALL_LIBDIR})
|
|
set(LIBDIR_FULL ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
|
|
set(VERSION ${PROJECT_VERSION})
|
|
foreach(name AppStreamQtConfig AppStreamQtConfigVersion)
|
|
configure_file(${APPSTREAM_SOURCE_DIR}/qt/cmake/${name}.cmake.in ${name}.cmake @ONLY)
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${name}.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/AppStreamQt)
|
|
endforeach()
|