@@ -20,26 +20,41 @@ else()
2020endif ()
2121
2222if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" )
23- target_compile_options (${PROJECT_NAME } PRIVATE
24- /W4
23+ target_compile_options (${PROJECT_NAME }
24+ PRIVATE
25+ /W4
2526 )
2627else ()
27- target_compile_options (${PROJECT_NAME } PRIVATE
28- -Wall
29- -Wextra
30- -Wuninitialized
31- -Wno-unused-function
32- -Wunused-variable
28+ target_compile_options (${PROJECT_NAME }
29+ PRIVATE
30+ -Wall
31+ -Wextra
32+ -Werror
33+ -Wuninitialized
34+ -Wno-unused-function
35+ -Wunused-variable
3336 )
3437endif ()
3538
36- target_include_directories (${PROJECT_NAME } PUBLIC
37- $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } /include >
38- $<INSTALL_INTERFACE :include >
39+ target_include_directories (${PROJECT_NAME }
40+ PUBLIC
41+ $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } /include >
42+ $<INSTALL_INTERFACE :include >
3943)
4044
41- target_sources (${PROJECT_NAME } PRIVATE
42- src/frame_rate_controller.cpp
45+ file (GLOB_RECURSE ORYX_CRT_HEADERS
46+ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR }
47+ "${CMAKE_CURRENT_SOURCE_DIR } /include/*"
48+ )
49+
50+ target_sources (${PROJECT_NAME }
51+ PRIVATE
52+ src/frame_rate_controller.cpp
53+ src/uuid.cpp
54+ PUBLIC
55+ FILE_SET HEADERS
56+ BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR } /include"
57+ FILES ${ORYX_CRT_HEADERS}
4358)
4459
4560
@@ -53,8 +68,14 @@ if(ORYX_CRT_BUILD_TESTS)
5368 tests/string_split_test.cpp
5469 tests/callback_list_test.cpp
5570 tests/from_chars_test.cpp
71+ tests/is_one_off_test.cpp
72+ tests/unique_file_ptr_test.cpp
73+ tests/error_group_test.cpp
74+ tests/traits_test.cpp
5675 )
76+
5777 target_link_libraries (${test_exe} PRIVATE ${PROJECT_NAME } )
78+
5879 if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" )
5980 target_compile_definitions (${test_exe} PUBLIC DOCTEST_CONFIG_USE_STD_HEADERS )
6081 endif ()
@@ -64,35 +85,36 @@ if (ORYX_CRT_INSTALL)
6485 include (GNUInstallDirs )
6586 include (CMakePackageConfigHelpers )
6687
67- configure_package_config_file (cmake/${PROJECT_NAME}-config.cmake.in
68- ${CMAKE_CURRENT_BINARY_DIR } /${PROJECT_NAME}-config.cmake
69- INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME}
88+ configure_package_config_file (
89+ "${CMAKE_CURRENT_SOURCE_DIR } /cmake/${PROJECT_NAME } -config.cmake.in"
90+ "${CMAKE_CURRENT_BINARY_DIR } /${PROJECT_NAME } -config.cmake"
91+ INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME } "
7092 )
7193
72- install (
73- FILES "${CMAKE_CURRENT_BINARY_DIR } /${PROJECT_NAME } -config .cmake"
74- DESTINATION " ${CMAKE_INSTALL_LIBDIR} /cmake/ ${ PROJECT_NAME } "
94+ write_basic_package_version_file (
95+ "${CMAKE_CURRENT_BINARY_DIR } /${PROJECT_NAME } -version .cmake"
96+ COMPATIBILITY ExactVersion
7597 )
7698
77- file (GLOB_RECURSE ORYX_CRT_HEADERS RELATIVE ${CMAKE_CURRENT_LIST_DIR } "${CMAKE_CURRENT_LIST_DIR } /include/*" )
78-
79- target_sources (${PROJECT_NAME }
80- PUBLIC
81- FILE_SET oryx_headers
82- TYPE HEADERS
83- BASE_DIRS $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR } /include > $<BUILD_INTERFACE :${CMAKE_CURRENT_BINARY_DIR } /include >
84- FILES ${ORYX_CRT_HEADERS}
99+ install (
100+ TARGETS ${PROJECT_NAME }
101+ EXPORT ${PROJECT_NAME } -targets
102+ FILE_SET HEADERS
85103 )
86104
87105 install (
88- TARGETS ${PROJECT_NAME }
89- EXPORT ${PROJECT_NAME } -exports
90- FILE_SET oryx_headers DESTINATION ${INCLUDE_INSTALL_DIR}
106+ FILES
107+ "${CMAKE_CURRENT_BINARY_DIR } /${PROJECT_NAME } -config.cmake"
108+ "${CMAKE_CURRENT_BINARY_DIR } /${PROJECT_NAME } -version.cmake"
109+ DESTINATION "${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME } "
110+ COMPONENT ${PROJECT_NAME }
91111 )
92112
93113 install (
94- EXPORT ${PROJECT_NAME } -exports
95- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME }
114+ EXPORT ${PROJECT_NAME } -targets
115+ DESTINATION " ${CMAKE_INSTALL_LIBDIR} /cmake/${PROJECT_NAME } "
96116 NAMESPACE oryx::
117+ FILE ${PROJECT_NAME } -targets .cmake
118+ COMPONENT ${PROJECT_NAME }
97119 )
98120endif ()
0 commit comments