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