apps_cmake.txt 2.93 KB
Newer Older
Sylvain Thery's avatar
Sylvain Thery committed
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
#
# usage: insert line:
#	include(${CGoGN_ROOT_DIR}/build/apps_cmake.txt)
# just after defining CGoGN_ROOT_DIR
# 
# Example:
# ========
#	cmake_minimum_required(VERSION 2.8)
#	project(Pipo)
#
#	set(QT_USE_QTCORE TRUE)
#	set(QT_USE_QTOPENGL TRUE)
#	find_package(Qt REQUIRED)
#	include(${QT_USE_FILE})
#
#	set(CMAKE_BUILD_TYPE Release CACHE STRING "Release or Debug")
#	set(CGoGN_ROOT_DIR ${CMAKE_SOURCE_DIR}/../../CGoGN CACHE STRING "CGoGN root dir")
#	include(${CGoGN_ROOT_DIR}/apps_cmake.txt)
#
#	include_directories( ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} )
#	QT4_WRAP_UI( pipo_ui pipo.ui )
#	QT4_WRAP_CPP( pipo_moc pipo.h )
#	add_executable( pipo pipo.cpp ${pipo_ui} ${pipo_moc} )
#	target_link_libraries( pipo ${CGoGN_LIBS}  ${CGoGN_EXT_LIBS} )
#


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


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

checkCpp11Support()
setBuildType()

IF (WIN32)
	SET ( CMAKE_CONFIGURATION_TYPES Release Debug)
	SET ( CMAKE_CONFIGURATION_TYPES "${CMAKE_CONFIGURATION_TYPES}" CACHE STRING "Only Release or Debug" FORCE)
	SET ( CGoGN_WITH_QTCREATOR OFF CACHE BOOL "use QtCreator to compile (instead of Visual Studio" )
ENDIF ()
42 43


Sylvain Thery's avatar
Sylvain Thery committed
44 45 46
IF(WIN32)
	SET ( CMAKE_PREFIX_PATH ${CGoGN_ROOT_DIR}/windows_dependencies CACHE STRING "path to dependencies" )
ENDIF(WIN32)
Sylvain Thery's avatar
Sylvain Thery committed
47

Sylvain Thery's avatar
Sylvain Thery committed
48 49 50 51 52 53 54 55 56 57 58 59 60 61
#
# COMPILER FLAGS
#
IF(NOT WIN32)
	SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -fPIC -std=c++11")
	SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Woverride-init -fPIC")
	# remove the 60000+ "no unused local typedefs" warnings with GCC4.8+
	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()
	if(APPLE)
		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-overloaded-virtual")
	endif()
Sylvain Thery's avatar
Sylvain Thery committed
62 63 64
ENDIF()


Sylvain Thery's avatar
Sylvain Thery committed
65 66 67 68 69 70 71
IF(WIN32 AND (NOT CGoGN_WITH_QTCREATOR))
	link_directories( ${CGoGN_ROOT_DIR}/lib/${ConfigurationName}  ${Boost_LIBRARY_DIRS})
	SET(EXECUTABLE_OUTPUT_PATH ${CGoGN_ROOT_DIR}/bin/) # Release/Debug added automatically by visual
ELSE ()
	link_directories( ${CGoGN_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE})
	SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE})
ENDIF ()
Sylvain Thery's avatar
Sylvain Thery committed
72

73

Sylvain Thery's avatar
Sylvain Thery committed
74 75 76

# CGoGN compiled in one or several libs
file(STRINGS ${CGoGN_SRC_DIR}/include/cgogn_onelib.h ONELIB_STR)
77
IF (ONELIB_STR EQUAL 1)
Sylvain Thery's avatar
Sylvain Thery committed
78 79
	SET(CGoGN_LIBS cgogn)
ELSE()
Sylvain Thery's avatar
Sylvain Thery committed
80
	SET(CGoGN_LIBS topology algo container utils)
Sylvain Thery's avatar
Sylvain Thery committed
81
ENDIF()
82

Sylvain Thery's avatar
Sylvain Thery committed
83 84 85
# definitions from CGoGN
FILE(STRINGS ${CGoGN_SRC_DIR}/include/cgogn_defs.h CGoGN_DEFS)
ADD_DEFINITIONS(${CGoGN_DEFS})
Sylvain Thery's avatar
Sylvain Thery committed
86

Sylvain Thery's avatar
Sylvain Thery committed
87 88
# includes from CGoGN
FILE(STRINGS ${CGoGN_SRC_DIR}/include/cgogn_ext_includes.h CGoGN_EXT_INCLUDES)
Sylvain Thery's avatar
Sylvain Thery committed
89

Sylvain Thery's avatar
Sylvain Thery committed
90 91
# libs from CGoGN
FILE(STRINGS ${CGoGN_SRC_DIR}/include/cgogn_ext_libs.h CGoGN_EXT_LIBS)
92

93

Sylvain Thery's avatar
Sylvain Thery committed
94 95 96
include_directories(
        ${CGoGN_SRC_DIR}/include
        ${CGoGN_EXT_INCLUDES})
97

Sylvain Thery's avatar
Sylvain Thery committed
98
#for compatibility
Sylvain Thery's avatar
Sylvain Thery committed
99

Sylvain Thery's avatar
Sylvain Thery committed
100 101
SET (COMMON_INCLUDES ${CGoGN_EXT_INCLUDES})
SET (COMMON_LIBS ${CGoGN_EXT_LIBS})
Sylvain Thery's avatar
Sylvain Thery committed
102

103