~phablet-team/qtubuntu-print/trunk

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)