-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
125 lines (102 loc) · 3.85 KB
/
Copy pathCMakeLists.txt
File metadata and controls
125 lines (102 loc) · 3.85 KB
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
# Project
PROJECT(CuteIPC)
ENABLE_TESTING(true)
# CMake module path
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/CMake)
# Compile flags
INCLUDE(CompilerFlags)
# Qt
MESSAGE("Searching for preferred Qt version...")
IF (DEFINED QT_DESIRED_VERSION)
IF(QT_DESIRED_VERSION MATCHES 5)
SET(QT_VERSION_MAJOR 5)
FIND_PACKAGE(Qt5Core REQUIRED)
FIND_PACKAGE(Qt5Gui REQUIRED)
FIND_PACKAGE(Qt5Network REQUIRED)
ELSE (QT_DESIRED_VERSION MATCHES 5)
IF (QT_DESIRED_VERSION MATCHES 4)
FIND_PACKAGE(Qt4 COMPONENTS QtCore QtGui QtNetwork REQUIRED)
INCLUDE(${QT_USE_FILE})
ELSE (QT_DESIRED_VERSION MATCHES 4)
MESSAGE(FATAL_ERROR "You must specify the 4th or the 5th version of Qt")
ENDIF(QT_DESIRED_VERSION MATCHES 4)
ENDIF (QT_DESIRED_VERSION MATCHES 5)
ELSE (DEFINED QT_DESIRED_VERSION)
FIND_PACKAGE(Qt5Core QUIET)
FIND_PACKAGE(Qt5Gui QUIET)
FIND_PACKAGE(Qt5Network QUIET)
IF (Qt5Core_FOUND)
SET(QT_VERSION_MAJOR 5)
ELSE(Qt5Core_FOUND)
MESSAGE("Qt 5 not found, searching for Qt4")
FIND_PACKAGE(Qt4 REQUIRED)
ENDIF(Qt5Core_FOUND)
ENDIF (DEFINED QT_DESIRED_VERSION)
MESSAGE("Qt version is used: ${QT_VERSION_MAJOR}")
# Include directories
IF (QT_VERSION_MAJOR MATCHES 5)
INCLUDE_DIRECTORIES(include src ${CMAKE_CURRENT_BINARY_DIR} ${Qt5Core_INCLUDE_DIRS} ${Qt5Gui_INCLUDE_DIRS} ${Qt5Network_INCLUDE_DIRS})
ELSE()
INCLUDE_DIRECTORIES(include src ${CMAKE_CURRENT_BINARY_DIR})
ENDIF()
# Turn off automoc
SET(CMAKE_AUTOMOC OFF)
SET(sources
src/CuteIPCService.cpp
src/CuteIPCInterface.cpp
src/CuteIPCMarshaller.cpp
src/CuteIPCServiceConnection.cpp
src/CuteIPCInterfaceConnection.cpp
src/CuteIPCMessage.cpp
src/CuteIPCSignalHandler.cpp
src/CuteIPCInterfaceWorker.cpp
)
SET(headers
include/CuteIPCService.h
include/CuteIPCInterface.h
src/CuteIPCService_p.h
src/CuteIPCInterface_p.h
src/CuteIPCMarshaller_p.h
src/CuteIPCMessage_p.h
src/CuteIPCSignalHandler_p.h
)
SET(moc_headers
src/CuteIPCServiceConnection_p.h
src/CuteIPCInterfaceConnection_p.h
src/CuteIPCInterfaceWorker.h
)
IF (QT_VERSION_MAJOR MATCHES 5)
QT5_WRAP_CPP(sources ${moc_headers})
QT5_GENERATE_MOC(include/CuteIPCService.h ${CMAKE_CURRENT_BINARY_DIR}/moc_CuteIPCService.cpp)
SET_SOURCE_FILES_PROPERTIES(src/CuteIPCService.cpp PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/moc_CuteIPCService.cpp)
QT5_GENERATE_MOC(include/CuteIPCInterface.h ${CMAKE_CURRENT_BINARY_DIR}/moc_CuteIPCInterface.cpp)
SET_SOURCE_FILES_PROPERTIES(src/CuteIPCInterface.cpp PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/moc_CuteIPCInterface.cpp)
ELSE()
QT4_WRAP_CPP(sources ${moc_headers})
QT4_GENERATE_MOC(include/CuteIPCService.h ${CMAKE_CURRENT_BINARY_DIR}/moc_CuteIPCService.cpp)
SET_SOURCE_FILES_PROPERTIES(src/CuteIPCService.cpp PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/moc_CuteIPCService.cpp)
QT4_GENERATE_MOC(include/CuteIPCInterface.h ${CMAKE_CURRENT_BINARY_DIR}/moc_CuteIPCInterface.cpp)
SET_SOURCE_FILES_PROPERTIES(src/CuteIPCInterface.cpp PROPERTIES OBJECT_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/moc_CuteIPCInterface.cpp)
ENDIF()
SET(lib_target CuteIPC)
ADD_LIBRARY(${lib_target} SHARED ${sources} ${headers} ${moc_headers})
IF (QT_VERSION_MAJOR MATCHES 5)
TARGET_LINK_LIBRARIES(${lib_target} ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Network_LIBRARIES})
ELSE()
TARGET_LINK_LIBRARIES(${lib_target} ${QT_LIBRARIES})
ENDIF()
TARGET_INCLUDE_DIRECTORIES(${lib_target} PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/include
)
SET(CUTEIPC_BUILD_EXAMPLES OFF CACHE BOOL "Build CuteIPC examples")
SET(CUTEIPC_BUILD_TESTS OFF CACHE BOOL "Build CuteIPC tests")
# Examples
IF (CUTEIPC_BUILD_EXAMPLES)
ADD_SUBDIRECTORY(example/client)
ADD_SUBDIRECTORY(example/server)
ENDIF ()
IF (CUTEIPC_BUILD_TESTS)
ADD_SUBDIRECTORY(test)
ENDIF ()
INSTALL(TARGETS ${lib_target} LIBRARY DESTINATION lib)