1 set(EXECUTABLE_FILE "cadMousePro") |
1 set(EXECUTABLE_FILE "cadMousePro") |
2 |
|
3 # USB libraries: |
|
4 INCLUDE(FindPkgConfig) |
|
5 |
2 |
6 # Qt libraries: |
3 # Qt libraries: |
7 set(CMAKE_INCLUDE_CURRENT_DIR ON) # Find includes in corresponding build directories |
4 set(CMAKE_INCLUDE_CURRENT_DIR ON) # Find includes in corresponding build directories |
8 set(CMAKE_AUTOMOC ON) # Instruct CMake to run moc automatically when needed |
5 set(CMAKE_AUTOMOC ON) # Instruct CMake to run moc automatically when needed |
9 set(CMAKE_AUTOUIC ON) # Create code from a list of Qt designer ui files |
6 set(CMAKE_AUTOUIC ON) # Create code from a list of Qt designer ui files |
10 find_package(Qt5 CONFIG REQUIRED Core DBus) |
7 find_package(Qt5 CONFIG REQUIRED Core DBus) |
11 |
8 |
|
9 # USB libraries: |
|
10 INCLUDE(FindPkgConfig) |
12 pkg_check_modules (USB_LIBS hidapi-hidraw) |
11 pkg_check_modules (USB_LIBS hidapi-hidraw) |
13 include_directories(${USB_LIBS_INCLUDE_DIRS}) |
12 include_directories(${USB_LIBS_INCLUDE_DIRS}) |
14 link_directories(${USB_LIBS_LIBRARY_DIRS}) |
13 link_directories(${USB_LIBS_LIBRARY_DIRS}) |
15 |
14 |
16 # Add ASan AddressSanitizer |
15 # Add ASan AddressSanitizer |
17 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") |
16 set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") |
18 set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") |
17 set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") |
19 |
18 |
|
19 # Generate C++ interface classes from D-Bus XML: |
|
20 file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/) |
|
21 set(DBUS_XML ${CMAKE_CURRENT_SOURCE_DIR}/../../d-bus/info.globalcode.mouse.cadMousePro.xml) |
|
22 set(GENERATED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/) |
|
23 add_custom_command( |
|
24 DEPENDS ${DBUS_XML} |
|
25 OUTPUT ${GENERATED_SOURCES}/DBusAdaptor.h |
|
26 OUTPUT ${GENERATED_SOURCES}/DBusAdaptor.cpp |
|
27 COMMAND qdbusxml2cpp -a DBusAdaptor.h:DBusAdaptor.cpp -c DBusAdaptor -l Daemon -i Daemon.h ${DBUS_XML} |
|
28 WORKING_DIRECTORY ${GENERATED_SOURCES} |
|
29 ) |
|
30 cmake_policy(SET CMP0071 NEW) # Let AUTOMOC and AUTOUIC process GENERATED files. |
|
31 |
20 # Executable output: |
32 # Executable output: |
21 add_executable( |
33 add_executable( |
22 ${EXECUTABLE_FILE} |
34 ${EXECUTABLE_FILE} |
23 Daemon.h |
35 Daemon.h |
24 generated-sources/DBusAdaptor.h |
36 ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/DBusAdaptor.h |
25 generated-sources/DBusAdaptor.cpp |
37 ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/DBusAdaptor.cpp |
26 cadMousePro.cpp |
38 cadMousePro.cpp |
27 ) |
39 ) |
28 |
40 |
29 # Link libraries: |
41 # Link libraries: |
30 target_link_libraries(${EXECUTABLE_FILE} ${USB_LIBS_LIBRARIES} Qt5::DBus) |
42 target_link_libraries(${EXECUTABLE_FILE} ${USB_LIBS_LIBRARIES} Qt5::DBus) |