apps_cmake.txt 3.96 KB
Newer Older
Sylvain Thery's avatar
Sylvain Thery committed
1 2
####################################################################################################
# How make a separated application
Sylvain Thery's avatar
Sylvain Thery committed
3
#
Sylvain Thery's avatar
Sylvain Thery committed
4 5 6 7 8 9
# usage:
#	- create a directory
#	- place your sources and CMakeLists.txt inside
#	- insert this line in your CMakeLists.txt
#		include(${CGoGN_ROOT_DIR}/build/apps_cmake.txt)
# 	  just after defining CGoGN_ROOT_DIR
Sylvain Thery's avatar
Sylvain Thery committed
10 11 12 13 14 15 16 17 18 19
# 
# Example:
# ========
#	cmake_minimum_required(VERSION 2.8)
#	project(Pipo)
#
#	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} )
20 21
#	qt_wrap_ui( pipo_ui pipo.ui )
#	qt_wrap_cpp( pipo_moc pipo.h )
Sylvain Thery's avatar
Sylvain Thery committed
22 23
#	add_executable( pipo pipo.cpp ${pipo_ui} ${pipo_moc} )
#	target_link_libraries( pipo ${CGoGN_LIBS}  ${CGoGN_EXT_LIBS} )
24
#	qt_use_cgogn_modules(pipo)
25 26 27 28
#
#	WARNING: to avoid problem of DLL loading, on windows executable are generated in CGoGN/bin/....
#	Take care while choosing executable names
#
Sylvain Thery's avatar
Sylvain Thery committed
29
####################################################################################################
Sylvain Thery's avatar
Sylvain Thery committed
30 31 32 33 34 35 36 37 38 39 40 41 42 43

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 ()
44 45


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

Sylvain Thery's avatar
Sylvain Thery committed
50 51 52 53 54 55 56 57 58 59 60
#
# 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()
61
	IF(APPLE)
Sylvain Thery's avatar
Sylvain Thery committed
62
		set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -Wno-overloaded-virtual")
63
	ENDIF()
64 65 66
ENDIF()


67 68 69 70 71 72 73 74 75 76 77
IF (WIN32)
	link_directories( ${CGoGN_ROOT_DIR}/windows_dependencies/lib/)
	IF((CGoGN_WITH_QTCREATOR))
		link_directories( ${CGoGN_ROOT_DIR}/bin/${CMAKE_BUILD_TYPE})
		SET(EXECUTABLE_OUTPUT_PATH ${CGoGN_ROOT_DIR}/bin/${CMAKE_BUILD_TYPE}) # Release/Debug added automatically by visual
	ELSE()
		link_directories( ${CGoGN_ROOT_DIR}/bin/${ConfigurationName})
		SET(EXECUTABLE_OUTPUT_PATH ${CGoGN_ROOT_DIR}/bin/) # Release/Debug added automatically by visual
	ENDIF()
ELSE()
	link_directories( ${CGoGN_ROOT_DIR}/lib/${CMAKE_BUILD_TYPE} )
78 79 80 81 82
	IF(APPLE)
		SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE}/Contents/MacOS/ )
	ELSE()
		SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE} )
	ENDIF()
83
ENDIF()
Sylvain Thery's avatar
Sylvain Thery committed
84

85 86 87 88 89 90 91 92
# Qt version from CGoGN
file(READ ${CGoGN_SRC_DIR}/include/cgogn_qt.h CGoGN_DESIRED_QT_VERSION)
ADD_DEFINITIONS("-DCGOGN_QT_DESIRED_VERSION=${CGoGN_DESIRED_QT_VERSION}")
IF(CGoGN_DESIRED_QT_VERSION STREQUAL 5)
	include(${CGoGN_ROOT_DIR}/cmake_modules/Qt_5x.cmake)
ELSE()
	include(${CGoGN_ROOT_DIR}/cmake_modules/Qt_4x.cmake)
ENDIF()
Sylvain Thery's avatar
Sylvain Thery committed
93 94 95

# CGoGN compiled in one or several libs
file(STRINGS ${CGoGN_SRC_DIR}/include/cgogn_onelib.h ONELIB_STR)
96
IF (ONELIB_STR EQUAL 1)
97 98
	SET(CGoGN_LIBS cgogn)
ELSE()
Sylvain Thery's avatar
Sylvain Thery committed
99
	SET(CGoGN_LIBS topology algo container utils)
100
ENDIF()
101

Sylvain Thery's avatar
Sylvain Thery committed
102 103 104
# 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
105

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

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

112

Sylvain Thery's avatar
Sylvain Thery committed
113 114 115
include_directories(
        ${CGoGN_SRC_DIR}/include
        ${CGoGN_EXT_INCLUDES})
116

Sylvain Thery's avatar
Sylvain Thery committed
117 118 119
#for compatibility
SET (COMMON_INCLUDES ${CGoGN_EXT_INCLUDES})
SET (COMMON_LIBS ${CGoGN_EXT_LIBS})
120

121