From 215182d9a76f0a2404c693284f65d5a583b8b735 Mon Sep 17 00:00:00 2001 From: Merry Date: Tue, 19 Apr 2022 12:03:03 +0100 Subject: [PATCH] mcl: Add install instructions behave well with this --- CMakeLists.txt | 30 ++++++++++++++++++++- CMakeModules/mclConfig.cmake.in | 5 ++++ include/mcl/type_traits/integer_of_size.hpp | 2 +- src/CMakeLists.txt | 9 +++++-- 4 files changed, 42 insertions(+), 4 deletions(-) create mode 100644 CMakeModules/mclConfig.cmake.in diff --git a/CMakeLists.txt b/CMakeLists.txt index d3cbc38..392fd50 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,7 @@ cmake_minimum_required(VERSION 3.12 FATAL_ERROR) -project(mcl CXX) +include(GNUInstallDirs) + +project(mcl LANGUAGES CXX VERSION 0.1.2) # Project options option(MCL_WARNINGS_AS_ERRORS "Warnings as errors" ON) @@ -96,3 +98,29 @@ add_subdirectory(src) if (TARGET Catch2::Catch2) add_subdirectory(tests) endif() + +# Install instructions + +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + +install(TARGETS mcl EXPORT mclTargets) +install(EXPORT mclTargets + NAMESPACE merry:: + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/mcl" +) + +configure_package_config_file(CMakeModules/mclConfig.cmake.in + mclConfig.cmake + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/mcl" +) +write_basic_package_version_file(mclConfigVersion.cmake + COMPATIBILITY SameMajorVersion +) +install(FILES + "${CMAKE_CURRENT_BINARY_DIR}/mclConfig.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/mclConfigVersion.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/mcl" +) + +install(DIRECTORY include/ TYPE INCLUDE FILES_MATCHING PATTERN "*.hpp") diff --git a/CMakeModules/mclConfig.cmake.in b/CMakeModules/mclConfig.cmake.in new file mode 100644 index 0000000..8c9ad12 --- /dev/null +++ b/CMakeModules/mclConfig.cmake.in @@ -0,0 +1,5 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") + +check_required_components(@PROJECT_NAME@) diff --git a/include/mcl/type_traits/integer_of_size.hpp b/include/mcl/type_traits/integer_of_size.hpp index dad2820..e37995e 100644 --- a/include/mcl/type_traits/integer_of_size.hpp +++ b/include/mcl/type_traits/integer_of_size.hpp @@ -4,7 +4,7 @@ #pragma once -#include "mp/stdint.hpp" +#include "mcl/stdint.hpp" namespace mcl { diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ed688a6..a25392b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -56,9 +56,14 @@ add_library(mcl ../include/mcl/type_traits/is_instance_of_template.hpp assert.cpp ) -target_include_directories(mcl PUBLIC ../include/) +target_include_directories(mcl + PUBLIC + $ + $ +) target_compile_options(mcl PRIVATE ${MCL_CXX_FLAGS}) -target_link_libraries(mcl PUBLIC fmt::fmt) +target_link_libraries(mcl PUBLIC $) +add_library(merry::mcl ALIAS mcl) include(CreateTargetDirectoryGroups) create_target_directory_groups(mcl)