Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,27 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_subdirectory(ulog_cpp)

if(MAIN_PROJECT)
include(CMakePackageConfigHelpers)

write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
VERSION 1.0.0
COMPATIBILITY AnyNewerVersion
)

configure_package_config_file(
"${CMAKE_CURRENT_SOURCE_DIR}/cmake/${PROJECT_NAME}Config.cmake.in"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}
)

install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
DESTINATION lib/cmake/${PROJECT_NAME}
)


add_compile_options(
# Warnings
-Wall
Expand Down
3 changes: 3 additions & 0 deletions cmake/ulog_cppConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
@PACKAGE_INIT@

include("${CMAKE_CURRENT_LIST_DIR}/ulog_cppTargets.cmake")
14 changes: 7 additions & 7 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/examples)

add_executable(ulog_info ulog_info.cpp)
target_link_libraries(ulog_info PUBLIC
ulog_cpp::ulog_cpp
)
ulog_cpp::ulog_cpp
)

add_executable(ulog_data ulog_data.cpp)
target_link_libraries(ulog_data PUBLIC
ulog_cpp::ulog_cpp
)
ulog_cpp::ulog_cpp
)

add_executable(ulog_writer ulog_writer.cpp)
target_link_libraries(ulog_writer PUBLIC
ulog_cpp::ulog_cpp
)
ulog_cpp::ulog_cpp
)
36 changes: 22 additions & 14 deletions test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,37 +1,45 @@


include(FetchContent)

set(SYSTEM_ARG SYSTEM)
# cmake < 3.25 fails with system attribute
if (CMAKE_VERSION VERSION_LESS "3.25")
set(SYSTEM_ARG "")
endif ()
FetchContent_Declare(
DocTest

find_package(doctest CONFIG)

if(NOT doctest_FOUND)
include(FetchContent)
FetchContent_Declare(
doctest
GIT_REPOSITORY "https://github.com/doctest/doctest.git"
GIT_TAG "v2.4.11"
${SYSTEM_ARG}
)


FetchContent_MakeAvailable(DocTest)

)
FetchContent_MakeAvailable(doctest)
endif()

add_executable(tests
main.cpp
ulog_parsing_test.cpp
read_api_test.cpp
main.cpp
ulog_parsing_test.cpp
read_api_test.cpp
)

target_link_libraries(tests PUBLIC
doctest::doctest
ulog_cpp::ulog_cpp
doctest::doctest
ulog_cpp::ulog_cpp
)

add_dependencies(tests ulog_cpp)

add_custom_target(
run-unit-tests
COMMAND $<TARGET_FILE:tests>
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
USES_TERMINAL
)

add_dependencies(run-unit-tests tests)

enable_testing()
add_test(NAME unit-tests COMMAND tests)
35 changes: 29 additions & 6 deletions ulog_cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,10 +1,33 @@

add_library(${PROJECT_NAME}
data_container.cpp
messages.cpp
reader.cpp
writer.cpp
simple_writer.cpp
data_container.cpp
messages.cpp
reader.cpp
writer.cpp
simple_writer.cpp
)

add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})

target_include_directories(${PROJECT_NAME}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
$<INSTALL_INTERFACE:include/ulog_cpp>
)

install(TARGETS ${PROJECT_NAME}
EXPORT ${PROJECT_NAME}Targets
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
RUNTIME DESTINATION bin
)

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/
DESTINATION include/ulog_cpp
FILES_MATCHING PATTERN "*.hpp"
)

install(EXPORT ${PROJECT_NAME}Targets
FILE ${PROJECT_NAME}Targets.cmake
NAMESPACE ${PROJECT_NAME}::
DESTINATION lib/cmake/${PROJECT_NAME}
)
Loading