cmake_minimum_required (VERSION 3.15) project (simplesync) set(CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic") set(CMAKE_CXX_STANDARD 20) option(BUILD_TESTS "Build all tests." OFF) option(BUILD_PYLIB "Build python lib." OFF) add_definitions(-D__LINUX_BUILD) include_directories(include) set(SRCS )#src/simplesync.hpp) # Build the static library add_library(simplesync INTERFACE ${SRCS}) set_target_properties(simplesync PROPERTIES OUTPUT_NAME "simplesync") target_include_directories(simplesync INTERFACE "$" "$") install(TARGETS simplesync EXPORT simplesyncTargets LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) add_library(simplesync::simplesync ALIAS simplesync) include(GNUInstallDirs) set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}/simplesync CACHE PATH "Location of header files" ) set(SYSCONFIG_INSTALL_DIR ${CMAKE_INSTALL_SYSCONFDIR}/simplesync CACHE PATH "Location of configuration files" ) #... include(CMakePackageConfigHelpers) configure_package_config_file(cmake/simplesync-config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/simplesync-config.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/simplesync PATH_VARS INCLUDE_INSTALL_DIR SYSCONFIG_INSTALL_DIR) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/simplesync-config-version.cmake VERSION 1.0.1 COMPATIBILITY SameMajorVersion ) install(EXPORT simplesyncTargets FILE simplesync-targets.cmake NAMESPACE simplesync:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/simplesync ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/simplesync-config.cmake ${CMAKE_CURRENT_BINARY_DIR}/simplesync-config-version.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/simplesync ) install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/simplesync.hpp DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/simplesync) export( EXPORT simplesyncTargets FILE ${CMAKE_CURRENT_BINARY_DIR}/simplesync-targets.cmake) if (BUILD_PYLIB) include(FetchContent) FetchContent_Declare( pybind11 GIT_REPOSITORY https://github.com/pybind/pybind11 GIT_TAG v2.11.1 ) FetchContent_MakeAvailable(pybind11) find_package(pybind11 CONFIG) pybind11_add_module(pysimplesync src/python_module.cpp) endif() if (BUILD_TESTS) include(FetchContent) FetchContent_Declare( googletest GIT_REPOSITORY https://github.com/google/googletest.git GIT_TAG f8d7d77 ) FetchContent_MakeAvailable(googletest) enable_testing() include_directories(${gtest_SOURCE_DIR}/include ${gtest_SOURCE_DIR} .) add_executable(${PROJECT_NAME}_test test/simplesync_test.cpp) target_link_libraries(${PROJECT_NAME}_test gtest gtest_main simplesync) endif()