/
/
/
1cmake_minimum_required(VERSION 3.8)
2project(q_pen_drawer)
3
4if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
5 add_compile_options(-Wall -Wextra -Wpedantic)
6endif()
7
8set(CMAKE_CXX_STANDARD 17)
9set(CMAKE_CXX_STANDARD_REQUIRED ON)
10
11set(CMAKE_INCLUDE_CURRENT_DIR ON)
12
13# set(CMAKE_AUTOMOC ON)
14
15
16find_package(ament_cmake REQUIRED)
17find_package(Qt5Widgets REQUIRED)
18find_package (Eigen3 3.3 REQUIRED NO_MODULE)
19
20set(q_pen_drawer_SRCS
21 src/main.cpp
22 src/mainwindow.cpp
23 src/canvasview.cpp
24 src/bezierline.cpp
25)
26
27set(q_pen_drawer_HDRS
28 include/q_pen_drawer/mainwindow.h
29 include/q_pen_drawer/canvasview.h
30 include/q_pen_drawer/bezierline.h
31)
32
33set(q_pen_drawer_UIS
34 resource/mainwindow.ui
35)
36
37qt5_wrap_cpp(q_pen_drawer_MOCS ${q_pen_drawer_HDRS})
38
39qt5_wrap_ui(q_pen_drawer_UIS_H resource/mainwindow.ui)
40
41add_executable(${PROJECT_NAME}
42 ${q_pen_drawer_SRCS}
43 ${q_pen_drawer_MOCS}
44 ${q_pen_drawer_UIS}
45)
46
47target_include_directories(${PROJECT_NAME} PUBLIC
48 "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
49 "$<INSTALL_INTERFACE:include/${PROJECT_NAME}>"
50 ${EIGEN3_INCLUDE_DIRS}
51)
52
53ament_target_dependencies(${PROJECT_NAME} PUBLIC
54 Eigen3
55)
56
57target_link_libraries(${PROJECT_NAME}
58 Qt5::Widgets
59)
60
61install(
62 TARGETS ${PROJECT_NAME}
63 DESTINATION lib/${PROJECT_NAME}
64)
65
66ament_package()
67