|
1 | | -cmake_minimum_required(VERSION 3.10) |
| 1 | +cmake_minimum_required(VERSION 3.23) |
| 2 | +# FILE_SET needs cmake 3.23 |
2 | 3 |
|
3 | 4 | project(dbc VERSION 0.1.1 DESCRIPTION "C++ DBC Parser") |
4 | 5 |
|
@@ -39,19 +40,43 @@ list(APPEND SOURCE ${PROJECT_SOURCE_DIR}/src/utils.cpp |
39 | 40 | ${PROJECT_SOURCE_DIR}/src/signal.cpp |
40 | 41 | ${PROJECT_SOURCE_DIR}/src/dbc.cpp) |
41 | 42 |
|
| 43 | +set(HEADER_FILES |
| 44 | + ${PROJECT_SOURCE_DIR}/include/libdbc/dbc.hpp |
| 45 | + ${PROJECT_SOURCE_DIR}/include/libdbc/message.hpp |
| 46 | + ${PROJECT_SOURCE_DIR}/include/libdbc/signal.hpp |
| 47 | + ${PROJECT_SOURCE_DIR}/include/libdbc/utils/utils.hpp |
| 48 | + ${PROJECT_SOURCE_DIR}/include/libdbc/exceptions/error.hpp |
| 49 | +) |
| 50 | + |
42 | 51 | include_directories(src) |
43 | 52 | include_directories(include) |
44 | 53 |
|
45 | 54 | add_subdirectory(test) |
46 | 55 | add_subdirectory(doc) |
47 | 56 |
|
48 | 57 | add_library(${PROJECT_NAME} STATIC ${SOURCE}) |
| 58 | +target_sources(${PROJECT_NAME} INTERFACE FILE_SET HEADERS |
| 59 | + TYPE HEADERS |
| 60 | + BASE_DIRS ${PROJECT_SOURCE_DIR}/include/libdbc |
| 61 | + FILES ${HEADER_FILES}) |
49 | 62 |
|
50 | 63 | add_custom_target(release |
51 | 64 | WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} |
52 | 65 | COMMAND ${CMAKE_SOURCE_DIR}/scripts/create_single_header.sh |
53 | 66 | DEPENDS ${PROJECT_NAME}) |
54 | 67 |
|
| 68 | +## Installation |
| 69 | +# install lib |
| 70 | +install(TARGETS ${PROJECT_NAME} |
| 71 | + DESTINATION ${CMAKE_INSTALL_LIBDIR}) |
| 72 | + |
| 73 | +# install headers |
| 74 | +install(TARGETS ${PROJECT_NAME} |
| 75 | + FILE_SET HEADERS |
| 76 | + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/lib${PROJECT_NAME} |
| 77 | + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} |
| 78 | +) |
| 79 | + |
55 | 80 | # Generate pkg-config file |
56 | 81 | configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY) |
57 | 82 | install( |
|
0 commit comments