-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
130 lines (106 loc) · 2.91 KB
/
CMakeLists.txt
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
126
127
128
129
130
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.8)
cmake_policy(SET CMP0020 NEW)
OPTION( WITHOUT_TOOLS "Do not compile tools" OFF )
SET( PACKAGE pixview)
SET( PACKAGE_VERSION 0.0.2 )
SET( CMAKE_INCLUDE_CURRENT_DIR ON )
FIND_PACKAGE(Qt5Qml REQUIRED)
FIND_PACKAGE(Qt5Widgets REQUIRED)
FIND_PACKAGE(Qt5Gui REQUIRED)
FIND_PACKAGE(Qt5Quick REQUIRED)
ADD_DEFINITIONS(-DVERSION=\"${PACKAGE_VERSION}\")
ADD_DEFINITIONS(-Wall)
ADD_DEFINITIONS(-Wextra)
ADD_DEFINITIONS(-Werror)
ADD_DEFINITIONS(-D__NO_INLINE__)
SET( CMAKE_SYSTEM_PROCESSOR x86 )
SET( CMAKE_INCLUDE_CURRENT_DIR ON )
#SET( CMAKE_AUTOMOC ON)
IF( NOT WIN32 )
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
ENDIF()
IF(APPLE)
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++" )
ENDIF()
#SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -pipe ${Qt5Qml_EXECUTABLE_COMPILE_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS} ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} ${Qt5Quick_EXECUTABLE_COMPILE_FLAGS}" )
SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -pipe")
# Use static where it is possible
IF(WIN32)
SET(CMAKE_FIND_LIBRARY_SUFFIXES .lib .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
ELSE(WIN32)
SET(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
ENDIF(WIN32)
# Qt Creater will see this files in project navigator
file(GLOB_RECURSE QML_SRC
${CMAKE_CURRENT_SOURCE_DIR}/qml/*.qml
${CMAKE_CURRENT_SOURCE_DIR}/qml/*.js
)
INCLUDE_DIRECTORIES(
${COMMON_INCLUDES}
${CMAKE_CURRENT_SOURCE_DIR}/src
${CMAKE_CURRENT_SOURCE_DIR}
${QT_INCLUDES}
${Qt5Widgets_INCLUDE_DIRS}
${Qt5Gui_INCLUDE_DIRS}
${Qt5Qml_INCLUDE_DIRS}
${Qt5Quick_INCLUDE_DIRS}
)
ADD_SUBDIRECTORY( Common )
ADD_SUBDIRECTORY( src )
# Resources
SET( RCS
${CMAKE_CURRENT_SOURCE_DIR}/resources/app.qrc
)
# Viewer sources
SET( SOURCES
${QML_SRC}
${COMMON_SOURCES}
src/main.cpp
)
QT5_ADD_RESOURCES( SOURCES ${RCS} )
ADD_EXECUTABLE( pixview ${SOURCES} )
ADD_DEPENDENCIES(pixview data)
QT5_USE_MODULES( pixview Core Gui Widgets Gui Quick Qml Script )
IF (WIN32)
TARGET_LINK_LIBRARIES( pixview
-Wl,--start-group
${Qt5Widgets_LIBRARIES}
${Qt5Gui_LIBRARIES}
${Qt5Qml_LIBRARIES}
${Qt5Quick_LIBRARIES}
pthread
stdc++
-Wl,--end-group
)
ELSEIF (APPLE)
TARGET_LINK_LIBRARIES( pixview
${Qt5Widgets_LIBRARIES}
${Qt5Gui_LIBRARIES}
${Qt5Qml_LIBRARIES}
${Qt5Quick_LIBRARIES}
stdc++
pthread
c)
ELSE()
TARGET_LINK_LIBRARIES( pixview
-Wl,--start-group
-L/usr/local/lib
${Qt5Widgets_LIBRARIES}
${Qt5Gui_LIBRARIES}
${Qt5Qml_LIBRARIES}
${Qt5Quick_LIBRARIES}
pthread
stdc++
c
-Wl,--end-group
)
ENDIF()
# Copy QML files to the build directory
ADD_CUSTOM_TARGET( pixview_qml ALL
DEPENDS pixview
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/qml ${CMAKE_CURRENT_BINARY_DIR}/qml
COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/pxm ${CMAKE_CURRENT_BINARY_DIR}/pxm
)
IF( NOT WITHOUT_TOOLS )
ADD_SUBDIRECTORY(tools/mpx2pxm)
ENDIF()