summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVo Trung Chi <chi.votrung@vn.bosch.com>2019-07-03 09:41:38 +0700
committerSaya Sugiura <39760799+ssugiura@users.noreply.github.com>2019-07-03 11:41:38 +0900
commitb757183f51920e8445ed0ea0bbdb490d99781ec6 (patch)
treeab984058504593f58a842f79b945dd6c6f12751f /src
parentc232148a950c536b99bf91033a78ada6ee6f1771 (diff)
downloadDLT-daemon-b757183f51920e8445ed0ea0bbdb490d99781ec6.tar.gz
cmake-improvements (#135)
1. Allow building as a subproject of another cmake project (CMAKE_* vs PROJECT_* variables) 2. Do not generate header files within source – bad practice, use build directory for that(e.g. change location where dlt_version.h is being generated) 3. Use add_compile_options() instead of *_C/CXX_FLAGS variables for proper compile environment definition, also bad practice, also see p.2 4. Add WITH_DLT_PKGCONFIG – add generate pkgconfig .pc files as switchable option, should probably be part of headers install routine. Signed-off-by: Radoslaw Kaczorowski <external.radoslaw.kaczorowski@bosch-softtec.com>
Diffstat (limited to 'src')
-rw-r--r--src/console/CMakeLists.txt48
-rw-r--r--src/daemon/CMakeLists.txt52
-rw-r--r--src/lib/CMakeLists.txt32
-rw-r--r--src/tests/CMakeLists.txt90
4 files changed, 117 insertions, 105 deletions
diff --git a/src/console/CMakeLists.txt b/src/console/CMakeLists.txt
index c2e5586..8bda257 100644
--- a/src/console/CMakeLists.txt
+++ b/src/console/CMakeLists.txt
@@ -15,33 +15,27 @@
# @licence end@
#######
-set(dlt_sortbytimestamp_SRCS dlt-sortbytimestamp.c)
-add_executable(dlt-sortbytimestamp ${dlt_sortbytimestamp_SRCS} ${dlt_most_SRCS})
-target_link_libraries(dlt-sortbytimestamp dlt ${EXPAT_LIBRARIES})
-set_target_properties(dlt-sortbytimestamp PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_convert_SRCS dlt-convert.c)
-add_executable(dlt-convert ${dlt_convert_SRCS} ${dlt_most_SRCS})
-target_link_libraries(dlt-convert dlt ${EXPAT_LIBRARIES})
-set_target_properties(dlt-convert PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_receive_SRCS dlt-receive.c)
-add_executable(dlt-receive ${dlt_receive_SRCS} ${dlt_most_SRCS})
-target_link_libraries(dlt-receive dlt ${EXPAT_LIBRARIES})
-set_target_properties(dlt-receive PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_control_SRCS dlt-control.c dlt-control-common.c)
-add_executable(dlt-control ${dlt_control_SRCS} ${dlt_most_SRCS})
-target_link_libraries(dlt-control dlt ${EXPAT_LIBRARIES})
-set_target_properties(dlt-control PROPERTIES LINKER_LANGUAGE C)
-
set(dlt_control_common_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/dlt-control-common.c)
-add_subdirectory( logstorage )
+add_subdirectory(logstorage)
+
+set(dlt-sortbytimestamp_SRCS dlt-sortbytimestamp.c)
+set(dlt-convert_SRCS dlt-convert.c)
+set(dlt-receive_SRCS dlt-receive.c)
+set(dlt-control_SRCS dlt-control.c ${dlt_control_common_SRCS})
+set(dlt-passive-node-ctrl_SRCS dlt-passive-node-ctrl.c ${dlt_control_common_SRCS})
-set(dlt_passive_node_ctrl_SRCS dlt-passive-node-ctrl.c dlt-control-common.c)
-add_executable(dlt-passive-node-ctrl ${dlt_passive_node_ctrl_SRCS} ${dlt_most_SRCS})
-target_link_libraries(dlt-passive-node-ctrl dlt ${EXPAT_LIBRARIES})
+foreach(target
+ dlt-sortbytimestamp
+ dlt-convert
+ dlt-receive
+ dlt-control
+ dlt-passive-node-ctrl
+ )
+ add_executable(${target} ${${target}_SRCS})
+ target_link_libraries(${target} dlt)
+ set_target_properties(${target} PROPERTIES LINKER_LANGUAGE C)
-install(TARGETS dlt-sortbytimestamp dlt-convert dlt-receive dlt-control dlt-passive-node-ctrl
- RUNTIME DESTINATION bin
- COMPONENT base)
+ install(TARGETS ${target}
+ RUNTIME DESTINATION bin
+ COMPONENT base)
+endforeach()
diff --git a/src/daemon/CMakeLists.txt b/src/daemon/CMakeLists.txt
index e9fb2ba..46f9ed7 100644
--- a/src/daemon/CMakeLists.txt
+++ b/src/daemon/CMakeLists.txt
@@ -17,15 +17,38 @@
if(WITH_SYSTEMD_WATCHDOG OR WITH_SYSTEMD)
- message( STATUS "Added ${systemd_SRCS} to dlt-daemon")
-endif(WITH_SYSTEMD_WATCHDOG OR WITH_SYSTEMD)
+ message(STATUS "Added ${systemd_SRCS} to dlt-daemon")
+endif()
-set(dlt_daemon_SRCS dlt-daemon.c dlt_daemon_common.c dlt_daemon_connection.c dlt_daemon_event_handler.c ${CMAKE_SOURCE_DIR}/src/gateway/dlt_gateway.c dlt_daemon_socket.c dlt_daemon_unix_socket.c dlt_daemon_serial.c dlt_daemon_client.c dlt_daemon_offline_logstorage.c ${CMAKE_SOURCE_DIR}/src/shared/dlt_user_shared.c ${CMAKE_SOURCE_DIR}/src/shared/dlt_common.c ${CMAKE_SOURCE_DIR}/src/shared/dlt_offline_trace.c ${CMAKE_SOURCE_DIR}/src/offlinelogstorage/dlt_offline_logstorage.c ${CMAKE_SOURCE_DIR}/src/lib/dlt_client.c ${CMAKE_SOURCE_DIR}/src/shared/dlt_config_file_parser.c ${CMAKE_SOURCE_DIR}/src/offlinelogstorage/dlt_offline_logstorage_behavior.c ${CMAKE_SOURCE_DIR}/src/shared/dlt_protocol.c)
+set(dlt_daemon_SRCS
+ dlt-daemon.c
+ dlt_daemon_client.c
+ dlt_daemon_common.c
+ dlt_daemon_connection.c
+ dlt_daemon_event_handler.c
+ dlt_daemon_offline_logstorage.c
+ dlt_daemon_serial.c
+ dlt_daemon_socket.c
+ dlt_daemon_unix_socket.c
+ ${PROJECT_SOURCE_DIR}/src/gateway/dlt_gateway.c
+ ${PROJECT_SOURCE_DIR}/src/lib/dlt_client.c
+ ${PROJECT_SOURCE_DIR}/src/shared/dlt_common.c
+ ${PROJECT_SOURCE_DIR}/src/shared/dlt_config_file_parser.c
+ ${PROJECT_SOURCE_DIR}/src/shared/dlt_offline_trace.c
+ ${PROJECT_SOURCE_DIR}/src/shared/dlt_protocol.c
+ ${PROJECT_SOURCE_DIR}/src/shared/dlt_user_shared.c
+ ${PROJECT_SOURCE_DIR}/src/offlinelogstorage/dlt_offline_logstorage.c
+ ${PROJECT_SOURCE_DIR}/src/offlinelogstorage/dlt_offline_logstorage_behavior.c
+ )
if(WITH_DLT_SHM_ENABLE)
- set(dlt_daemon_SRCS ${dlt_daemon_SRCS} ${CMAKE_SOURCE_DIR}/src/shared/dlt_shm.c)
+ set(dlt_daemon_SRCS
+ ${dlt_daemon_SRCS}
+ ${PROJECT_SOURCE_DIR}/src/shared/dlt_shm.c)
endif()
+add_executable(dlt-daemon ${dlt_daemon_SRCS} ${systemd_SRCS})
+
if(${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
set(RT_LIBRARY rt)
set(SOCKET_LIBRARY "")
@@ -34,19 +57,26 @@ else()
set(SOCKET_LIBRARY socket)
endif()
-add_executable(dlt-daemon ${dlt_daemon_SRCS} ${systemd_SRCS})
target_link_libraries(dlt-daemon ${RT_LIBRARY} ${SOCKET_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
install(TARGETS dlt-daemon
- RUNTIME DESTINATION bin
- PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
- GROUP_EXECUTE GROUP_READ
- WORLD_EXECUTE WORLD_READ
- COMPONENT base)
+ RUNTIME DESTINATION bin
+ PERMISSIONS
+ OWNER_EXECUTE OWNER_WRITE OWNER_READ
+ GROUP_EXECUTE GROUP_READ
+ WORLD_EXECUTE WORLD_READ
+ COMPONENT base)
if (WITH_DLT_UNIT_TESTS)
- add_library(dlt_daemon ${dlt_daemon_SRCS})
+ set(library_SRCS ${dlt_daemon_SRCS})
+
+ if (WITH_SYSTEMD_WATCHDOG OR WITH_SYSTEMD)
+ set(library_SRCS ${library_SRCS} ${systemd_SRCS})
+ endif(WITH_SYSTEMD_WATCHDOG OR WITH_SYSTEMD)
+
+ add_library(dlt_daemon ${library_SRCS})
target_link_libraries(dlt_daemon ${RT_LIBRARY} ${SOCKET_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
+
install(TARGETS dlt_daemon
RUNTIME DESTINATION bin
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
index 537e2ca..db3a38e 100644
--- a/src/lib/CMakeLists.txt
+++ b/src/lib/CMakeLists.txt
@@ -15,11 +15,19 @@
# @licence end@
#######
-set(dlt_LIB_SRCS dlt_user dlt_client dlt_filetransfer dlt_env_ll ${CMAKE_SOURCE_DIR}/src/shared/dlt_common.c ${CMAKE_SOURCE_DIR}/src/shared/dlt_user_shared.c ${CMAKE_SOURCE_DIR}/src/shared/dlt_protocol.c)
+set(dlt_LIB_SRCS
+ dlt_user.c
+ dlt_client.c
+ dlt_filetransfer.c
+ dlt_env_ll.c
+ ${PROJECT_SOURCE_DIR}/src/shared/dlt_common.c
+ ${PROJECT_SOURCE_DIR}/src/shared/dlt_protocol.c
+ ${PROJECT_SOURCE_DIR}/src/shared/dlt_user_shared.c
+ )
if(WITH_DLT_SHM_ENABLE)
- set(dlt_LIB_SRCS ${dlt_LIB_SRCS} ${CMAKE_SOURCE_DIR}/src/shared/dlt_shm.c)
-endif(WITH_DLT_SHM_ENABLE)
+ set(dlt_LIB_SRCS ${dlt_LIB_SRCS} ${PROJECT_SOURCE_DIR}/src/shared/dlt_shm.c)
+endif()
add_library(dlt ${dlt_LIB_SRCS})
@@ -31,14 +39,18 @@ else()
set(SOCKET_LIBRARY socket)
endif()
-target_link_libraries(dlt ${RT_LIBRARY} ${SOCKET_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
+if(HAVE_FUNC_PTHREAD_SETNAME_NP)
+ add_definitions(-DDLT_USE_PTHREAD_SETNAME_NP)
+ message(STATUS "Using pthread_setname_np API to set thread name")
+else()
+ message(STATUS "pthread_setname_np API not available on this platform")
+endif()
+target_link_libraries(dlt ${RT_LIBRARY} ${SOCKET_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
set_target_properties(dlt PROPERTIES VERSION ${DLT_VERSION} SOVERSION ${DLT_MAJOR_VERSION})
install(TARGETS dlt
- RUNTIME DESTINATION bin
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/static
- COMPONENT base)
-
-
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}/static
+ COMPONENT base)
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
index 7f9dc52..cb3898f 100644
--- a/src/tests/CMakeLists.txt
+++ b/src/tests/CMakeLists.txt
@@ -15,60 +15,36 @@
# @licence end@
#######
-set(dlt_test_multi_process_SRCS dlt-test-multi-process.c)
-add_executable(dlt-test-multi-process ${dlt_test_multi_process_SRCS})
-target_link_libraries(dlt-test-multi-process dlt)
-set_target_properties(dlt-test-multi-process PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_test_multi_process_client_SRCS dlt-test-multi-process-client.c)
-add_executable(dlt-test-multi-process-client ${dlt_test_multi_process_client_SRCS})
-target_link_libraries(dlt-test-multi-process-client dlt)
-set_target_properties(dlt-test-multi-process-client PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_test_user_SRCS dlt-test-user.c)
-add_executable(dlt-test-user ${dlt_test_user_SRCS})
-target_link_libraries(dlt-test-user dlt)
-set_target_properties(dlt-test-user PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_test_client_SRCS dlt-test-client.c)
-add_executable(dlt-test-client ${dlt_test_client_SRCS})
-target_link_libraries(dlt-test-client dlt)
-set_target_properties(dlt-test-client PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_test_stress_user_SRCS dlt-test-stress-user.c)
-add_executable(dlt-test-stress-user ${dlt_test_stress_user_SRCS})
-target_link_libraries(dlt-test-stress-user dlt)
-set_target_properties(dlt-test-stress-user PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_test_stress_client_SRCS dlt-test-stress-client.c)
-add_executable(dlt-test-stress-client ${dlt_test_stress_client_SRCS})
-target_link_libraries(dlt-test-stress-client dlt)
-set_target_properties(dlt-test-stress-client PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_test_stress_SRCS dlt-test-stress.c)
-add_executable(dlt-test-stress ${dlt_test_stress_SRCS})
-target_link_libraries(dlt-test-stress dlt)
-set_target_properties(dlt-test-stress PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_test_filetransfer_SRCS dlt-test-filetransfer.c)
-add_executable(dlt-test-filetransfer ${dlt_test_filetransfer_SRCS})
-target_link_libraries(dlt-test-filetransfer dlt)
-set_target_properties(dlt-test-filetransfer PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_test_fork_handler_SRCS dlt-test-fork-handler.c)
-add_executable(dlt-test-fork-handler ${dlt_test_fork_handler_SRCS})
-target_link_libraries(dlt-test-fork-handler dlt)
-set_target_properties(dlt-test-fork-handler PROPERTIES LINKER_LANGUAGE C)
-
-set(dlt_test_init_free_SRCS dlt-test-init-free.c)
-add_executable(dlt-test-init-free ${dlt_test_init_free_SRCS})
-target_link_libraries(dlt-test-init-free dlt)
-set_target_properties(dlt-test-init-free PROPERTIES LINKER_LANGUAGE C)
-
-install(TARGETS dlt-test-multi-process dlt-test-multi-process-client dlt-test-user dlt-test-client dlt-test-stress-user dlt-test-stress-client dlt-test-stress dlt-test-filetransfer dlt-test-fork-handler dlt-test-init-free
- RUNTIME DESTINATION bin
- COMPONENT base)
-
-INSTALL(FILES dlt-test-filetransfer-file dlt-test-filetransfer-image.png
- DESTINATION share/dlt-filetransfer
-)
+set(dlt-test-multi-process_SRCS dlt-test-multi-process.c)
+set(dlt-test-multi-process-client_SRCS dlt-test-multi-process-client.c)
+set(dlt-test-user_SRCS dlt-test-user.c)
+set(dlt-test-client_SRCS dlt-test-client.c)
+set(dlt-test-stress-user_SRCS dlt-test-stress-user.c)
+set(dlt-test-stress-client_SRCS dlt-test-stress-client.c)
+set(dlt-test-stress_SRCS dlt-test-stress.c)
+set(dlt-test-filetransfer_SRCS dlt-test-filetransfer.c)
+set(dlt-test-fork-handler_SRCS dlt-test-fork-handler.c)
+set(dlt-test-init-free_SRCS dlt-test-init-free.c)
+
+foreach(target
+ dlt-test-multi-process
+ dlt-test-multi-process-client
+ dlt-test-user
+ dlt-test-client
+ dlt-test-stress-user
+ dlt-test-stress-client
+ dlt-test-stress
+ dlt-test-filetransfer
+ dlt-test-fork-handler
+ dlt-test-init-free
+ )
+ add_executable(${target} ${${target}_SRCS})
+ target_link_libraries(${target} dlt)
+ set_target_properties(${target} PROPERTIES LINKER_LANGUAGE C)
+ install(TARGETS ${target}
+ RUNTIME DESTINATION bin
+ COMPONENT base)
+endforeach()
+
+install(FILES dlt-test-filetransfer-file dlt-test-filetransfer-image.png
+ DESTINATION share/dlt-filetransfer)