File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree 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