You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

85 lines
2.5 KiB

1 week ago
cmake_minimum_required(VERSION 3.10)
project(launchpadlib-cpp VERSION 0.0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(nlohmann_json REQUIRED)
find_package(OpenSSL REQUIRED)
find_package(CURL REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(LIBSECRET REQUIRED libsecret-1)
add_library(launchpad SHARED
src/launchpad.cpp
src/archive.cpp
src/archive_permission.cpp
1 week ago
src/utils.cpp
src/person.cpp
src/distribution.cpp
src/authentication.cpp
src/source_package_publishing_history.cpp
1 week ago
src/build.cpp
src/binary_package_publishing_history.cpp
src/archive_dependency.cpp
src/distro_series.cpp
src/distro_arch_series.cpp
src/distro_arch_series_filter.cpp
1 week ago
)
target_include_directories(launchpad PUBLIC
${LIBSECRET_INCLUDE_DIRS}
)
target_compile_definitions(launchpad PRIVATE BUILDING_LAUNCHPAD)
set_target_properties(launchpad PROPERTIES
VERSION ${PROJECT_VERSION}
SOVERSION 0
PUBLIC_HEADER "src/launchpad.h;src/callablewrapper.h;src/archive.h;src/archive_permission.h;src/utils.h;src/person.h;src/distribution.h;src/authentication.h;src/source_package_publishing_history.h;src/build.h;src/binary_package_publishing_history.h;src/archive_dependency.h;src/distro_series.h;src/distro_arch_series.h;src/distro_arch_series_filter.h"
1 week ago
CXX_VISIBILITY_PRESET hidden
VISIBILITY_INLINES_HIDDEN YES
)
install(TARGETS launchpad
EXPORT launchpadTargets
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
PUBLIC_HEADER DESTINATION include/launchpadlib-cpp
)
install(EXPORT launchpadTargets
FILE launchpadTargets.cmake
NAMESPACE launchpad::
DESTINATION lib/cmake/launchpadlib-cpp
)
include(CMakePackageConfigHelpers)
configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/launchpadConfig.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/launchpadConfig.cmake"
INSTALL_DESTINATION lib/cmake/launchpadlib-cpp
NO_SET_AND_CHECK_MACRO
NO_CHECK_REQUIRED_COMPONENTS_MACRO
)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/launchpadConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY AnyNewerVersion
)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/launchpadConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/launchpadConfigVersion.cmake"
DESTINATION lib/cmake/launchpadlib-cpp
)
target_link_libraries(launchpad PRIVATE
nlohmann_json::nlohmann_json
OpenSSL::Crypto
CURL::libcurl
${LIBSECRET_LIBRARIES}
)