Loading pkgs/by-name/gr/graaf/0001-install.patch 0 → 100644 +60 −0 Original line number Diff line number Diff line diff --git a/CMakeLists.txt b/CMakeLists.txt index 03c5f1b..45eda87 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,3 +29,41 @@ if(NOT SKIP_BENCHMARKS) add_subdirectory(perf) endif() +# Install w/ find_package() +add_library(${PROJECT_NAME} INTERFACE) +target_include_directories( + ${PROJECT_NAME} INTERFACE + $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> + $<INSTALL_INTERFACE:include> +) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +install( + TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}Targets +) + +configure_package_config_file( + "${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in" + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + INSTALL_DESTINATION lib/cmake/${PROJECT_NAME} +) + +install( + EXPORT ${PROJECT_NAME}Targets + DESTINATION lib/cmake/${PROJECT_NAME} +) +install( + FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + DESTINATION lib/cmake/${PROJECT_NAME} +) +install( + DIRECTORY "${PROJECT_SOURCE_DIR}/include/" + DESTINATION include +) diff --git a/cmake/GraafConfig.cmake.in b/cmake/GraafConfig.cmake.in new file mode 100644 index 0000000..9c15f36 --- /dev/null +++ b/cmake/GraafConfig.cmake.in @@ -0,0 +1,4 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +check_required_components("@PROJECT_NAME@") diff --git a/include/README.md b/include_README.md similarity index 100% rename from include/README.md rename to include_README.md pkgs/by-name/gr/graaf/package.nix 0 → 100644 +49 −0 Original line number Diff line number Diff line { lib, stdenv, fetchFromGitHub, cmake }: stdenv.mkDerivation rec { pname = "graaf"; version = "1.1.1"; src = fetchFromGitHub { owner = "bobluppes"; repo = "${pname}"; rev = "v${version}"; sha256 = "sha256-bEojDcDLznEJQFCs0TgDL+s0f7CwsfzOofWOBdj56NQ="; }; patches = [ ./0001-install.patch ]; buildInputs = [ # NOP ]; nativeBuildInputs = [ cmake ]; cmakeFlags = [ "-DSKIP_EXAMPLES=ON" "-DSKIP_TESTS=ON" "-DSKIP_BENCHMARKS=ON" ]; meta = { description = "A general-purpose lightweight C++ graph library"; longDescription = '' Graaf is designed with the goal of simplifying graph-related tasks. It offers a lightweight alternative to the Boost Graph Library (BGL) and is built for simplicity and extensibility. With Graaf, you can easily create, manipulate, and analyze graphs, making it suitable for a wide range of applications. ''; homepage = "https://github.com/bobluppes/graaf"; license = lib.licenses.mit; maintainers = [ lib.maintainers.cadkin ]; platforms = lib.platforms.all; }; } Loading
pkgs/by-name/gr/graaf/0001-install.patch 0 → 100644 +60 −0 Original line number Diff line number Diff line diff --git a/CMakeLists.txt b/CMakeLists.txt index 03c5f1b..45eda87 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,3 +29,41 @@ if(NOT SKIP_BENCHMARKS) add_subdirectory(perf) endif() +# Install w/ find_package() +add_library(${PROJECT_NAME} INTERFACE) +target_include_directories( + ${PROJECT_NAME} INTERFACE + $<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/include> + $<INSTALL_INTERFACE:include> +) + +include(CMakePackageConfigHelpers) +write_basic_package_version_file( + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +install( + TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}Targets +) + +configure_package_config_file( + "${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in" + "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + INSTALL_DESTINATION lib/cmake/${PROJECT_NAME} +) + +install( + EXPORT ${PROJECT_NAME}Targets + DESTINATION lib/cmake/${PROJECT_NAME} +) +install( + FILES "${PROJECT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake" + DESTINATION lib/cmake/${PROJECT_NAME} +) +install( + DIRECTORY "${PROJECT_SOURCE_DIR}/include/" + DESTINATION include +) diff --git a/cmake/GraafConfig.cmake.in b/cmake/GraafConfig.cmake.in new file mode 100644 index 0000000..9c15f36 --- /dev/null +++ b/cmake/GraafConfig.cmake.in @@ -0,0 +1,4 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") +check_required_components("@PROJECT_NAME@") diff --git a/include/README.md b/include_README.md similarity index 100% rename from include/README.md rename to include_README.md
pkgs/by-name/gr/graaf/package.nix 0 → 100644 +49 −0 Original line number Diff line number Diff line { lib, stdenv, fetchFromGitHub, cmake }: stdenv.mkDerivation rec { pname = "graaf"; version = "1.1.1"; src = fetchFromGitHub { owner = "bobluppes"; repo = "${pname}"; rev = "v${version}"; sha256 = "sha256-bEojDcDLznEJQFCs0TgDL+s0f7CwsfzOofWOBdj56NQ="; }; patches = [ ./0001-install.patch ]; buildInputs = [ # NOP ]; nativeBuildInputs = [ cmake ]; cmakeFlags = [ "-DSKIP_EXAMPLES=ON" "-DSKIP_TESTS=ON" "-DSKIP_BENCHMARKS=ON" ]; meta = { description = "A general-purpose lightweight C++ graph library"; longDescription = '' Graaf is designed with the goal of simplifying graph-related tasks. It offers a lightweight alternative to the Boost Graph Library (BGL) and is built for simplicity and extensibility. With Graaf, you can easily create, manipulate, and analyze graphs, making it suitable for a wide range of applications. ''; homepage = "https://github.com/bobluppes/graaf"; license = lib.licenses.mit; maintainers = [ lib.maintainers.cadkin ]; platforms = lib.platforms.all; }; }