From 4f653fc35421129eae8a2c424901ca7170059370 Mon Sep 17 00:00:00 2001 From: Harry Mallon Date: Thu, 15 Apr 2021 15:50:22 +0100 Subject: [PATCH] Add a CMake configuration --- CMakeLists.txt | 56 +++++++++++++++++++++++++++++++++++ cmake/pystringConfig.cmake.in | 4 +++ 2 files changed, 60 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 cmake/pystringConfig.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..0081a83 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,56 @@ +cmake_minimum_required(VERSION 3.2) + +option(BUILD_SHARED_LIBS "Create shared libraries if ON" OFF) + +project(pystring LANGUAGES CXX) + +# pystring library ====== + +add_library(pystring + pystring.cpp + pystring.h +) +set_target_properties(pystring + PROPERTIES + PUBLIC_HEADER pystring.h + SOVERSION 0.0) + +set(EXPORT_NAME "${PROJECT_NAME}Targets") +set(NAMESPACE "${PROJECT_NAME}::") + +# test ====== + +include(CTest) + +if(BUILD_TESTING) + add_executable(pystring_test + test.cpp + unittest.h + ) + + target_link_libraries(pystring_test pystring) + + add_test(NAME pystring_test COMMAND pystring_test) +endif() + +# install and cmake configs ====== + +include(GNUInstallDirs) +install(TARGETS pystring + EXPORT "${EXPORT_NAME}" + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/pystring) + +include(CMakePackageConfigHelpers) +configure_package_config_file(cmake/pystringConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/pystringConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pystring) + +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pystringConfig.cmake + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pystring) + +install(EXPORT "${EXPORT_NAME}" + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/pystring + NAMESPACE "${NAMESPACE}") diff --git a/cmake/pystringConfig.cmake.in b/cmake/pystringConfig.cmake.in new file mode 100644 index 0000000..82e3995 --- /dev/null +++ b/cmake/pystringConfig.cmake.in @@ -0,0 +1,4 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/@EXPORT_NAME@.cmake") +check_required_components("@PROJECT_NAME@")