IF (POLICY CMP0011)
CMAKE_POLICY (SET CMP0011 NEW)
ENDIF ()
IF (POLICY CMP0063)
CMAKE_POLICY (SET CMP0063 NEW)
ENDIF ()
IF (POLICY CMP0018)
CMAKE_POLICY (SET CMP0018 NEW)
ENDIF ()
SET (CMAKE_C_VISIBILITY_PRESET hidden)
SET (CMAKE_CXX_VISIBILITY_PRESET hidden)
SET (CMAKE_POSITION_INDEPENDENT_CODE ON)
SET (CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) # General module search path
SET (INCLUDE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/include) # General include output path
SET (LIBRARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/lib) # General library output path
SET (BINARY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/bin) # General binary output path
SET (3RDPARTY_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/output/3rdparty) # General 3rdparty output path
# For all outputs directories
# C.f. http://stackoverflow.com/questions/7747857/in-cmake-how-do-i-work-around-the-debug-and-release-directories-visual-studio-2
SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}")
SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}")
SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${LIBRARY_OUTPUT_PATH}")
FOREACH (OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
STRING( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG )
SET ( CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} "${LIBRARY_OUTPUT_PATH}")
SET ( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} "${LIBRARY_OUTPUT_PATH}")
SET ( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} "${LIBRARY_OUTPUT_PATH}")
ENDFOREACH (OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES)
MESSAGE(STATUS "================================")
MESSAGE(STATUS "Global setup:")
MESSAGE(STATUS " CMAKE_SYSTEM: ${CMAKE_SYSTEM}")
MESSAGE(STATUS " CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}")
MESSAGE(STATUS " CMAKE_CFG_INTDIR: ${CMAKE_CFG_INTDIR}")
MESSAGE(STATUS " CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
MESSAGE(STATUS " CMAKE_C_COMPILER: ${CMAKE_C_COMPILER}")
MESSAGE(STATUS " CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}")
MESSAGE(STATUS " CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}")
MESSAGE(STATUS " CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
MESSAGE(STATUS " CMAKE_LINKER: ${CMAKE_LINKER}")
MESSAGE(STATUS " CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}")
MESSAGE(STATUS " CMAKE_AR: ${CMAKE_AR}")
MESSAGE(STATUS " CMAKE_RANLIB: ${CMAKE_RANLIB}")
MESSAGE(STATUS " CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}")
MESSAGE(STATUS " CMAKE_SOURCE_DIR: ${CMAKE_SOURCE_DIR}")
MESSAGE(STATUS " CMAKE_MODULE_PATH: ${CMAKE_MODULE_PATH}")
MESSAGE(STATUS " CMAKE_ARCHIVE_OUTPUT_DIRECTORY: ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}")
MESSAGE(STATUS " CMAKE_LIBRARY_OUTPUT_DIRECTORY: ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}")
MESSAGE(STATUS " CMAKE_RUNTIME_OUTPUT_DIRECTORY: ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
MESSAGE(STATUS "================================")