File tree Expand file tree Collapse file tree 5 files changed +82
-27
lines changed
Expand file tree Collapse file tree 5 files changed +82
-27
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,27 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
1818add_subdirectory (ulog_cpp)
1919
2020if (MAIN_PROJECT)
21+ include (CMakePackageConfigHelpers)
22+
23+ write_basic_package_version_file(
24+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
25+ VERSION 1.0.0
26+ COMPATIBILITY AnyNewerVersion
27+ )
28+
29+ configure_package_config_file(
30+ "${CMAKE_CURRENT_SOURCE_DIR} /cmake/${PROJECT_NAME} Config.cmake.in"
31+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
32+ INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}
33+ )
34+
35+ install (FILES
36+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
37+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
38+ DESTINATION lib/cmake/${PROJECT_NAME}
39+ )
40+
41+
2142 add_compile_options (
2243 # Warnings
2344 -Wall
Original file line number Diff line number Diff line change 1+ @PACKAGE_INIT@
2+
3+ include ("${CMAKE_CURRENT_LIST_DIR} /ulog_cppTargets.cmake" )
Original file line number Diff line number Diff line change 1- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} )
1+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /bin/examples )
22
33add_executable (ulog_info ulog_info.cpp)
44target_link_libraries (ulog_info PUBLIC
5- ulog_cpp::ulog_cpp
6- )
5+ ulog_cpp::ulog_cpp
6+ )
77
88add_executable (ulog_data ulog_data.cpp)
99target_link_libraries (ulog_data PUBLIC
10- ulog_cpp::ulog_cpp
11- )
10+ ulog_cpp::ulog_cpp
11+ )
1212
1313add_executable (ulog_writer ulog_writer.cpp)
1414target_link_libraries (ulog_writer PUBLIC
15- ulog_cpp::ulog_cpp
16- )
15+ ulog_cpp::ulog_cpp
16+ )
Original file line number Diff line number Diff line change 1-
2-
31include (FetchContent)
42
53set (SYSTEM_ARG SYSTEM )
64# cmake < 3.25 fails with system attribute
75if (CMAKE_VERSION VERSION_LESS "3.25" )
86 set (SYSTEM_ARG "" )
97endif ()
10- FetchContent_Declare(
11- DocTest
8+
9+ find_package (doctest CONFIG)
10+
11+ if (NOT doctest_FOUND)
12+ include (FetchContent)
13+ FetchContent_Declare(
14+ doctest
1215 GIT_REPOSITORY "https://github.com/doctest/doctest.git"
1316 GIT_TAG "v2.4.11"
1417 ${SYSTEM_ARG}
15- )
16-
17-
18- FetchContent_MakeAvailable(DocTest)
19-
18+ )
19+ FetchContent_MakeAvailable(doctest)
20+ endif ()
2021
2122add_executable (tests
22- main.cpp
23- ulog_parsing_test.cpp
24- read_api_test.cpp
23+ main.cpp
24+ ulog_parsing_test.cpp
25+ read_api_test.cpp
2526)
2627
2728target_link_libraries (tests PUBLIC
28- doctest::doctest
29- ulog_cpp::ulog_cpp
29+ doctest::doctest
30+ ulog_cpp::ulog_cpp
3031)
3132
33+ add_dependencies (tests ulog_cpp)
34+
3235add_custom_target (
3336 run-unit-tests
3437 COMMAND $<TARGET_FILE:tests>
3538 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
3639 USES_TERMINAL
3740)
41+
42+ add_dependencies (run-unit-tests tests)
43+
44+ enable_testing ()
45+ add_test (NAME unit-tests COMMAND tests)
Original file line number Diff line number Diff line change 1-
21add_library (${PROJECT_NAME}
3- data_container.cpp
4- messages.cpp
5- reader.cpp
6- writer.cpp
7- simple_writer.cpp
2+ data_container.cpp
3+ messages.cpp
4+ reader.cpp
5+ writer.cpp
6+ simple_writer.cpp
87)
8+
99add_library (${PROJECT_NAME} ::${PROJECT_NAME} ALIAS ${PROJECT_NAME} )
1010
11+ target_include_directories (${PROJECT_NAME}
12+ PUBLIC
13+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} >
14+ $<INSTALL_INTERFACE:include /ulog_cpp>
15+ )
16+
17+ install (TARGETS ${PROJECT_NAME}
18+ EXPORT ${PROJECT_NAME} Targets
19+ ARCHIVE DESTINATION lib
20+ LIBRARY DESTINATION lib
21+ RUNTIME DESTINATION bin
22+ )
23+
24+ install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /
25+ DESTINATION include /ulog_cpp
26+ FILES_MATCHING PATTERN "*.hpp"
27+ )
28+
29+ install (EXPORT ${PROJECT_NAME} Targets
30+ FILE ${PROJECT_NAME} Targets.cmake
31+ NAMESPACE ${PROJECT_NAME} ::
32+ DESTINATION lib/cmake/${PROJECT_NAME}
33+ )
You can’t perform that action at this time.
0 commit comments