]> Creatis software - FrontAlgorithms.git/blob - cmake/Definitions.cmake
...
[FrontAlgorithms.git] / cmake / Definitions.cmake
1 ## =========================================================================
2 ## @author Leonardo Florez-Valencia (florez-l@javeriana.edu.co)
3 ## =========================================================================
4
5 ## == If working on a MacOSX, activate the use of RPATH's
6 ## == Furthermore: prepare the type of executables
7 set(EXECUTABLE_TYPE "" CACHE STRING "Executable linking." FORCE)
8 if(APPLE)
9   set(EXECUTABLE_TYPE "MACOSX_BUNDLE" CACHE STRING "Executable linking." FORCE)
10   set(CMAKE_MACOSX_RPATH true CACHE BOOL "Use RPATH's on MacOSX." FORCE)
11   mark_as_advanced(CMAKE_MACOSX_RPATH)
12 elseif(WIN32)
13   set(EXECUTABLE_TYPE "WIN32" CACHE STRING "Executable linking." FORCE)
14 endif(APPLE)
15 mark_as_advanced(EXECUTABLE_TYPE)
16
17 ## == Force c++11
18 if(NOT MSVC)
19   include(CheckCXXCompilerFlag)
20   check_cxx_compiler_flag("-std=c++11" COMPILER_SUPPORTS_CXX11)
21   if(COMPILER_SUPPORTS_CXX11)
22     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
23   else(COMPILER_SUPPORTS_CXX11)
24     check_cxx_compiler_flag("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
25     if(COMPILER_SUPPORTS_CXX0X)
26       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
27     else(COMPILER_SUPPORTS_CXX0X)
28       message(
29         FATAL_ERROR
30         "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support."
31         )
32     endif(COMPILER_SUPPORTS_CXX0X)
33   endif(COMPILER_SUPPORTS_CXX11)
34 endif(NOT MSVC)
35
36 ## == Prepare header generator to build shared libs
37 include(GenerateExportHeader)
38
39 ## == Do not allow to build inside the source tree
40 if(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
41   message(FATAL_ERROR "Building in the source tree is not allowed.")
42 endif(PROJECT_BINARY_DIR STREQUAL ${PROJECT_SOURCE_DIR})
43
44 ## == Where to put targets (executables and libs)
45 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
46 set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR})
47 mark_as_advanced(
48   CMAKE_BACKWARDS_COMPATIBILITY
49   EXECUTABLE_OUTPUT_PATH
50   LIBRARY_OUTPUT_PATH
51   )
52
53 ## eof - $RCSfile$