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 src/utils.cpp src/person.cpp src/distribution.cpp src/authentication.cpp src/source_package_publishing_history.cpp 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 ) 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" ) 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} )