11cmake_minimum_required (VERSION 3.3)
22
33project (can-utils LANGUAGES C)
4+ set (LIB_CURRENT 4)
5+ set (LIB_REVISION 1)
6+ set (LIB_AGE 2)
7+ math (EXPR LIB_SOVERSION "${LIB_CURRENT} - ${LIB_AGE} " )
8+ set (LIB_VERSION ${LIB_SOVERSION} .${LIB_AGE} .${LIB_REVISION} )
49
510include (GNUInstallDirs)
611
@@ -14,6 +19,7 @@ endif()
1419
1520set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-parentheses" )
1621set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-strict-aliasing" )
22+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_FILE_OFFSET_BITS=64" )
1723set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSO_RXQ_OVFL=40" )
1824set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPF_CAN=29" )
1925set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DAF_CAN=PF_CAN" )
@@ -73,6 +79,35 @@ add_library(j1939 STATIC
7379 libj1939.c
7480)
7581
82+ add_library (socketcan SHARED
83+ libsocketcan.c
84+ )
85+
86+ set (prefix ${CMAKE_INSTALL_PREFIX} )
87+ set (exec_prefix \${prefix} )
88+ set (libdir \${exec_prefix} /${CMAKE_INSTALL_LIBDIR} )
89+ set (includedir \${prefix} /${CMAKE_INSTALL_INCLUDEDIR} )
90+ configure_file (config/libsocketcan.pc.in config/libsocketcan.pc @ONLY)
91+ install (
92+ FILES ${CMAKE_CURRENT_BINARY_DIR} /config/libsocketcan.pc
93+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig
94+ )
95+
96+ set_target_properties (socketcan
97+ PROPERTIES PUBLIC_HEADER include /libsocketcan.h
98+ SOVERSION ${LIB_SOVERSION}
99+ VERSION ${LIB_VERSION}
100+ )
101+
102+ install (TARGETS socketcan
103+ LIBRARY
104+ DESTINATION lib
105+ COMPONENT Development
106+ PUBLIC_HEADER
107+ DESTINATION include
108+ COMPONENT Development
109+ )
110+
76111foreach (name ${PROGRAMS} )
77112 add_executable (${name} ${name} .c)
78113
0 commit comments