Skip to content

Commit 2177a11

Browse files
authored
Merge pull request #5 from Murmele/installFiles
Add files for installing the library
2 parents 9395a5d + f9039af commit 2177a11

File tree

2 files changed

+54
-2
lines changed

2 files changed

+54
-2
lines changed

CMakeLists.txt

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
1-
cmake_minimum_required(VERSION 3.10)
1+
cmake_minimum_required(VERSION 3.23)
2+
# FILE_SET needs cmake 3.23
23

3-
project(dbc)
4+
project(dbc VERSION 0.1.1 DESCRIPTION "C++ DBC Parser")
5+
6+
# package
7+
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
8+
set(CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
9+
set(CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
10+
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
11+
set(CPACK_RESOURCE_FILE_README ${CMAKE_CURRENT_SOURCE_DIR}/README.md)
12+
include(CPack)
413

514
option(DEBUG "use debug flag" NO)
615

16+
# defines variables used in the dbc.pc.in
17+
include(GNUInstallDirs)
18+
719
# specify the C++ standard
820
set(CMAKE_CXX_STANDARD 11)
921
set(CMAKE_CXX_STANDARD_REQUIRED True)
@@ -28,15 +40,45 @@ list(APPEND SOURCE ${PROJECT_SOURCE_DIR}/src/utils.cpp
2840
${PROJECT_SOURCE_DIR}/src/signal.cpp
2941
${PROJECT_SOURCE_DIR}/src/dbc.cpp)
3042

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+
3151
include_directories(src)
3252
include_directories(include)
3353

3454
add_subdirectory(test)
3555
add_subdirectory(doc)
3656

3757
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})
3862

3963
add_custom_target(release
4064
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
4165
COMMAND ${CMAKE_SOURCE_DIR}/scripts/create_single_header.sh
4266
DEPENDS ${PROJECT_NAME})
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+
80+
# Generate pkg-config file
81+
configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
82+
install(
83+
FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc
84+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)

dbc.pc.in

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
prefix=@CMAKE_INSTALL_PREFIX@
2+
exec_prefix=${prefix}
3+
includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
4+
libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
5+
6+
Name: @PROJECT_NAME@
7+
Description: @CPACK_PACKAGE_DESCRIPTION_SUMMARY@
8+
Version: @CPACK_PACKAGE_VERSION@
9+
Cflags: -I${includedir}
10+
Libs: -L${libdir} -l@PROJECT_NAME@

0 commit comments

Comments
 (0)