Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ned14/ntkernel-error-category.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt99
1 files changed, 68 insertions, 31 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bf4ab41..fbfb983 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,10 +2,13 @@ cmake_minimum_required(VERSION 3.1 FATAL_ERROR)
project(ntkernel-error-category VERSION 1.0 LANGUAGES CXX)
enable_testing()
-if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
- set(PROJECT_IS_DEPENDENCY OFF)
-else()
- set(PROJECT_IS_DEPENDENCY ON)
+include(GNUInstallDirs)
+if(NOT DEFINED PROJECT_IS_DEPENDENCY)
+ if(CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR)
+ set(PROJECT_IS_DEPENDENCY OFF)
+ else()
+ set(PROJECT_IS_DEPENDENCY ON)
+ endif()
endif()
if(WIN32)
@@ -18,65 +21,99 @@ if(WIN32)
)
endif()
-add_library(ntkernel-error-category_dl SHARED "src/ntkernel_category.cpp")
-target_compile_features(ntkernel-error-category_dl PUBLIC cxx_std_11)
-target_include_directories(ntkernel-error-category_dl INTERFACE "include")
-set_target_properties(ntkernel-error-category_dl PROPERTIES
+install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/ntkernel-error-category"
+ DESTINATION "include"
+)
+
+add_library(${PROJECT_NAME}_dl SHARED "src/ntkernel_category.cpp")
+target_compile_features(${PROJECT_NAME}_dl PUBLIC cxx_std_11)
+target_include_directories(${PROJECT_NAME}_dl PUBLIC
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
+ "$<INSTALL_INTERFACE:include>"
+)
+set_target_properties(${PROJECT_NAME}_dl PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
-add_library(ntkernel-error-category::dl ALIAS ntkernel-error-category_dl)
-install(FILES ntkernel-error-category_dl}
- DESTINATION "lib"
+add_library(${PROJECT_NAME}::dl ALIAS ${PROJECT_NAME}_dl)
+install(TARGETS ${PROJECT_NAME}_dl
+ EXPORT ${PROJECT_NAME}Exports
+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
-add_library(ntkernel-error-category_sl STATIC "src/ntkernel_category.cpp")
-target_compile_features(ntkernel-error-category_sl PUBLIC cxx_std_11)
-target_include_directories(ntkernel-error-category_sl INTERFACE "include")
-target_compile_definitions(ntkernel-error-category_sl PRIVATE NTKERNEL_ERROR_CATEGORY_STATIC)
-set_target_properties(ntkernel-error-category_sl PROPERTIES
+add_library(${PROJECT_NAME}_sl STATIC "src/ntkernel_category.cpp")
+target_compile_features(${PROJECT_NAME}_sl PUBLIC cxx_std_11)
+target_include_directories(${PROJECT_NAME}_sl PUBLIC
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
+ "$<INSTALL_INTERFACE:include>"
+)
+target_compile_definitions(${PROJECT_NAME}_sl PRIVATE NTKERNEL_ERROR_CATEGORY_STATIC)
+set_target_properties(${PROJECT_NAME}_sl PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
-add_library(ntkernel-error-category::sl ALIAS ntkernel-error-category_sl)
-install(FILES ntkernel-error-category_sl}
- DESTINATION "lib"
+add_library(${PROJECT_NAME}::sl ALIAS ${PROJECT_NAME}_sl)
+install(TARGETS ${PROJECT_NAME}_sl
+ EXPORT ${PROJECT_NAME}Exports
+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
)
-add_library(ntkernel-error-category_hl INTERFACE)
-target_compile_features(ntkernel-error-category_hl INTERFACE cxx_std_11)
-target_include_directories(ntkernel-error-category_hl INTERFACE "include")
-target_compile_definitions(ntkernel-error-category_hl INTERFACE
+add_library(${PROJECT_NAME}_hl INTERFACE)
+target_compile_features(${PROJECT_NAME}_hl INTERFACE cxx_std_11)
+target_include_directories(${PROJECT_NAME}_hl INTERFACE
+ "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
+ "$<INSTALL_INTERFACE:include>"
+)
+target_compile_definitions(${PROJECT_NAME}_hl INTERFACE
NTKERNEL_ERROR_CATEGORY_INLINE
NTKERNEL_ERROR_CATEGORY_STATIC
)
-add_library(ntkernel-error-category::hl ALIAS ntkernel-error-category_hl)
+add_library(${PROJECT_NAME}::hl ALIAS ${PROJECT_NAME}_hl)
+install(TARGETS ${PROJECT_NAME}_hl
+ EXPORT ${PROJECT_NAME}Exports
+ INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}"
+)
-export(
- TARGETS ntkernel-error-category_dl ntkernel-error-category_sl ntkernel-error-category_hl
- FILE "NtKernelErrorCategoryTargets.cmake"
- EXPORT_LINK_INTERFACE_LIBRARIES
+configure_file(
+ "${CMAKE_CURRENT_LIST_DIR}/ProjectConfig.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+ @ONLY
+)
+install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
+)
+install(EXPORT ${PROJECT_NAME}Exports
+ NAMESPACE ${PROJECT_NAME}::
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
)
+configure_file(
+ "${CMAKE_CURRENT_LIST_DIR}/FixupInstall.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}FixupInstall.cmake"
+ @ONLY
+)
+install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}FixupInstall.cmake")
+
if(NOT PROJECT_IS_DEPENDENCY)
add_executable(test-dl "test/main.cpp")
- target_link_libraries(test-dl PRIVATE ntkernel-error-category::dl)
+ target_link_libraries(test-dl PRIVATE ${PROJECT_NAME}::dl)
set_target_properties(test-dl PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
add_test(NAME test-dl COMMAND $<TARGET_FILE:test-dl>)
add_executable(test-sl "test/main.cpp")
- target_link_libraries(test-sl PRIVATE ntkernel-error-category::sl)
+ target_link_libraries(test-sl PRIVATE ${PROJECT_NAME}::sl)
set_target_properties(test-sl PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)
add_test(NAME test-sl COMMAND $<TARGET_FILE:test-sl>)
add_executable(test-hl "test/main.cpp")
- target_link_libraries(test-hl PRIVATE ntkernel-error-category::hl)
+ target_link_libraries(test-hl PRIVATE ${PROJECT_NAME}::hl)
set_target_properties(test-hl PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)