diff --git a/CMakeLists.txt b/CMakeLists.txt index 6858e70..3bddcf2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -421,6 +421,7 @@ CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/src/osg/Version.in" # INSTALL_FILES(/include/osg/ FILES "${OPENSCENEGRAPH_CONFIG_HEADER}") +INCLUDE(MacroOptionalFindPackage) ################################################################################ # Set Version Info resource file @@ -450,30 +451,30 @@ IF(ANDROID) ANDROID_3RD_PARTY() ELSE() # Common to all platforms except android: - FIND_PACKAGE(FreeType) - FIND_PACKAGE(Inventor) - FIND_PACKAGE(Jasper) - FIND_PACKAGE(OpenEXR) - FIND_PACKAGE(COLLADA) - FIND_PACKAGE(FBX) - FIND_PACKAGE(ZLIB) - FIND_PACKAGE(Xine) - FIND_PACKAGE(OpenVRML) - FIND_PACKAGE(Performer) - FIND_PACKAGE(GDAL) - FIND_PACKAGE(CURL) - FIND_PACKAGE(ITK) - FIND_PACKAGE(LibVNCServer) - FIND_PACKAGE(OurDCMTK) - FIND_PACKAGE(OpenAL) - FIND_PACKAGE(FFmpeg) - FIND_PACKAGE(DirectShow) - FIND_PACKAGE(SDL) - FIND_PACKAGE(Poppler-glib) - FIND_PACKAGE(RSVG) - FIND_PACKAGE(GtkGl) - FIND_PACKAGE(DirectInput) - FIND_PACKAGE(NVTT) +MACRO_OPTIONAL_FIND_PACKAGE(FreeType) +MACRO_OPTIONAL_FIND_PACKAGE(Inventor) +MACRO_OPTIONAL_FIND_PACKAGE(Jasper) +MACRO_OPTIONAL_FIND_PACKAGE(OpenEXR) +MACRO_OPTIONAL_FIND_PACKAGE(COLLADA) +MACRO_OPTIONAL_FIND_PACKAGE(FBX) +MACRO_OPTIONAL_FIND_PACKAGE(ZLIB) +MACRO_OPTIONAL_FIND_PACKAGE(Xine) +MACRO_OPTIONAL_FIND_PACKAGE(OpenVRML) +MACRO_OPTIONAL_FIND_PACKAGE(Performer) +MACRO_OPTIONAL_FIND_PACKAGE(GDAL) +MACRO_OPTIONAL_FIND_PACKAGE(CURL) +MACRO_OPTIONAL_FIND_PACKAGE(ITK) +MACRO_OPTIONAL_FIND_PACKAGE(LibVNCServer) +MACRO_OPTIONAL_FIND_PACKAGE(OurDCMTK) +MACRO_OPTIONAL_FIND_PACKAGE(OpenAL) +MACRO_OPTIONAL_FIND_PACKAGE(FFmpeg) +FIND_PACKAGE(DirectShow) +MACRO_OPTIONAL_FIND_PACKAGE(SDL) +MACRO_OPTIONAL_FIND_PACKAGE(Poppler-glib) +MACRO_OPTIONAL_FIND_PACKAGE(RSVG) +MACRO_OPTIONAL_FIND_PACKAGE(GtkGl) +FIND_PACKAGE(DirectInput) +MACRO_OPTIONAL_FIND_PACKAGE(NVTT) ENDIF() # Include macro utilities here @@ -485,17 +486,18 @@ IF(NOT ANDROID) IF (DESIRED_QT_VERSION) IF (DESIRED_QT_VERSION MATCHES 4) - FIND_PACKAGE(Qt4) + MACRO_OPTIONAL_FIND_PACKAGE(Qt4) ELSE() - FIND_PACKAGE(Qt3) + MACRO_OPTIONAL_FIND_PACKAGE(Qt3) ENDIF() + ELSE() - FIND_PACKAGE(Qt4) + MACRO_OPTIONAL_FIND_PACKAGE(Qt4) IF (NOT QT4_FOUND) - FIND_PACKAGE(Qt3) + MACRO_OPTIONAL_FIND_PACKAGE(Qt3) ENDIF() ENDIF() @@ -504,12 +506,12 @@ ENDIF(NOT ANDROID) IF (BUILD_OSG_EXAMPLES AND NOT ANDROID) - FIND_PACKAGE(FLTK) - FIND_PACKAGE(GLUT) - FIND_PACKAGE(FOX) + MACRO_OPTIONAL_FIND_PACKAGE(FLTK) + MACRO_OPTIONAL_FIND_PACKAGE(GLUT) + MACRO_OPTIONAL_FIND_PACKAGE(FOX) SET(wxWidgets_USE_LIBS base core gl net) - FIND_PACKAGE(wxWidgets) + MACRO_OPTIONAL_FIND_PACKAGE(wxWidgets) ENDIF(BUILD_OSG_EXAMPLES AND NOT ANDROID) @@ -530,10 +532,10 @@ ENDIF(BUILD_OSG_EXAMPLES AND NOT ANDROID) # can use Quicktime. IF(NOT ANDROID) IF(NOT APPLE) - FIND_PACKAGE(GIFLIB) - FIND_PACKAGE(JPEG) - FIND_PACKAGE(PNG) - FIND_PACKAGE(TIFF) + MACRO_OPTIONAL_FIND_PACKAGE(GIFLIB) + MACRO_OPTIONAL_FIND_PACKAGE(JPEG) + MACRO_OPTIONAL_FIND_PACKAGE(PNG) + MACRO_OPTIONAL_FIND_PACKAGE(TIFF) # QuickTime is required for OS X, but optional for Windows. IF(WIN32) @@ -884,7 +886,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 ${GENTOO_DOCDIR} COMPONENT openscenegraph-doc) # now set up openthreads documentation generation IF(BUILD_REF_DOCS_TAGFILE) @@ -900,7 +902,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 ${GENTOO_DOCDIR} COMPONENT openthreads-doc) # Process our other doxyfiles but don't create targets for these CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/doc/Doxyfiles/all_Doxyfile diff --git a/CMakeModules/COPYING-CMAKE-SCRIPTS b/CMakeModules/COPYING-CMAKE-SCRIPTS new file mode 100644 index 0000000..4b41776 --- /dev/null +++ b/CMakeModules/COPYING-CMAKE-SCRIPTS @@ -0,0 +1,22 @@ +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/CMakeModules/FindFLTK.cmake b/CMakeModules/FindFLTK.cmake deleted file mode 100644 index e376b78..0000000 --- a/CMakeModules/FindFLTK.cmake +++ /dev/null @@ -1,52 +0,0 @@ -# Locate FLTK -# This module defines -# FLTK_LIBRARY -# FLTK_FOUND, if false, do not try to link to gdal -# FLTK_INCLUDE_DIR, where to find the headers -# -# $FLTK_DIR is an environment variable that would -# correspond to the ./configure --prefix=$FLTK_DIR -# -# Created by Robert Osfield. - -FIND_PATH(FLTK_INCLUDE_DIR Fl/Fl.H Fl/Fl.h - $ENV{FLTK_DIR}/include - $ENV{FLTK_DIR} - ~/Library/Frameworks - /Library/Frameworks - /usr/local/include - /usr/include - /sw/include # Fink - /opt/local/include # DarwinPorts - /opt/csw/include # Blastwave - /opt/include - /usr/freeware/include -) - -MACRO(FIND_FLTK_LIBRARY MYLIBRARY MYLIBRARYNAME) - - FIND_LIBRARY(${MYLIBRARY} - NAMES ${MYLIBRARYNAME} - PATHS - $ENV{FLTK_DIR}/lib - $ENV{FLTK_DIR} - ~/Library/Frameworks - /Library/Frameworks - /usr/local/lib - /usr/lib - /sw/lib - /opt/local/lib - /opt/csw/lib - /opt/lib - /usr/freeware/lib64 - ) - -ENDMACRO(FIND_FLTK_LIBRARY LIBRARY LIBRARYNAME) - -FIND_FLTK_LIBRARY(FLTK_LIBRARY fltk) -FIND_FLTK_LIBRARY(FLTK_GL_LIBRARY fltk_gl) - -SET(FLTK_FOUND "NO") -IF(FLTK_LIBRARY AND FLTK_INCLUDE_DIR) - SET(FLTK_FOUND "YES") -ENDIF(FLTK_LIBRARY AND FLTK_INCLUDE_DIR) diff --git a/CMakeModules/MacroOptionalFindPackage.cmake b/CMakeModules/MacroOptionalFindPackage.cmake new file mode 100644 index 0000000..f09952f --- /dev/null +++ b/CMakeModules/MacroOptionalFindPackage.cmake @@ -0,0 +1,28 @@ +# - MACRO_OPTIONAL_FIND_PACKAGE() combines FIND_PACKAGE() with an OPTION() +# MACRO_OPTIONAL_FIND_PACKAGE( [QUIT] ) +# This macro is a combination of OPTION() and FIND_PACKAGE(), it +# works like FIND_PACKAGE(), but additionally it automatically creates +# an option name WITH_, which can be disabled via the cmake GUI. +# or via -DWITH_=OFF +# The standard _FOUND variables can be used in the same way +# as when using the normal FIND_PACKAGE() + +# Copyright (c) 2006, Alexander Neundorf, +# +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + + +macro (MACRO_OPTIONAL_FIND_PACKAGE _name ) + option(WITH_${_name} "Search for ${_name} package" ON) + if (WITH_${_name}) + find_package(${_name} ${ARGN}) + else (WITH_${_name}) + set(${_name}_FOUND) + set(${_name}_INCLUDE_DIR) + set(${_name}_INCLUDES) + set(${_name}_LIBRARY) + set(${_name}_LIBRARIES) + endif (WITH_${_name}) +endmacro (MACRO_OPTIONAL_FIND_PACKAGE) + diff --git a/CMakeModules/OsgMacroUtils.cmake b/CMakeModules/OsgMacroUtils.cmake index aa607fa..8f3771c 100644 --- a/CMakeModules/OsgMacroUtils.cmake +++ b/CMakeModules/OsgMacroUtils.cmake @@ -445,9 +445,9 @@ MACRO(SETUP_EXAMPLE EXAMPLE_NAME) SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES FOLDER "Examples") IF(APPLE) - INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION share/OpenSceneGraph/bin BUNDLE DESTINATION share/OpenSceneGraph/bin ) + INSTALL(TARGETS ${TARGET_TARGETNAME} RUNTIME DESTINATION bin BUNDLE DESTINATION 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 ) ENDIF(APPLE) ENDMACRO(SETUP_EXAMPLE) diff --git a/examples/osgviewerFLTK/CMakeLists.txt b/examples/osgviewerFLTK/CMakeLists.txt index 43c023b..dd177f0 100644 --- a/examples/osgviewerFLTK/CMakeLists.txt +++ b/examples/osgviewerFLTK/CMakeLists.txt @@ -1,6 +1,6 @@ SET(TARGET_SRC osgviewerFLTK.cpp ) -SET(TARGET_EXTERNAL_LIBRARIES ${FLTK_LIBRARY} ${FLTK_GL_LIBRARY}) +SET(TARGET_EXTERNAL_LIBRARIES ${FLTK_BASE_LIBRARY} ${FLTK_GL_LIBRARY}) INCLUDE_DIRECTORIES(${FLTK_INCLUDE_DIR} )