1 CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
13 FOREACH(policy ${policies})
15 CMAKE_POLICY(SET ${policy} NEW)
16 ENDIF(POLICY ${policy})
23 PROJECT(FrontAlgorithms)
24 SET(prj_MAJOR_VERSION "0")
25 SET(prj_MINOR_VERSION "0")
26 SET(prj_RELEASE_VERSION "1")
29 "${prj_MAJOR_VERSION}.${prj_MINOR_VERSION}.${prj_RELEASE_VERSION}"
36 OPTION(BUILD_EXAMPLES "Build examples" OFF)
37 OPTION(BUILD_SHARED_LIBS "Build shared libs" OFF)
38 OPTION(BUILD_PLUGINS "Build plugins" OFF)
42 ELSE(BUILD_SHARED_LIBS)
44 ENDIF(BUILD_SHARED_LIBS)
50 # NOTE: It seems that by default on Visual Studio Compiler supports c++11,
51 # so it only need to be test on other O.S.
53 INCLUDE(CheckCXXCompilerFlag)
54 CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
55 CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
56 IF(COMPILER_SUPPORTS_CXX11)
57 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
58 ELSEIF(COMPILER_SUPPORTS_CXX0X)
59 SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
61 MESSAGE(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.")
65 # Prepare header to build shared libs (windows)
66 INCLUDE(GenerateExportHeader)
69 FIND_PACKAGE(cpPlugins REQUIRED)
71 ## ================================================
72 ## = Do not allow to build inside the source tree =
73 ## ================================================
75 IF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
76 MESSAGE(FATAL_ERROR "Building in the source tree is not allowed")
77 ENDIF(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
79 ## =====================================
80 ## = Where to put executables and libs =
81 ## =====================================
83 SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
84 SET(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
86 CMAKE_BACKWARDS_COMPATIBILITY
87 EXECUTABLE_OUTPUT_PATH
91 ## ==============================
92 ## = Subdirs containing headers =
93 ## ==============================
96 ${PROJECT_SOURCE_DIR}/lib
97 ${PROJECT_BINARY_DIR}/lib
100 ## ===========================
101 ## = Subdirs containing code =
102 ## ===========================