cmake_minimum_required(VERSION 3.15) project( c-lib 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-lib:: DESTINATION lib/cmake/c-lib) configure_package_config_file( ${CMAKE_CURRENT_SOURCE_DIR}/c-libConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/c-libConfig.cmake INSTALL_DESTINATION lib/cmake/c-lib) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/c-libConfig.cmake DESTINATION lib/cmake/c-lib)