# Benoit Scherrer, 2010 CRL, Harvard Medical School\r
# Copyright (c) 2008-2009 Children's Hospital Boston \r
#==============================================================================\r
-cmake_minimum_required (VERSION 2.6)\r
+cmake_minimum_required (VERSION 2.8.5)\r
\r
if (NOT DEFINED CMAKE_BUILD_TYPE)\r
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type")\r
set (NLOPT_SUFFIX _cxx)\r
endif ()\r
\r
-if (WITH_CXX OR BUILD_PYTHON)\r
+if (WITH_CXX OR BUILD_PYTHON OR BUILD_GUILE OR BUILD_OCTAVE)\r
enable_language (CXX)\r
endif ()\r
\r
+include (GNUInstallDirs)\r
\r
# Offer the user the choice of overriding the installation directories\r
-set (INSTALL_LIB_DIR lib${LIB_SUFFIX} CACHE PATH "Installation directory for libraries")\r
-set (INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables")\r
-set (INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files")\r
-set (INSTALL_DATA_DIR share/nlopt CACHE PATH "Installation directory for data files")\r
+set (INSTALL_LIB_DIR ${CMAKE_INSTALL_LIBDIR} CACHE PATH "Installation directory for libraries")\r
+set (INSTALL_BIN_DIR ${CMAKE_INSTALL_BINDIR} CACHE PATH "Installation directory for executables")\r
+set (INSTALL_INCLUDE_DIR ${CMAKE_INSTALL_INCLUDEDIR} CACHE PATH "Installation directory for header files")\r
+set (INSTALL_DATA_DIR ${CMAKE_INSTALL_DATADIR}/nlopt CACHE PATH "Installation directory for data files")\r
+set (INSTALL_MAN_DIR ${CMAKE_INSTALL_MANDIR} CACHE PATH "Installation directory for man documentation")\r
set (INSTALL_CMAKE_DIR ${INSTALL_LIB_DIR}/cmake/nlopt CACHE PATH "Installation directory for cmake config files")\r
\r
# Make relative paths absolute (needed later on)\r
include (CheckFunctionExists)\r
include (CheckTypeSize)\r
include (CheckCCompilerFlag)\r
+include (CheckCXXSymbolExists)\r
+include (CheckCXXCompilerFlag)\r
\r
#==============================================================================\r
# COMPILATION CHECKINGS and CONFIGURATION GENERATION\r
endforeach()\r
endif ()\r
\r
+if (WITH_CXX OR BUILD_PYTHON OR BUILD_GUILE OR BUILD_OCTAVE)\r
+ check_cxx_symbol_exists (_LIBCPP_VERSION string SYSTEM_HAS_LIBCPP)\r
+ if (SYSTEM_HAS_LIBCPP)\r
+ check_cxx_compiler_flag ("-std=c++11" SUPPORTS_STDCXX11)\r
+ if (SUPPORTS_STDCXX11)\r
+ set (CMAKE_CXX_FLAGS "-std=c++11 ${CMAKE_CXX_FLAGS}")\r
+ endif ()\r
+ endif ()\r
+endif ()\r
+\r
#==============================================================================\r
# version\r
#==============================================================================\r
message (STATUS "NLopt version ${NLOPT_VERSION_STRING}")\r
\r
#==============================================================================\r
-# CREATE config.h\r
+# CREATE nlopt_config.h\r
#==============================================================================\r
\r
-configure_file (${CMAKE_CURRENT_SOURCE_DIR}/config.cmake.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h IMMEDIATE)\r
+configure_file (${CMAKE_CURRENT_SOURCE_DIR}/nlopt_config.h.in ${CMAKE_CURRENT_BINARY_DIR}/nlopt_config.h IMMEDIATE)\r
\r
# pkgconfig file\r
if (UNIX OR MINGW)\r
add_definitions (-DNLOPT_DLL_EXPORT)\r
endif ()\r
\r
-install (FILES ${NLOPT_HEADERS} DESTINATION include)\r
+install (FILES ${NLOPT_HEADERS} DESTINATION ${INSTALL_INCLUDE_DIR})\r
\r
set (nlopt_lib nlopt${NLOPT_SUFFIX})\r
add_library (${nlopt_lib} ${NLOPT_SOURCES})\r
find_package (NumPy)\r
endif ()\r
\r
-if (PYTHONINTERP_FOUND)\r
+if (NOT DEFINED INSTALL_PYTHON_DIR AND PYTHONINTERP_FOUND)\r
execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "from distutils import sysconfig; print(sysconfig.get_python_lib(plat_specific=True, prefix='${CMAKE_INSTALL_PREFIX}'))"\r
OUTPUT_VARIABLE _ABS_PYTHON_MODULE_PATH\r
OUTPUT_STRIP_TRAILING_WHITESPACE )\r
get_filename_component (_ABS_PYTHON_MODULE_PATH ${_ABS_PYTHON_MODULE_PATH} ABSOLUTE)\r
file (RELATIVE_PATH _REL_PYTHON_MODULE_PATH ${CMAKE_INSTALL_PREFIX} ${_ABS_PYTHON_MODULE_PATH})\r
\r
- set (PYTHON_MODULE_PATH ${_REL_PYTHON_MODULE_PATH})\r
+ set (INSTALL_PYTHON_DIR ${_REL_PYTHON_MODULE_PATH})\r
\r
endif ()\r
\r