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

project(SCHNApps)

5

6
SET( CGoGN_SLOT_DEBUG_MODE OFF CACHE BOOL "build with slot debugging mode" )
7
SET(CGoGN_ROOT_DIR ${CMAKE_SOURCE_DIR}/.. CACHE STRING "CGoGN root dir")
Sylvain Thery's avatar
Sylvain Thery committed
8
9
10
11
IF(WIN32)
	SET ( CMAKE_PREFIX_PATH ${CGoGN_ROOT_DIR}/windows_dependencies CACHE STRING "path to dependencies" )
ENDIF(WIN32)

12
SET(CMAKE_MODULE_PATH ${CGoGN_ROOT_DIR}/cmake_modules/)
13
SET (CGoGN_SRC_DIR ${CGoGN_ROOT_DIR}/CGoGN)
14

15
16
17
INCLUDE(${CGoGN_ROOT_DIR}/cmake_modules/functions.cmake)

setBuildType()
18

Sylvain Thery's avatar
Sylvain Thery committed
19
20
21
22
SET(SCHNApps_ROOT_DIR ${CGoGN_ROOT_DIR}/SCHNApps)
IF(WIN32)
	IF (CGoGN_WITH_QTCREATOR)
		SET(LIBRARY_OUTPUT_PATH ${CGoGN_ROOT_DIR}/bin/${CMAKE_BUILD_TYPE})
Sylvain Thery's avatar
Sylvain Thery committed
23
24
		SET(EXECUTABLE_OUTPUT_PATH ${CGoGN_ROOT_DIR}/bin/${CMAKE_BUILD_TYPE})
		link_directories( ${CGoGN_ROOT_DIR}/bin/${CMAKE_BUILD_TYPE} )
Sylvain Thery's avatar
Sylvain Thery committed
25
26
27
	ELSE()
		SET(LIBRARY_OUTPUT_PATH ${CGoGN_ROOT_DIR}/bin/)
		SET(EXECUTABLE_OUTPUT_PATH ${CGoGN_ROOT_DIR}/bin)
Sylvain Thery's avatar
Sylvain Thery committed
28
		link_directories( ${CGoGN_ROOT_DIR}/bin/${ConfigurationName} )
Sylvain Thery's avatar
Sylvain Thery committed
29
30
31
32
33
34
35
36
37
38
39
	ENDIF()
ELSE()
	SET(LIBRARY_OUTPUT_PATH ${CGoGN_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE})
	link_directories( ${CGoGN_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE} )
ENDIF()



# PythonQt third-party dependency
ADD_SUBDIRECTORY(${CGoGN_ROOT_DIR}/ThirdParty/PythonQt ThirdParty_PythonQt)

40
41
42
43
44

find_package(OpenGL REQUIRED)
find_package(ZLIB REQUIRED)
find_package(GLEW REQUIRED)
find_package(Qt4 REQUIRED)
45
#find_package(QGLViewer REQUIRED)
46
find_package(PythonLibs 2.7 REQUIRED)
Sylvain Thery's avatar
Sylvain Thery committed
47
#find_package(SuiteSparse REQUIRED)
48
#find_package(SuperLU REQUIRED)
49

50

51
52
add_definitions(-DWITH_QT)

53
SET( QT_USE_QTOPENGL TRUE )
Pierre Kraemer's avatar
Pierre Kraemer committed
54
SET( QT_USE_QTXML TRUE )
55
56
57
SET( QT_USE_QTDESIGNER TRUE )
SET( QT_USE_QTGUI TRUE )
SET( QT_USE_QTPLUGIN TRUE )
58
SET( QT_USE_QTSVG TRUE )
Pierre Kraemer's avatar
Pierre Kraemer committed
59

60
INCLUDE(${QT_USE_FILE})
61
#ADD_DEFINITIONS(${QT_DEFINITIONS})
62

Sylvain Thery's avatar
Sylvain Thery committed
63

64

Sylvain Thery's avatar
Sylvain Thery committed
65
# CGoGN compiled in one or several libs
66
file(STRINGS ${CGoGN_SRC_DIR}/include/cgogn_onelib.h ONELIB_STR)
67
IF (ONELIB_STR EQUAL 1)
Sylvain Thery's avatar
Sylvain Thery committed
68
69
70
71
	SET(CGoGN_LIBS cgogn)
ELSE()
	SET(CGoGN_LIBS topology algo container utils)
ENDIF()
72

73
74
# definitions from CGoGN
FILE(STRINGS ${CGoGN_SRC_DIR}/include/cgogn_defs.h CGoGN_DEFS)
75
IF(CGoGN_SLOT_DEBUG_MODE)
76
	LIST (APPEND CGoGN_DEFS -DCGoGN_SLOT_DEBUG_MODE=1)
77
ENDIF()
78
ADD_DEFINITIONS(${CGoGN_DEFS})
79

80
81
82
# includes from CGoGN + python
FILE(STRINGS ${CGoGN_SRC_DIR}/include/cgogn_ext_includes.h EXT_INCLUDES)
LIST(APPEND EXT_INCLUDES ${PYTHON_INCLUDE_DIRS})
83

84
85
86
# libs from CGoGN + python + PythonQt
FILE(STRINGS ${CGoGN_SRC_DIR}/include/cgogn_ext_libs.h EXT_LIBS)
LIST(APPEND EXT_LIBS PythonQt ${PYTHON_LIBRARIES})
87
88


Sylvain Thery's avatar
Sylvain Thery committed
89

90

91
if(CMAKE_COMPILER_IS_GNUCXX)
Sylvain Thery's avatar
Sylvain Thery committed
92
93
94
95
96
97
98
99
100
101
102
	LIST(APPEND CMAKE_CXX_FLAGS "-Wno-unused-local-typedefs")
endif()

if(WIN32)
	LIST(APPEND CMAKE_CXX_FLAGS "/W3")
else()
	LIST(APPEND CMAKE_CXX_FLAGS "-Wall -fPIC -std=c++11")
	if(APPLE)
		LIST(APPEND CMAKE_CXX_FLAGS "-Wno-deprecated -Wno-overloaded-virtual")	
	endif()
endif()
103

Pierre Kraemer's avatar
Pierre Kraemer committed
104

Pierre Kraemer's avatar
Pierre Kraemer committed
105

Sylvain Thery's avatar
Sylvain Thery committed
106
INCLUDE_DIRECTORIES(
107
108
	${CGoGN_SRC_DIR}/include
	${CGoGN_ROOT_DIR}/ThirdParty/PythonQt/src/
Sylvain Thery's avatar
Sylvain Thery committed
109
110
	${SCHNApps_ROOT_DIR}/include
	${EXT_INCLUDES}
Sylvain Thery's avatar
Sylvain Thery committed
111
	${CMAKE_CURRENT_BINARY_DIR}/SCHNAppsLib
Sylvain Thery's avatar
Sylvain Thery committed
112
113
)

Sylvain Thery's avatar
Sylvain Thery committed
114
115
ADD_SUBDIRECTORY(${SCHNApps_ROOT_DIR}/Plugins/schnapps/ SCHNAppsLib)

Sylvain Thery's avatar
Sylvain Thery committed
116
ADD_SUBDIRECTORY(${SCHNApps_ROOT_DIR}/Plugins Plugins)
Sylvain Thery's avatar
Sylvain Thery committed
117

Sylvain Thery's avatar
Sylvain Thery committed
118
119
INCLUDE_DIRECTORIES(
	${CMAKE_CURRENT_SOURCE_DIR}
Sylvain Thery's avatar
Sylvain Thery committed
120
121
)

Sylvain Thery's avatar
Sylvain Thery committed
122
123
124
125
126
127

# SCHNApps main application
file(
	GLOB_RECURSE
	SCHNApps_FILES
	${SCHNApps_ROOT_DIR}/src/main.cpp
Sylvain Thery's avatar
Sylvain Thery committed
128
129
130
131
132
133
134
)

ADD_EXECUTABLE( SCHNApps
	${SCHNApps_FILES}
)

TARGET_LINK_LIBRARIES( SCHNApps
Sylvain Thery's avatar
Sylvain Thery committed
135
	SCHNAppsLib
Sylvain Thery's avatar
Sylvain Thery committed
136
137
138
139
	${CGoGN_LIBS}
	${EXT_LIBS}
)

Pierre Kraemer's avatar
Pierre Kraemer committed
140
141
142
IF(IS_DIRECTORY ${SCHNApps_ROOT_DIR}/../../Plugins)
	ADD_SUBDIRECTORY(${SCHNApps_ROOT_DIR}/../../Plugins ExtPlugins)
ENDIF(IS_DIRECTORY ${SCHNApps_ROOT_DIR}/../../Plugins)