From 4795e0251e231859d937d753cc6bc3d7cbd5c561 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20R=C3=B6ger?= Date: Fri, 27 Mar 2026 02:24:37 +0100 Subject: [PATCH] feat: dev install --- CMakeLists.txt | 35 +++++++++++++++++++++++++++++++---- c-libConfig.cmake.in | 3 +++ nix/c-libs.nix | 1 + test/{main.c => darr.c} | 0 4 files changed, 35 insertions(+), 4 deletions(-) create mode 100644 c-libConfig.cmake.in rename test/{main.c => darr.c} (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0d1c996..6d186be 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,18 +5,45 @@ project( DESCRIPTION "C Libraries for recreational Programming." LANGUAGES C) -add_library(c-libs ${PROJECT_SOURCE_DIR}/src/dyn-arr.c) -target_include_directories(c-libs PUBLIC "${PROJECT_SOURCE_DIR}/include") +add_library(c-libs ${CMAKE_CURRENT_SOURCE_DIR}/src/dyn-arr.c) +target_include_directories( + c-libs PUBLIC $ + $) include(CTest) if(BUILD_TESTING) find_package(PkgConfig REQUIRED) pkg_check_modules(CRITERION REQUIRED IMPORTED_TARGET GLOBAL criterion) - add_executable(tests test/main.c) + add_executable(tests ${CMAKE_CURRENT_SOURCE_DIR}/test/darr.c) target_link_libraries(tests c-libs PkgConfig::CRITERION) add_test(NAME all_tests COMMAND tests) endif() -install(TARGETS c-libs) +# 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) diff --git a/c-libConfig.cmake.in b/c-libConfig.cmake.in new file mode 100644 index 0000000..044d165 --- /dev/null +++ b/c-libConfig.cmake.in @@ -0,0 +1,3 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/c-libTargets.cmake") diff --git a/nix/c-libs.nix b/nix/c-libs.nix index 1e4582a..d36065b 100644 --- a/nix/c-libs.nix +++ b/nix/c-libs.nix @@ -10,6 +10,7 @@ stdenv.mkDerivation (finalAttrs: { pname = "c-libs"; version = "0.1.0"; src = ../.; + outputs = ["out" "dev"]; nativeBuildInputs = [cmake] ++ lib.optional finalAttrs.doCheck pkg-config; buildInputs = [] ++ lib.optional finalAttrs.doCheck criterion; diff --git a/test/main.c b/test/darr.c similarity index 100% rename from test/main.c rename to test/darr.c