Coupure prévue mardi 3 Août au matin pour maintenance du serveur. Nous faisons au mieux pour que celle-ci soit la plus brève possible.

CMakeLists.txt 5.24 KB
Newer Older
Pierre Kraemer's avatar
Pierre Kraemer committed
1
2
3
4
cmake_minimum_required(VERSION 2.8)

project(SCHNApps)

Sylvain Thery's avatar
Sylvain Thery committed
5
6
7
8
9
10
11
IF (NOT (${CMAKE_BUILD_TYPE} MATCHES "Debug|Release"))
	IF (${CMAKE_CURRENT_BINARY_DIR} MATCHES "(.*)Debug|(.*)debug|(.*)DEBUG")
		SET(CMAKE_BUILD_TYPE "Debug")
	ELSE()
		SET(CMAKE_BUILD_TYPE "Release")
	ENDIF()
ENDIF()
12

Sylvain Thery's avatar
Sylvain Thery committed
13
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -fPIC -std=c++11")
14
15
16

SET(CGoGN_ROOT_DIR ${CMAKE_SOURCE_DIR}/.. CACHE STRING "CGoGN root dir")
SET(CMAKE_MODULE_PATH ${CGoGN_ROOT_DIR}/cmake_modules/)
17
SET (CGoGN_SRC_DIR ${CGoGN_ROOT_DIR}/CGoGN)
18

19
SET( SLOT_DEBUG_MODE OFF CACHE BOOL "build with slot debugging mode" )
20
21
SET( USE_OGL_CORE_PROFILE OFF CACHE BOOL "use OpenGL 3.3 core profile (do not work on mac)" )

22

23
24
25
26
27

find_package(OpenGL REQUIRED)
find_package(ZLIB REQUIRED)
find_package(GLEW REQUIRED)
find_package(Qt4 REQUIRED)
28
#find_package(QGLViewer REQUIRED)
29
find_package(PythonLibs 2.7 REQUIRED)
30
find_package(SuiteSparse REQUIRED)
31
#find_package(SuperLU REQUIRED)
32

33

34
35
add_definitions(-DWITH_QT)

36
SET( QT_USE_QTOPENGL TRUE )
Pierre Kraemer's avatar
Pierre Kraemer committed
37
SET( QT_USE_QTXML TRUE )
38
39
40
SET( QT_USE_QTDESIGNER TRUE )
SET( QT_USE_QTGUI TRUE )
SET( QT_USE_QTPLUGIN TRUE )
41
SET( QT_USE_QTSVG TRUE )
Pierre Kraemer's avatar
Pierre Kraemer committed
42

43
44
INCLUDE(${QT_USE_FILE})
ADD_DEFINITIONS(${QT_DEFINITIONS})
Sylvain Thery's avatar
Sylvain Thery committed
45
add_definitions(-DGLM_FORCE_RADIANS)
46

Sylvain Thery's avatar
Sylvain Thery committed
47
48
#MESSAGE HERE FOR MORE EASY READING (MESSAGE AT THE END)
MESSAGE("Build type = " ${CMAKE_BUILD_TYPE} " (for change -DCMAKE_BUILD_TYPE=Release|Debug)" )
49

50
file(STRINGS ${CGoGN_SRC_DIR}/include/cgogn_onelib.h ONELIB_STR)
51
IF (ONELIB_STR EQUAL 1)
Sylvain Thery's avatar
Sylvain Thery committed
52
53
54
55
	SET(CGoGN_LIBS cgogn)
ELSE()
	SET(CGoGN_LIBS topology algo container utils)
ENDIF()
56

57
IF(DEFINED ASSERTON)
58
	add_definitions(-DCGOGN_ASSERT_BOOL=${ASSERTON})
59
ELSE(DEFINED ASSERTON)
60
61
62
	add_definitions(-DCGOGN_ASSERT_BOOL=false)
ENDIF (DEFINED ASSERTON)

63
64
65
IF(SLOT_DEBUG_MODE)
	add_definitions(-DSLOT_DEBUG_MODE=1)
ENDIF()
66

67
68
69
70
IF(USE_OGL_CORE_PROFILE)
	add_definitions(-DUSE_OGL_CORE_PROFILE=1)
ENDIF()

71
72
73
# define includes of external libs 
SET (EXT_INCLUDES 
	${CGoGN_ROOT_DIR}/ThirdParty/include
74
	${CGoGN_ROOT_DIR}/ThirdParty/OpenNL/src
75
76
77
78
	${OPENGL_INCLUDE_DIR}
	${GLEW_INCLUDE_DIRS}
	${ZLIB_INCLUDE_DIRS}
	${QT_INCLUDE_DIR}
79
	${CGoGN_ROOT_DIR}/ThirdParty/libQGLViewer/
80
	${PYTHON_INCLUDE_DIRS}
81
	${SUITESPARSE_INCLUDE_DIRS}
82
	${CGoGN_ROOT_DIR}/ThirdParty/TinyXml2
83
84
85
86
87
)

# define libs for external libs
SET (EXT_LIBS 
	PythonQt
88
	nl
89
	QGLViewer
90
91
92
93
94
	${OPENGL_LIBRARY}
	${GLEW_LIBRARIES}
	${ZLIB_LIBRARIES}
	${QT_LIBRARIES}
	${PYTHON_LIBRARIES}
95
	${SUITESPARSE_LIBRARIES}
96
	tinyxml2
97
98
99
100
101
102
)




# qq definition specifiques pour mac
Sylvain Thery's avatar
Sylvain Thery committed
103
#IF(APPLE)
104
# attention a changer pour chercher la bonne version automatiquement
Sylvain Thery's avatar
Sylvain Thery committed
105
106
107
108
109
110
111
#	SET(CMAKE_OSX_SYSROOT "/Developer/SDKs/MacOSX10.6.sdk" CACHE STRING "developer SDK")
#	SET(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-undefined -Wl,dynamic_lookup")
#	SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DMAC_OSX")
#	SET(CMAKE_OSX_ARCHITECTURES x86_64)
#ENDIF(APPLE)

if(APPLE)
Thery Sylvain's avatar
Thery Sylvain committed
112
	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-overloaded-virtual")	
Sylvain Thery's avatar
Sylvain Thery committed
113
	set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-undefined -Wl,dynamic_lookup")
Sylvain Thery's avatar
Sylvain Thery committed
114
endif()
115

116
117
118
119
if(CMAKE_COMPILER_IS_GNUCXX)
		SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedefs")
		SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-local-typedefs")
endif(CMAKE_COMPILER_IS_GNUCXX)
120

Pierre Kraemer's avatar
Pierre Kraemer committed
121

Pierre Kraemer's avatar
Pierre Kraemer committed
122

123
SET(SCHNApps_ROOT_DIR ${CGoGN_ROOT_DIR}/SCHNApps)
Sylvain Thery's avatar
Sylvain Thery committed
124
125
SET(EXECUTABLE_OUTPUT_PATH ${SCHNApps_ROOT_DIR}/bin/${CMAKE_BUILD_TYPE})
SET(LIBRARY_OUTPUT_PATH ${SCHNApps_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE})
Pierre Kraemer's avatar
Pierre Kraemer committed
126

Sylvain Thery's avatar
Sylvain Thery committed
127
128
129
# for application auto selection of plugin directory
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/plugins_default_directory.h 
\#define\ PLUGINS_DEFAULT_DIRECTORY\ \"${SCHNApps_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE}\" )
130
131
132
133
134
135

file(
	GLOB_RECURSE
	SCHNApps_FILES
	${SCHNApps_ROOT_DIR}/src/*.cpp
	${SCHNApps_ROOT_DIR}/include/*.h
136
	${SCHNApps_ROOT_DIR}/include/*.hpp
137
138
139
140
141
142
143
144
145
146
147
)

file(
	GLOB_RECURSE
	SCHNApps_UI_FILES
	${SCHNApps_ROOT_DIR}/forms/*.ui
)

SET(SCHNApps_QOBJECT_FILES
	${SCHNApps_ROOT_DIR}/include/camera.h
	${SCHNApps_ROOT_DIR}/include/mapHandler.h
148
	${SCHNApps_ROOT_DIR}/include/cellSelector.h
149
	${SCHNApps_ROOT_DIR}/include/plugin.h
Pierre Kraemer's avatar
Pierre Kraemer committed
150
151
	${SCHNApps_ROOT_DIR}/include/plugin_interaction.h
	${SCHNApps_ROOT_DIR}/include/plugin_processing.h
152
	${SCHNApps_ROOT_DIR}/include/view.h
Pierre Kraemer's avatar
Pierre Kraemer committed
153
	${SCHNApps_ROOT_DIR}/include/schnapps.h
154
	${SCHNApps_ROOT_DIR}/include/viewButtonArea.h
Pierre Kraemer's avatar
Pierre Kraemer committed
155
156
157
	${SCHNApps_ROOT_DIR}/include/controlDock_cameraTab.h
	${SCHNApps_ROOT_DIR}/include/controlDock_pluginTab.h
	${SCHNApps_ROOT_DIR}/include/controlDock_mapTab.h
158
	${SCHNApps_ROOT_DIR}/include/colorComboBox.h
Sylvain Thery's avatar
Sylvain Thery committed
159
	${SCHNApps_ROOT_DIR}/include/dialogList.h
160
161
162
163
)



Pierre Kraemer's avatar
Pierre Kraemer committed
164
link_directories( ${CGoGN_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE} )
Sylvain Thery's avatar
Sylvain Thery committed
165
166
167


INCLUDE_DIRECTORIES(
168
169
	${CGoGN_SRC_DIR}/include
	${CGoGN_ROOT_DIR}/ThirdParty/PythonQt/src/
Sylvain Thery's avatar
Sylvain Thery committed
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
	${SCHNApps_ROOT_DIR}/include
	${EXT_INCLUDES}
	${CMAKE_CURRENT_SOURCE_DIR}
	${CMAKE_CURRENT_BINARY_DIR}
)

QT4_WRAP_UI( UIC_FILES
	${SCHNApps_UI_FILES}
)

QT4_WRAP_CPP( MOC_FILES
	${SCHNApps_QOBJECT_FILES}
)

QT4_ADD_RESOURCES( RCC_FILES
	${SCHNApps_ROOT_DIR}/resources/resources.qrc
)

ADD_EXECUTABLE( SCHNApps
	${SCHNApps_FILES}
	${UIC_FILES}
	${MOC_FILES}
	${RCC_FILES}
)

TARGET_LINK_LIBRARIES( SCHNApps
	${CGoGN_LIBS}
	${EXT_LIBS}
198
	pthread
Sylvain Thery's avatar
Sylvain Thery committed
199
200
201
202
203
)


ADD_SUBDIRECTORY(${SCHNApps_ROOT_DIR}/Plugins Plugins)

Pierre Kraemer's avatar
Pierre Kraemer committed
204
205
206
IF(IS_DIRECTORY ${SCHNApps_ROOT_DIR}/../../Plugins)
	ADD_SUBDIRECTORY(${SCHNApps_ROOT_DIR}/../../Plugins ExtPlugins)
ENDIF(IS_DIRECTORY ${SCHNApps_ROOT_DIR}/../../Plugins)