Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
85 changes: 27 additions & 58 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
#
# OpenSceneGraph CMake build file
#
CMAKE_MINIMUM_REQUIRED(VERSION 3.5 FATAL_ERROR)

SET(OPENSCENEGRAPH_MAJOR_VERSION 3)
SET(OPENSCENEGRAPH_MINOR_VERSION 6)
SET(OPENSCENEGRAPH_PATCH_VERSION 5)
Expand All @@ -13,27 +15,19 @@ SET(OPENSCENEGRAPH_RELEASE_CANDIDATE 0)
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS TRUE)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)

if(COMMAND cmake_policy)
# Works around warnings libraries linked against that don't
# have absolute paths (e.g. -lpthreads)
cmake_policy(SET CMP0003 NEW)
# Works around warnings libraries linked against that don't
# have absolute paths (e.g. -lpthreads)
cmake_policy(SET CMP0003 NEW)

# Works around warnings about escaped quotes in ADD_DEFINITIONS
# statements.
cmake_policy(SET CMP0005 NEW)
# Works around warnings about escaped quotes in ADD_DEFINITIONS
# statements.
cmake_policy(SET CMP0005 NEW)

# tell CMake to prefer CMake's own CMake modules when available
# only available from cmake-2.8.4
if("${CMAKE_VERSION}" VERSION_GREATER 2.8.3)
cmake_policy(SET CMP0017 NEW)
endif()
cmake_policy(SET CMP0017 NEW)

# INTERPROCEDURAL_OPTIMIZATION is enforced when enabled.
# Allows passing -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
cmake_policy(SET CMP0069 NEW)
endif()
# INTERPROCEDURAL_OPTIMIZATION is enforced when enabled.
# Allows passing -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON
cmake_policy(SET CMP0069 NEW)

IF(APPLE)
# Get OSX version in MAJOR.MINOR format
Expand Down Expand Up @@ -155,6 +149,7 @@ IF(NOT CMAKE_BUILD_TYPE)
SET(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
ENDIF(NOT CMAKE_BUILD_TYPE)

INCLUDE(GNUInstallDirs)

IF(ANDROID)
INCLUDE(OsgAndroidMacroUtils)
Expand Down Expand Up @@ -902,25 +897,8 @@ IF(DEFINED LIB_POSTFIX)
# Use LIB_POSTFIX if defined
SET(OSG_INSTALL_LIBDIR lib${LIB_POSTFIX})
ELSE()
IF(CMAKE_VERSION VERSION_LESS "2.8.5")
IF(UNIX AND NOT WIN32 AND NOT APPLE)
IF(CMAKE_SIZEOF_VOID_P MATCHES "8")
SET(LIB_POSTFIX "64" CACHE STRING "suffix for 32/64 dir placement")
MARK_AS_ADVANCED(LIB_POSTFIX)
ENDIF()
ENDIF()
IF(NOT DEFINED LIB_POSTFIX)
SET(LIB_POSTFIX "")
ENDIF()
SET(OSG_INSTALL_LIBDIR lib${LIB_POSTFIX})
ELSE()
# Use the GNU standard installation directories for CMake >= 2.8.5
INCLUDE(GNUInstallDirs)
SET(OSG_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR})
ENDIF()
ENDIF()
IF(NOT DEFINED LIB_POSTFIX)
SET(LIB_POSTFIX "")
SET(OSG_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR})
SET(LIB_POSTFIX "")
ENDIF()

# Here we apparently do some funky stuff with making the bin/ and lib/
Expand Down Expand Up @@ -952,25 +930,16 @@ 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)

#SET(INSTALL_BINDIR OpenSceneGraph/bin)
#SET(INSTALL_INCDIR OpenSceneGraph/include)
#SET(INSTALL_LIBDIR OpenSceneGraph/lib)
#SET(INSTALL_DOCDIR OpenSceneGraph/doc)
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()

################################################################################
# User Options
Expand Down Expand Up @@ -1222,7 +1191,7 @@ IF(BUILD_DOCUMENTATION)
${PROJECT_BINARY_DIR}/doc/OpenSceneGraphReferenceDocs/osg32-32.png COPYONLY
)
#INSTALL(FILES ${PROJECT_BINARY_DIR}/doc/${PROJECT_NAME}ReferenceDocs-${OPENSCENEGRAPH_VERSION}.chm DESTINATION doc OPTIONAL COMPONENT openscenegraph-doc)
INSTALL(DIRECTORY ${PROJECT_BINARY_DIR}/doc/OpenSceneGraphReferenceDocs DESTINATION doc COMPONENT openscenegraph-doc)
INSTALL(DIRECTORY ${PROJECT_BINARY_DIR}/doc/OpenSceneGraphReferenceDocs DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT openscenegraph-doc)

# now set up openthreads documentation generation
IF(BUILD_REF_DOCS_TAGFILE)
Expand All @@ -1238,7 +1207,7 @@ IF(BUILD_DOCUMENTATION)
${PROJECT_BINARY_DIR}/doc/OpenThreadsReferenceDocs/osg32-32.png COPYONLY
)
#INSTALL(FILES ${PROJECT_BINARY_DIR}/doc/${PROJECT_NAME}ReferenceDocs-${OPENSCENEGRAPH_VERSION}.chm DESTINATION doc OPTIONAL COMPONENT openscenegraph-doc)
INSTALL(DIRECTORY ${PROJECT_BINARY_DIR}/doc/OpenThreadsReferenceDocs DESTINATION doc COMPONENT openthreads-doc)
INSTALL(DIRECTORY ${PROJECT_BINARY_DIR}/doc/OpenThreadsReferenceDocs DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT openthreads-doc)

# Process our other doxyfiles but don't create targets for these
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/doc/Doxyfiles/all_Doxyfile
Expand Down
2 changes: 1 addition & 1 deletion CMakeModules/FindCOLLADA.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ IF(COLLADA_DYNAMIC_LIBRARY OR COLLADA_STATIC_LIBRARY)

IF (COLLADA_INCLUDE_DOMANY_DIR)
SET(COLLADA_DOM_2_4_OR_LATER TRUE)
ELSEIF()
ELSE()
SET(COLLADA_DOM_2_4_OR_LATER FALSE)
ENDIF()

Expand Down
2 changes: 1 addition & 1 deletion CMakeModules/OsgMacroUtils.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -487,7 +487,7 @@ MACRO(SETUP_EXAMPLE EXAMPLE_NAME)
IF(APPLE)
INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION share/OpenSceneGraph/bin BUNDLE DESTINATION share/OpenSceneGraph/bin )
ELSE(APPLE)
INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION share/OpenSceneGraph/bin COMPONENT openscenegraph-examples )
INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION bin COMPONENT openscenegraph-examples )
IF(MSVC)
INSTALL(FILES $<TARGET_PDB_FILE:${TARGET_NAME}> DESTINATION share/OpenSceneGraph/bin COMPONENT openscenegraph-examples)
ENDIF(MSVC)
Expand Down
2 changes: 1 addition & 1 deletion PlatformSpecifics/Android/android.toolchain.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,7 @@

# Modified by Lasse Oorni and Yao Wei Tjong for Urho3D

cmake_minimum_required( VERSION 2.6.3 )
cmake_minimum_required( VERSION 3.5 )

# Urho3D: on Windows Cygwin-based NDK tools may fail in the linking phase with too long command line. Turn on response files to avoid this
if( CMAKE_HOST_WIN32 )
Expand Down
2 changes: 1 addition & 1 deletion examples/osgCMakeExample/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 2.6)
cmake_minimum_required(VERSION 3.5)

SET(PROJECT_NAME osgCMakeExample)

Expand Down
2 changes: 1 addition & 1 deletion examples/osgemscripten/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0 FATAL_ERROR)
CMAKE_MINIMUM_REQUIRED(VERSION 3.5 FATAL_ERROR)

# Path to OpenSceneGraph
SET(OSG_DIR "${CMAKE_SOURCE_DIR}/../..")
Expand Down