cadMousePro-gui/src/CMakeLists.txt
branchv_0
changeset 14 759edaff1755
child 15 00783e323e66
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cadMousePro-gui/src/CMakeLists.txt	Thu Aug 29 20:23:37 2019 +0200
@@ -0,0 +1,36 @@
+set(EXECUTABLE_FILE "cadMousePro-gui")
+
+# Qt libraries:
+set(CMAKE_INCLUDE_CURRENT_DIR ON) # Find includes in corresponding build directories
+set(CMAKE_AUTOMOC ON) # Instruct CMake to run moc automatically when needed
+set(CMAKE_AUTOUIC ON) # Create code from a list of Qt designer ui files
+find_package(Qt5 CONFIG REQUIRED Core DBus)
+
+# Add ASan AddressSanitizer
+set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
+set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
+
+# Generate C++ interface classes from D-Bus XML:
+file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/)
+set(DBUS_XML ${CMAKE_CURRENT_SOURCE_DIR}/../../d-bus/info.globalcode.mouse.cadMousePro.xml)
+set(GENERATED_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/)
+add_custom_command(
+	DEPENDS ${DBUS_XML}
+	OUTPUT ${GENERATED_SOURCES}/Proxy.h
+	OUTPUT ${GENERATED_SOURCES}/Proxy.cpp
+	COMMAND qdbusxml2cpp -p Proxy.h:Proxy.cpp ${DBUS_XML}
+	WORKING_DIRECTORY ${GENERATED_SOURCES}
+)
+cmake_policy(SET CMP0071 NEW) # Let AUTOMOC and AUTOUIC process GENERATED files.
+
+# Executable output:
+add_executable(
+	${EXECUTABLE_FILE}
+	${CMAKE_CURRENT_BINARY_DIR}/generated-sources/Proxy.h
+	${CMAKE_CURRENT_BINARY_DIR}/generated-sources/Proxy.cpp
+	cadMouseProGUI.cpp
+)
+
+# Link libraries:
+target_link_libraries(${EXECUTABLE_FILE} Qt5::DBus)
+set_property(TARGET ${EXECUTABLE_FILE} PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE)