/
/
/
1cmake_minimum_required(VERSION 3.5)
2
3project(qt_icmp)
4
5# Find dependencies
6find_package(ament_cmake REQUIRED)
7find_package(Qt5 REQUIRED COMPONENTS Core Concurrent)
8
9# Add the library
10add_library(${PROJECT_NAME} SHARED
11 src/icmp_packet.cpp
12 src/icmp_socket.cpp
13 src/icmp_wrapper.cpp
14)
15
16# Specify include directories
17target_include_directories(${PROJECT_NAME}
18 PUBLIC
19 $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
20 $<INSTALL_INTERFACE:include/${PROJECT_NAME}>
21)
22
23# Link against Qt5Core
24target_link_libraries(${PROJECT_NAME}
25 Qt5::Core
26 Qt5::Concurrent
27)
28
29# Handle MOC
30set(moc_headers
31 include/qt_icmp/icmp_wrapper.hpp
32 include/qt_icmp/icmp_socket.hpp
33)
34
35qt5_wrap_cpp(moc_files ${moc_headers})
36
37# Add MOC files to the library
38target_sources(${PROJECT_NAME} PRIVATE ${moc_files})
39
40# Install targets
41install(TARGETS ${PROJECT_NAME}
42 EXPORT export_${PROJECT_NAME}
43 ARCHIVE DESTINATION lib/
44 LIBRARY DESTINATION lib/
45 RUNTIME DESTINATION bin/
46)
47
48# Install headers
49install(DIRECTORY include/
50 DESTINATION include
51)
52
53# Export the package
54ament_export_include_directories(include)
55ament_export_libraries(${PROJECT_NAME})
56
57ament_package()
58