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) 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(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install( TARGETS c-libs EXPORT c-libs ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin) install( EXPORT c-libs FILE c-libsTargets.cmake NAMESPACE c-libs:: DESTINATION lib/cmake/c-libs) configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/c-libsConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/c-libsConfig.cmake INSTALL_DESTINATION lib/cmake/c-libs) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/c-libsConfig.cmake DESTINATION lib/cmake/c-libs)