From 3f91c5d970be45eabc77e373807cc7230d32525d Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Thu, 22 Sep 2016 18:33:35 +0100 Subject: [PATCH] Changed the min CMake version to 2.8.0 --- CMakeLists.txt | 93 +++++++++++--------------------- CMakeModules/OsgMacroUtils.cmake | 9 +--- 2 files changed, 33 insertions(+), 69 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d1a0d56a..d4d2bf0f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,15 +1,7 @@ set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE) set_property(GLOBAL PROPERTY USE_FOLDERS ON) -IF(WIN32) - CMAKE_MINIMUM_REQUIRED(VERSION 2.4.6 FATAL_ERROR) -ELSE(WIN32) - IF(APPLE) - CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0 FATAL_ERROR) - ELSE(APPLE) - CMAKE_MINIMUM_REQUIRED(VERSION 2.4.4 FATAL_ERROR) - ENDIF(APPLE) -ENDIF(WIN32) +CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR) if(COMMAND cmake_policy) # Works around warnings libraries linked against that don't @@ -423,21 +415,15 @@ IF(WIN32 AND NOT ANDROID) ########################################################################################################## IF(MSVC) - IF(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4 AND ${CMAKE_PATCH_VERSION} LESS 7) - MESSAGE("Warning: disabling versioned options 2.4.6 exibits inconsintencies in .pdb naming, at least under MSVC, suggested upgrading at least to 2.4.7") - SET(OSG_MSVC_VERSIONED_DLL OFF) - SET(OSG_MSVC_DEBUG_INCREMENTAL_LINK ON) - ELSE() - OPTION(OSG_MSVC_VERSIONED_DLL "Set to ON to build OpenSceneGraph with versioned dll names" ON) - MARK_AS_ADVANCED(OSG_MSVC_VERSIONED_DLL) - OPTION(OSG_MSVC_DEBUG_INCREMENTAL_LINK "Set to OFF to build OpenSceneGraph without incremental linking in debug (release is off by default)" ON) - MARK_AS_ADVANCED(OSG_MSVC_DEBUG_INCREMENTAL_LINK) - IF(NOT OSG_MSVC_DEBUG_INCREMENTAL_LINK) - SET(CMAKE_MODULE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO") - SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO") - SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO") - ENDIF(NOT OSG_MSVC_DEBUG_INCREMENTAL_LINK) - ENDIF() + OPTION(OSG_MSVC_VERSIONED_DLL "Set to ON to build OpenSceneGraph with versioned dll names" ON) + MARK_AS_ADVANCED(OSG_MSVC_VERSIONED_DLL) + OPTION(OSG_MSVC_DEBUG_INCREMENTAL_LINK "Set to OFF to build OpenSceneGraph without incremental linking in debug (release is off by default)" ON) + MARK_AS_ADVANCED(OSG_MSVC_DEBUG_INCREMENTAL_LINK) + IF(NOT OSG_MSVC_DEBUG_INCREMENTAL_LINK) + SET(CMAKE_MODULE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO") + SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO") + SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "/debug /INCREMENTAL:NO") + ENDIF(NOT OSG_MSVC_DEBUG_INCREMENTAL_LINK) ENDIF(MSVC) ENDIF(WIN32 AND NOT ANDROID) @@ -780,10 +766,6 @@ ELSE() # FIND_PACKAGE(PythonLibs) ENDIF() -IF(CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8) - FIND_PACKAGE(ITK) -ENDIF() - # Include macro utilities here INCLUDE(OsgMacroUtils) @@ -958,45 +940,32 @@ IF(NOT MSVC OR MSVC_IDE) MAKE_DIRECTORY(${OUTPUT_LIBDIR}/${OSG_PLUGINS}) ENDIF(NOT MSVC OR MSVC_IDE) -# On CMake 2.4.x use EXECUTABLE_OUTPUT_PATH and LIBRARY_OUTPUT_PATH and later -# we work around the DLL placement by use of the PREFIX target property hack -# -# On CMake 2.6.x use the newly minted CMAKE_LIBRARY_OUTPUT_DIRECTORY, -# CMAKE_ARCHIVE_OUTPUT_DIRECTORY & CMAKE_RUNTIME_OUTPUT_DIRECTORY -# # CMake >= 2.8.1 changed the output directory algorithm (See doc). # Here we also set per-configuration directories (CMAKE_*_OUTPUT_DIRECTORY_), or else binaries are generated in /bin/Debug and /bin/Release, etc. with MSVC and Xcode. # (Doc reads "multi-configuration generators (VS, Xcode) do NOT append a per-configuration subdirectory to the specified directory"). # The workaround for 2.6.x (adding "../" as an output prefix for each target) seem to have no effect in >=2.8.1, so there is no need to change this. -IF(CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 5) - # If CMake < 2.6.0 - SET(EXECUTABLE_OUTPUT_PATH ${OUTPUT_BINDIR}) - SET(LIBRARY_OUTPUT_PATH ${OUTPUT_LIBDIR}) -ELSE() - # If CMake >= 2.6.0 - SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR}) - SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_BINDIR}) - IF(WIN32) - SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_BINDIR}) - ELSE(WIN32) - SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR}) - ENDIF(WIN32) +SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR}) +SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_BINDIR}) +IF(WIN32) + SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_BINDIR}) +ELSE(WIN32) + SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_LIBDIR}) +ENDIF(WIN32) - # Testing CMAKE_VERSION is possible in >= 2.6.4 only - BUILDER_VERSION_GREATER(2 8 0) - IF(VALID_BUILDER_VERSION) # If CMake >= 2.8.1 - FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES}) # For each configuration (Debug, Release, MinSizeRel... and/or anything the user chooses) - STRING(TOUPPER "${CONF}" CONF) # Go uppercase (DEBUG, RELEASE...) - SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_LIBDIR}") - SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_BINDIR}") - IF(WIN32) - SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_BINDIR}") - ELSE() - SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_LIBDIR}") - ENDIF() - ENDFOREACH() - ENDIF(VALID_BUILDER_VERSION) -ENDIF() +# Testing CMAKE_VERSION is possible in >= 2.6.4 only +BUILDER_VERSION_GREATER(2 8 0) +IF(VALID_BUILDER_VERSION) # If CMake >= 2.8.1 + FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES}) # For each configuration (Debug, Release, MinSizeRel... and/or anything the user chooses) + STRING(TOUPPER "${CONF}" CONF) # Go uppercase (DEBUG, RELEASE...) + SET("CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_LIBDIR}") + SET("CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_BINDIR}") + IF(WIN32) + SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_BINDIR}") + ELSE() + SET("CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF}" "${OUTPUT_LIBDIR}") + ENDIF() + ENDFOREACH() +ENDIF(VALID_BUILDER_VERSION) #SET(INSTALL_BINDIR OpenSceneGraph/bin) #SET(INSTALL_INCDIR OpenSceneGraph/include) diff --git a/CMakeModules/OsgMacroUtils.cmake b/CMakeModules/OsgMacroUtils.cmake index 89113de36..6639462c6 100644 --- a/CMakeModules/OsgMacroUtils.cmake +++ b/CMakeModules/OsgMacroUtils.cmake @@ -27,15 +27,10 @@ MACRO(BUILDER_VERSION_GREATER MAJOR_VER MINOR_VER PATCH_VER) ENDIF() ENDMACRO(BUILDER_VERSION_GREATER MAJOR_VER MINOR_VER PATCH_VER) -# CMAKE24: if CMake version is <2.6.0. -SET(CMAKE24 OFF) -IF(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} LESS 5) - SET(CMAKE24 ON) -ENDIF(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} LESS 5) # CMAKE_VERSION_TEST: Define whether "IF(${CMAKE_VERSION} VERSION_LESS "x.y.z")" can be used or not. -BUILDER_VERSION_GREATER(2 6 3) -SET(CMAKE_VERSION_TEST ${VALID_BUILDER_VERSION}) # >= 2.6.4 +BUILDER_VERSION_GREATER(2 8 0) +SET(CMAKE_VERSION_TEST ${VALID_BUILDER_VERSION}) # >= 2.8.0 SET(VALID_BUILDER_VERSION OFF)