cmake_minimum_required(VERSION 3.15) project( c-libs DESCRIPTION "C Libraries for recreational Programming." LANGUAGES C) add_library(c-libs ${CMAKE_CURRENT_SOURCE_DIR}/src/dyn-arr.c ${CMAKE_CURRENT_SOURCE_DIR}/src/string-view.c) target_include_directories( c-libs PUBLIC $ $) add_executable(strings ${CMAKE_CURRENT_SOURCE_DIR}/app/strings.c) target_link_libraries(strings PRIVATE c-libs) add_executable(rc ${CMAKE_CURRENT_SOURCE_DIR}/app/rc.c) target_link_libraries(rc PRIVATE c-libs) include(CTest) if(BUILD_TESTING) find_package(PkgConfig REQUIRED) pkg_check_modules(CRITERION REQUIRED IMPORTED_TARGET GLOBAL criterion) add_executable(tests ${CMAKE_CURRENT_SOURCE_DIR}/test/darr.c ${CMAKE_CURRENT_SOURCE_DIR}/test/string-view.c) target_link_libraries(tests c-libs PkgConfig::CRITERION) add_test(NAME all_tests COMMAND tests) endif() # Install Part ################################################################# include(CMakePackageConfigHelpers) include(GNUInstallDirs) install( TARGETS c-libs EXPORT c-libs ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/c-libs DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install( EXPORT c-libs FILE c-libsTargets.cmake NAMESPACE c-libs:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/c-libs) configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/c-libsConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/c-libsConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/c-libs) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/c-libsConfig.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/c-libs)