11cmake_minimum_required (VERSION 3.5 )
2- project (hmac_cpp LANGUAGES CXX )
2+ project (hmac_cpp VERSION 0.1.0 LANGUAGES CXX )
33
44if (NOT DEFINED CMAKE_CXX_STANDARD )
55 set (CMAKE_CXX_STANDARD 11)
@@ -25,17 +25,38 @@ set(HMAC_HEADERS
2525 include/hmac_cpp/sha512.hpp
2626)
2727
28- add_library (hmac STATIC ${HMAC_SOURCES} )
29- target_include_directories (hmac PUBLIC ${CMAKE_CURRENT_SOURCE_DIR } /include )
28+ add_library (hmac_cpp STATIC ${HMAC_SOURCES} )
29+ target_include_directories (hmac_cpp PUBLIC
30+ $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } /include >
31+ $<INSTALL_INTERFACE :include >
32+ )
3033
3134if (BUILD_EXAMPLE)
3235 add_executable (example example.cpp )
33- target_link_libraries (example PRIVATE hmac )
36+ target_link_libraries (example PRIVATE hmac_cpp )
3437 target_include_directories (example PRIVATE ${CMAKE_CURRENT_SOURCE_DIR } /include )
3538endif ()
3639
37- install (TARGETS hmac DESTINATION lib)
40+ include (CMakePackageConfigHelpers )
41+ install (TARGETS hmac_cpp EXPORT hmac_cppTargets DESTINATION lib)
3842install (FILES ${HMAC_HEADERS} DESTINATION include/hmac_cpp)
43+ install (EXPORT hmac_cppTargets NAMESPACE hmac_cpp:: DESTINATION lib/cmake/hmac_cpp)
44+
45+ configure_package_config_file (
46+ cmake/hmac_cppConfig.cmake.in
47+ "${CMAKE_CURRENT_BINARY_DIR } /hmac_cppConfig.cmake"
48+ INSTALL_DESTINATION lib/cmake/hmac_cpp
49+ )
50+ write_basic_package_version_file (
51+ "${CMAKE_CURRENT_BINARY_DIR } /hmac_cppConfigVersion.cmake"
52+ VERSION ${PROJECT_VERSION }
53+ COMPATIBILITY SameMajorVersion
54+ )
55+ install (FILES
56+ "${CMAKE_CURRENT_BINARY_DIR } /hmac_cppConfig.cmake"
57+ "${CMAKE_CURRENT_BINARY_DIR } /hmac_cppConfigVersion.cmake"
58+ DESTINATION lib/cmake/hmac_cpp
59+ )
3960
4061if (BUILD_TESTS)
4162 enable_testing ()
@@ -46,7 +67,7 @@ if(BUILD_TESTS)
4667 )
4768 FetchContent_MakeAvailable (googletest)
4869 add_executable (test_all test_all.cpp )
49- target_link_libraries (test_all PRIVATE hmac gtest_main )
70+ target_link_libraries (test_all PRIVATE hmac_cpp gtest_main )
5071 target_include_directories (test_all PRIVATE ${CMAKE_CURRENT_SOURCE_DIR } /include )
5172 add_test (NAME test_all COMMAND test_all )
5273endif ()
0 commit comments