1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# Find packages
find_package(Qt5Core REQUIRED)
find_package(Qt5DBus REQUIRED)
find_package(Qt5PrintSupport REQUIRED)
find_package(Qt5Widgets REQUIRED)
find_package(PkgConfig REQUIRED)
pkg_check_modules(CONTENTHUB REQUIRED libcontent-hub)
# Replicate qmake CONFIG += plugin
add_definitions(${QT_DEFINITIONS})
add_definitions(-DQT_PLUGIN)
add_definitions(-DQT_NO_DEBUG)
add_definitions(-DQT_SHARED)
# Disable use of cups in Qt print support
add_definitions(-DQT_NO_CUPS)
# Setup include directories
include(GNUInstallDirs)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_BINARY_DIR}
${Qt5Core_INCLUDE_DIRS}
${Qt5Core_PRIVATE_INCLUDE_DIRS}
${Qt5DBus_INCLUDE_DIRS}
${Qt5PrintSupport_INCLUDE_DIRS}
${Qt5PrintSupport_PRIVATE_INCLUDE_DIRS}
${LIBCONTENT_HUB_INCLUDE_DIRS}
)
# Setup the library sources and name
set(LIBNAME qtubuntu-print)
set(
qtubuntu_print_SRC
constants.h
i18n.cpp
main.cpp
qubuntuprintdevice.cpp
qubuntuprintengine.cpp
qubuntuprintsupport.cpp
)
add_library(${LIBNAME} SHARED ${qtubuntu_print_SRC})
qt5_use_modules(${LIBNAME} Core DBus PrintSupport Widgets)
target_link_libraries(${LIBNAME} content-hub)
# Install the plugin file
execute_process(
COMMAND qmake -qt=qt5 -query QT_INSTALL_PLUGINS
OUTPUT_VARIABLE QT_INSTALL_PLUGINS_DIR
OUTPUT_STRIP_TRAILING_WHITESPACE
)
install(TARGETS ${LIBNAME} DESTINATION ${QT_INSTALL_PLUGINS_DIR}/printsupport)
# Show files in QtC
file(GLOB QTC_FILES
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
*.cpp *.h *.json)
add_custom_target(qtubuntu_print_qtc_files DEPENDS main.cpp SOURCES ${QTC_FILES})
# Set variables for outside use
set(SRC_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE)
set(SRC_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)
set(SRC_LIBNAME "lib${LIBNAME}" PARENT_SCOPE)
|