# HG changeset patch # User František Kučera # Date 1567099305 -7200 # Node ID 52d92c1b340e561aa8057f931a1a8c5143ae65c8 # Parent cf77c218b0b11ed0849e7f14dfe476ab23ccda52 generate C++ classes from D-Bus XML using cmake instead of a custom script diff -r cf77c218b0b1 -r 52d92c1b340e .hgignore --- a/.hgignore Thu Aug 29 17:57:30 2019 +0200 +++ b/.hgignore Thu Aug 29 19:21:45 2019 +0200 @@ -10,4 +10,4 @@ ^[^/]+/dist/ ^[^/]+/build/ ^[^/]+/nbproject/private/ -^[^/]+/src/generated-sources/ + diff -r cf77c218b0b1 -r 52d92c1b340e cadMousePro-daemon/nbproject/configurations.xml --- a/cadMousePro-daemon/nbproject/configurations.xml Thu Aug 29 17:57:30 2019 +0200 +++ b/cadMousePro-daemon/nbproject/configurations.xml Thu Aug 29 19:21:45 2019 +0200 @@ -59,9 +59,6 @@ - - DBusAdaptor.cpp - Daemon.h cadMousePro.cpp @@ -122,7 +119,7 @@ build/Debug ${MAKE} -f Makefile ${MAKE} -f Makefile clean - build/Debug/src/welcome + build/Debug/src/cadMousePro build/Debug @@ -130,13 +127,6 @@ true - - - - + /usr/include/hidapi + /usr/include/x86_64-linux-gnu/qt5 + /usr/include/x86_64-linux-gnu/qt5/QtDBus + /usr/include/x86_64-linux-gnu/qt5/QtCore + /usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ + build/Debug/src + src build/Debug/src/cadMousePro_autogen/include @@ -213,11 +210,20 @@ + + + + build/Debug/src/cadMousePro_autogen/include + + + src build/qt/src/cadMousePro_autogen/EWIEGA46WW + build/qt/src/cadMousePro_autogen/7JU4VIX55Q + src/generated-sources build/qt/src/cadMousePro_autogen build/qt/src @@ -298,7 +304,7 @@ build/Release ${MAKE} -f Makefile ${MAKE} -f Makefile clean - build/Release/src/welcome + build/Release/src/cadMousePro build/Release/src diff -r cf77c218b0b1 -r 52d92c1b340e cadMousePro-daemon/src/CMakeLists.txt --- a/cadMousePro-daemon/src/CMakeLists.txt Thu Aug 29 17:57:30 2019 +0200 +++ b/cadMousePro-daemon/src/CMakeLists.txt Thu Aug 29 19:21:45 2019 +0200 @@ -1,14 +1,13 @@ set(EXECUTABLE_FILE "cadMousePro") -# USB libraries: -INCLUDE(FindPkgConfig) - # 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) +# USB libraries: +INCLUDE(FindPkgConfig) pkg_check_modules (USB_LIBS hidapi-hidraw) include_directories(${USB_LIBS_INCLUDE_DIRS}) link_directories(${USB_LIBS_LIBRARY_DIRS}) @@ -17,12 +16,25 @@ 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}/DBusAdaptor.h + OUTPUT ${GENERATED_SOURCES}/DBusAdaptor.cpp + COMMAND qdbusxml2cpp -a DBusAdaptor.h:DBusAdaptor.cpp -c DBusAdaptor -l Daemon -i Daemon.h ${DBUS_XML} + WORKING_DIRECTORY ${GENERATED_SOURCES} +) +cmake_policy(SET CMP0071 NEW) # Let AUTOMOC and AUTOUIC process GENERATED files. + # Executable output: add_executable( ${EXECUTABLE_FILE} Daemon.h - generated-sources/DBusAdaptor.h - generated-sources/DBusAdaptor.cpp + ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/DBusAdaptor.h + ${CMAKE_CURRENT_BINARY_DIR}/generated-sources/DBusAdaptor.cpp cadMousePro.cpp ) diff -r cf77c218b0b1 -r 52d92c1b340e cadMousePro-daemon/src/Daemon.h --- a/cadMousePro-daemon/src/Daemon.h Thu Aug 29 17:57:30 2019 +0200 +++ b/cadMousePro-daemon/src/Daemon.h Thu Aug 29 19:21:45 2019 +0200 @@ -20,7 +20,7 @@ #include #include #include -#include +#include #include "HID.h" #include "CadMouseConfig.h" diff -r cf77c218b0b1 -r 52d92c1b340e cadMousePro-daemon/src/cadMousePro.cpp --- a/cadMousePro-daemon/src/cadMousePro.cpp Thu Aug 29 17:57:30 2019 +0200 +++ b/cadMousePro-daemon/src/cadMousePro.cpp Thu Aug 29 19:21:45 2019 +0200 @@ -25,7 +25,7 @@ #include "CLIParser.h" #include "HID.h" #include "Daemon.h" -#include "generated-sources/DBusAdaptor.h" // to generate this file run: d-bus/generate.sh adaptor +#include "generated-sources/DBusAdaptor.h" int main(int argc, char** argv) { try { diff -r cf77c218b0b1 -r 52d92c1b340e d-bus/generate.sh --- a/d-bus/generate.sh Thu Aug 29 17:57:30 2019 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -#!/bin/bash - -cd "$(dirname "$0")" -ADAPTOR_DIR="../cadMousePro-daemon/src/generated-sources" -PROXY_DIR="../cadMousePro-gui/src/generated-sources" -XML="info.globalcode.mouse.cadMousePro.xml" - -case "$1" in - adaptor) - qdbusxml2cpp -a DBusAdaptor.h:DBusAdaptor.cpp -c DBusAdaptor -l Daemon -i ../Daemon.h "$XML" - mkdir -p "$ADAPTOR_DIR" - mv DBusAdaptor.h DBusAdaptor.cpp "$ADAPTOR_DIR" - ;; - proxy) - qdbusxml2cpp -l Daemon -i ../Daemon.h -p Proxy.h "$XML" - mkdir -p "$PROXY_DIR" - mv Proxy.h "$PROXY_DIR" - ;; - *) - echo $"Usage: $0 (adaptor|proxy)" - exit 1 -esac