File tree Expand file tree Collapse file tree 5 files changed +94
-29
lines changed
Expand file tree Collapse file tree 5 files changed +94
-29
lines changed Original file line number Diff line number Diff line change @@ -17,7 +17,30 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
1717
1818add_subdirectory (ulog_cpp )
1919
20+ option (BUILD_SHARED_LIBS "Build shared libraries" OFF )
21+
2022if (MAIN_PROJECT)
23+ include (CMakePackageConfigHelpers )
24+
25+ write_basic_package_version_file (
26+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
27+ VERSION 1.0.0
28+ COMPATIBILITY AnyNewerVersion
29+ )
30+
31+ configure_package_config_file (
32+ "${CMAKE_CURRENT_SOURCE_DIR} /cmake/${PROJECT_NAME} Config.cmake.in"
33+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
34+ INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}
35+ )
36+
37+ install (FILES
38+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
39+ "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
40+ DESTINATION lib/cmake/${PROJECT_NAME}
41+ )
42+
43+
2144 add_compile_options (
2245 # Warnings
2346 -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
12- GIT_REPOSITORY "https://github.com/doctest/doctest.git"
13- GIT_TAG "v2.4.11"
14- ${SYSTEM_ARG}
15- )
16-
178
18- FetchContent_MakeAvailable (DocTest )
9+ find_package ( doctest CONFIG )
1910
11+ if (NOT doctest_FOUND)
12+ include (FetchContent )
13+ FetchContent_Declare (
14+ doctest
15+ GIT_REPOSITORY "https://github.com/doctest/doctest.git"
16+ GIT_TAG "v2.4.11"
17+ )
18+ FetchContent_MakeAvailable (doctest)
19+ endif ()
2020
2121add_executable (tests
22- main.cpp
23- ulog_parsing_test.cpp
24- read_api_test.cpp
22+ main.cpp
23+ ulog_parsing_test.cpp
24+ read_api_test.cpp
2525)
2626
2727target_link_libraries (tests PUBLIC
28- doctest::doctest
29- ulog_cpp::ulog_cpp
28+ doctest::doctest
29+ ulog_cpp::ulog_cpp
3030)
3131
32+ add_dependencies (tests ulog_cpp )
33+
3234add_custom_target (
3335 run-unit-tests
3436 COMMAND $<TARGET_FILE :tests >
3537 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
3638 USES_TERMINAL
3739)
40+
41+ add_dependencies (run-unit-tests tests )
42+
43+ enable_testing ()
44+ add_test (NAME unit-tests COMMAND tests )
Original file line number Diff line number Diff line change 1+ if (BUILD_SHARED_LIBS )
2+ add_library (${PROJECT_NAME} SHARED
3+ data_container.cpp
4+ messages.cpp
5+ reader.cpp
6+ writer.cpp
7+ simple_writer.cpp
8+ )
9+ else ()
10+ add_library (${PROJECT_NAME} STATIC
11+ data_container.cpp
12+ messages.cpp
13+ reader.cpp
14+ writer.cpp
15+ simple_writer.cpp
16+ )
17+ endif ()
18+ add_library (${PROJECT_NAME} ::${PROJECT_NAME} ALIAS ${PROJECT_NAME} )
119
2- add_library (${PROJECT_NAME}
3- data_container.cpp
4- messages.cpp
5- reader.cpp
6- writer.cpp
7- simple_writer.cpp
20+ target_include_directories (${PROJECT_NAME}
21+ PUBLIC
22+ $<BUILD_INTERFACE :${CMAKE_CURRENT_SOURCE_DIR} >
23+ $<INSTALL_INTERFACE :include /ulog_cpp >
24+ )
25+
26+ install (TARGETS ${PROJECT_NAME}
27+ EXPORT ${PROJECT_NAME} Targets
28+ ARCHIVE DESTINATION lib
29+ LIBRARY DESTINATION lib
30+ RUNTIME DESTINATION bin
831)
9- add_library (${PROJECT_NAME} ::${PROJECT_NAME} ALIAS ${PROJECT_NAME} )
1032
33+ install (DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} /
34+ DESTINATION include/ulog_cpp
35+ FILES_MATCHING PATTERN "*.hpp"
36+ )
37+
38+ install (EXPORT ${PROJECT_NAME} Targets
39+ FILE ${PROJECT_NAME} Targets .cmake
40+ NAMESPACE ${PROJECT_NAME} ::
41+ DESTINATION lib/cmake/${PROJECT_NAME}
42+ )
You can’t perform that action at this time.
0 commit comments