-
Notifications
You must be signed in to change notification settings - Fork 61
/
Copy pathCMakeLists.txt
111 lines (87 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
CMAKE_MINIMUM_REQUIRED( VERSION 2.8.11 )
PROJECT( QtOSG )
if( NOT MSVC )
SET( CMAKE_CXX_FLAGS "-std=c++11 -Wall -pedantic -Wno-long-long" )
ENDIF()
SET( CMAKE_INCLUDE_CURRENT_DIR ON )
SET( CMAKE_AUTOMOC ON )
# QT5 Handling - sample under OSX : cmake .. -DQT5_DIR=/usr/local/Cellar/qt/5.10.1
IF( DEFINED ENV{QT5_DIR} )
SET( QT5_DIR $ENV{QT5_DIR} )
ENDIF()
SET( CMAKE_PREFIX_PATH ${CMAKE_PREFIX_PATH} ${QT5_DIR} )
FIND_PACKAGE( Qt5Core )
FIND_PACKAGE( Qt5Gui )
FIND_PACKAGE( Qt5OpenGL )
FIND_PACKAGE( OpenSceneGraph REQUIRED COMPONENTS osgDB osgGA osgUtil osgViewer )
INCLUDE_DIRECTORIES( ${OPENSCENEGRAPH_INCLUDE_DIRS} )
SET( WITH_PICK_HANDLER ON CACHE BOOL "Build with pick handler support" )
SET( WITH_SELECTION_PROCESSING ON CACHE BOOL "Build with selection processing support" )
SET( SOURCES
MainWindow.cpp
OSGWidget.cpp
PickHandler.cpp
QtOSG.cpp
)
ADD_EXECUTABLE( qtosg ${SOURCES} )
IF( WITH_PICK_HANDLER )
MESSAGE( STATUS "Building with pick handler support" )
SET_PROPERTY(
TARGET qtosg
APPEND PROPERTY COMPILE_DEFINITIONS WITH_PICK_HANDLER
)
ENDIF()
IF( WITH_SELECTION_PROCESSING )
MESSAGE( STATUS "Building with selection processing support" )
SET_PROPERTY(
TARGET qtosg
APPEND PROPERTY COMPILE_DEFINITIONS WITH_SELECTION_PROCESSING
)
ENDIF()
TARGET_LINK_LIBRARIES( qtosg
${OPENSCENEGRAPH_LIBRARIES}
Qt5::Core
Qt5::Gui
Qt5::OpenGL
)
IF( MSVC )
SET( QT_PLUGINS_DIR "${QT5_DIR}/plugins" )
######################################################################
# Copy Qt plugins to 'Debug & Release' directories & configure qt.conf file
######################################################################
fILE( GLOB qtplugin_dirs RELATIVE
"${QT_PLUGINS_DIR}"
"${QT_PLUGINS_DIR}/imageformats*"
"${QT_PLUGINS_DIR}/platforms*"
)
FILE( REMOVE_RECURSE
"${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_OUTPUT_PATH}/Debug/QtPlugins"
)
FILE( REMOVE_RECURSE
"${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_OUTPUT_PATH}/Release/QtPlugins"
)
FILE( MAKE_DIRECTORY
"${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_OUTPUT_PATH}/Debug/QtPlugins"
)
FILE( MAKE_DIRECTORY
"${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_OUTPUT_PATH}/Release/QtPlugins"
)
FOREACH( qtplugin ${qtplugin_dirs} )
FILE( COPY "${QT_PLUGINS_DIR}/${qtplugin}"
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_OUTPUT_PATH}/Debug/QtPlugins"
)
FILE( COPY "${QT_PLUGINS_DIR}/${qtplugin}"
DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_OUTPUT_PATH}/Release/QtPlugins"
)
ENDFOREACH()
FILE( WRITE
"${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_OUTPUT_PATH}/Debug/qt.conf"
"[Paths]\nPlugins = QtPlugins"
)
FILE( WRITE
"${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_OUTPUT_PATH}/Release/qt.conf"
"[Paths]\nPlugins = QtPlugins"
)
ENDIF()
INSTALL( TARGETS qtosg RUNTIME DESTINATION bin )
INSTALL( PROGRAMS qtosg.desktop DESTINATION share/applications )