cadMousePro-daemon/src/CMakeLists.txt
branchv_0
changeset 13 52d92c1b340e
parent 12 cf77c218b0b1
equal deleted inserted replaced
12:cf77c218b0b1 13:52d92c1b340e
     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)