summaryrefslogtreecommitdiff
path: root/dev-games/openscenegraph
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-games/openscenegraph
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-games/openscenegraph')
-rw-r--r--dev-games/openscenegraph/Manifest13
-rw-r--r--dev-games/openscenegraph/files/openscenegraph-3.2.1-cmake.patch276
-rw-r--r--dev-games/openscenegraph/files/openscenegraph-3.2.1-gdal-2.0.patch49
-rw-r--r--dev-games/openscenegraph/files/openscenegraph-3.2.1-giflib5.patch24
-rw-r--r--dev-games/openscenegraph/files/openscenegraph-3.4.0-cmake.patch297
-rw-r--r--dev-games/openscenegraph/files/openscenegraph-3.5.1-ffmpeg-3.patch173
-rw-r--r--dev-games/openscenegraph/files/openscenegraph-3.5.5-cmake.patch281
-rw-r--r--dev-games/openscenegraph/metadata.xml25
-rw-r--r--dev-games/openscenegraph/openscenegraph-3.5.1-r2.ebuild158
-rw-r--r--dev-games/openscenegraph/openscenegraph-3.5.5.ebuild147
10 files changed, 1443 insertions, 0 deletions
diff --git a/dev-games/openscenegraph/Manifest b/dev-games/openscenegraph/Manifest
new file mode 100644
index 000000000000..cf5845322fb8
--- /dev/null
+++ b/dev-games/openscenegraph/Manifest
@@ -0,0 +1,13 @@
+AUX openscenegraph-3.2.1-cmake.patch 11002 SHA256 4a524a4ef4982f837f99fcb876b49373be40e142f6ba39b5758d8983665c0859 SHA512 d9ae3d5ef7840eddb972ead8a3d7cf03c3c78b7857e0c6f7c1893eacae4bd581aac9f85ffe4b17cdbc182686eaf0fac52f5985931c6fbeae2afc21f7e5e9d9eb WHIRLPOOL 40428cf1c80ffbbdd1926bee009c63b1b2eadd6c7336fd4e0c235f2c0b56d9f63d06679a2e8ad282d6e6c1c879e186a95a20c3120046a546675016832d01c64a
+AUX openscenegraph-3.2.1-gdal-2.0.patch 1646 SHA256 1b3009d10f3fc4f63167d964226aa59f29c713612ece91d6d118eecffbdf6594 SHA512 108aeccecdc8b043de6e998c4d8f36af21bc7257250c58010f17b01b4d87839aeb5b80c303501db704121bf3dc4b5462ed8d04bd684dc3355791d2b54753f193 WHIRLPOOL d4afca1e86a71436e02001d795e71ae16e71999094b64c2341e1488b2dcf606a7ff7aa0239659ff9d44a1a8915c506ae66369f929f6844d8ed5806f5b81ef097
+AUX openscenegraph-3.2.1-giflib5.patch 800 SHA256 96dbfe83ae4df13f61f87835a40bd51d6107e16cacec4d36899d2a0593985da5 SHA512 c7a7f7076d00735316b0ca576b30bcf542f89db396180898b35d1361181b224883e15c2e16885c055a12e7bcaefb6c87e2cdfca6a7c367c1deb0e51e2a48a14e WHIRLPOOL c2240e150faca47b3b9116c255e4363f5637cc0ff567270197f70fab88a2e6b6042740e1e38731d13e18282002cd02712b3fc7f1dce4e99dac3908717c9eae0f
+AUX openscenegraph-3.4.0-cmake.patch 11173 SHA256 2bd359ba2d4c40d086fc4d00d60432fc08558950551723bfaac727ccbd235514 SHA512 820167c01dcb03ea014cd711398bc1239d13e30189ad001b07bf7bf1139795b5191110b8b28106688224cd285929b4d4628208616c2b8d291f8a482d131a9d77 WHIRLPOOL 453f065d0a1777d9663b160db06d2aa979468f02e828cb5164b202312b9297aa89cdfbb2e3177ba1c4e23e48cbceffe51f1e0f185aacdcb332d61a3579f64bec
+AUX openscenegraph-3.5.1-ffmpeg-3.patch 7660 SHA256 67b701b2479ffb9af30f5dc213dc173c2c9bd9d5ff1d3e6c890bfc157dbd4101 SHA512 1fbb01748841f62262e52244f4f66feaf397150888fbfbf781baf0b31affb93118257a8377c946f17f42291916f4988309a708d0b8e3156057c655d157cc0275 WHIRLPOOL c01b1a3f5b99d3e1a9f6fa9e95429818052c66507151b7a6cef1e0852a8d4fe5ec2f125e9067f09af4fb7fdb3523030af70e848b3a5380a3b7e75adedd83758b
+AUX openscenegraph-3.5.5-cmake.patch 11029 SHA256 7959b7173964224eedd3582f89c43e3c000b5323b2325d927f7c10dab6d3dc0d SHA512 f5cf409acd5d4e11b7f90fca8775e50cf57ae020fdae74e26d05a984726cb614d33f317c5ec985a198865cd445b3a1e8e2f5843af8ba10c890eb332ed9498504 WHIRLPOOL 8cd7b04e5aa45ef34b70190d3f214cda69b08e02105e851b8d4bc2460141b590e6d749d4d101442a91998a29580d6dacd4f0aa7b44ed30e5e468d84cacd5c87f
+DIST OpenSceneGraph-3.5.1.zip 8353019 SHA256 c409e9095d77faab3db8fe2047d75e7ef348fd9f06ecd8b7629fceb8fe1d24e0 SHA512 5d419cb2e59efaf1e9b2efdb3a28e1deb5bf8b62a1be2ab4fed06e50064c4c4fb9f1332e65e0bfe0c6d8e99fe0cc134f863ba46965eda9546d125fbd22151057 WHIRLPOOL bf57ea2d55c8cb8d45cc392a4bddd603e9835329b074e14a6d4454695da8cdd899160b60a7d7f3c395ac1fd30f4125ef37c3932d876576ebec84a53fea96bbd4
+DIST OpenSceneGraph-3.5.5.tar.gz 5666085 SHA256 f44c96ade3a1d3c547f36504d75633bedbb9b8f6f42dac4fff75166db7d3aadf SHA512 f4a890bfbabab0ed8d50ad50e8f9ae5aa6edd4a73eda30d6c53ad478889608f7c980306a79549ca1e472cdd3df8061af03537c8139fa6446b00aebf47ec26827 WHIRLPOOL 2aa4cd7c375a5cb25cce28dc13c86ea73eae0994540f27b7007ee25655e6119d7f26df306fc70d8d9d5c31de3111d3b8f6b6d1671e47cbc2bd649e6f70a9a475
+EBUILD openscenegraph-3.5.1-r2.ebuild 4024 SHA256 867f0d3007f7be8f459943be8f9f1cdc2aa165485f6ee6812fef5161cc4e5fbc SHA512 dab1177b5a09a4cca5835db4ced957b51d2d428c157f1f62a9d2611a2c9d999d8aa2cc9764c4489c5f51ee97aea6a7bdcd985bc9ce54d5634dc96a8762cfcd7b WHIRLPOOL e006a10337f6560e9d37cfcd353e6237c17db1ee4855b955dd1a3255e12bc1056752172cdb18811d19c9e0feda8bc8f5216c3b5163a0bfff9233babb285aeb6d
+EBUILD openscenegraph-3.5.5.ebuild 3776 SHA256 5d77c307e097a2117f5935f7b9587601223ed67ba0d8cd56a420ab6e6ae9b538 SHA512 230abc2860cfd149d6a02a62ae783ba978b4851857b49b4e1db20b2bba47b3c778a7153de42b97b1bc956b99f4ce656681627302665783b4b540448f43b3909b WHIRLPOOL 6401f6821a067eb5fb6da8c700857c1d60158d3be9f079ebf67d9c0ce7bd7b346ed0815ff98dfe761cbacd3f8fe2e88ba2eedfcc31794423eccd42f1c3b3d80d
+MISC ChangeLog 5556 SHA256 13d1ff717e3cda2e217aaf6ffde0f52e4b9bc93850809cac459a83cb7cf0fbf6 SHA512 02106d52b2aa28c86e1ac1630317b6eae79d70e23e0be44f5f915fe64a801da89378837adf096db7c44dbb67eafb61e8ed528e368648020c6615a624513ad25b WHIRLPOOL 2df145bdeebcc57bcaa39c65dc2d5d304ed2302a42b0de9a607e69fe49a7570f3b2b3b2d58149cf1645b51cddcf9e124f5c2e326f4f0bce3bae02141f83a9b7a
+MISC ChangeLog-2015 10142 SHA256 ff597543138ec3a854e7e8e58ae00893f47806b96524d2e249d05425e8ec76e2 SHA512 f80e9a15257386618583a2e00980a9a64dae800fba58ce58191fc93514613d89c5050cefb2974161c53901cfb9536da4e3caf6df7be2cf2f74d56339d86f1bb3 WHIRLPOOL cdd586cd1de3bb2a4919ca248eef5d3ed81099f222c173f1ae9d60f8b575118b41c1076981987587ca3ddd87fcfa121d43cfc7d901639c9afa4429952e9fe0b3
+MISC metadata.xml 1630 SHA256 9ef55266e2dac2170772d38926c0d668d3b14a2ea4f2d2b7cfa531dff57a4a5b SHA512 92108d0c1b77034cba40b3818afc42cf7aa0a3ba7b545f80f1df78b98d413037ac4328b88aafa1e6c5e32a2a33341bf5e99249bbbd96bd40ccfef78c4092e564 WHIRLPOOL b9d3968f465300d9c11a6cbda4a9fb6216059ea1d507a601c5bcb5c5c06de4867304c22049405f4e2b3698c7ee35254f70427b2044b1258407c80dd82eee19ab
diff --git a/dev-games/openscenegraph/files/openscenegraph-3.2.1-cmake.patch b/dev-games/openscenegraph/files/openscenegraph-3.2.1-cmake.patch
new file mode 100644
index 000000000000..1a85ee8d47ba
--- /dev/null
+++ b/dev-games/openscenegraph/files/openscenegraph-3.2.1-cmake.patch
@@ -0,0 +1,276 @@
+diff -ruN OpenSceneGraph-3.2.1/CMakeLists.txt new/CMakeLists.txt
+--- OpenSceneGraph-3.2.1/CMakeLists.txt 2014-07-04 13:29:02.000000000 +0200
++++ new/CMakeLists.txt 2014-08-20 00:45:08.857600038 +0200
+@@ -486,6 +486,7 @@
+
+ # INSTALL_FILES(/include/osg/ FILES "${OPENSCENEGRAPH_CONFIG_HEADER}")
+
++INCLUDE(MacroOptionalFindPackage)
+
+ ################################################################################
+ # Set Version Info resource file
+@@ -515,37 +516,37 @@
+ 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(GTA)
+- FIND_PACKAGE(CURL)
+- FIND_PACKAGE(LibVNCServer)
+- FIND_PACKAGE(OurDCMTK)
+- FIND_PACKAGE(FFmpeg)
++ 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(GTA)
++ MACRO_OPTIONAL_FIND_PACKAGE(CURL)
++ MACRO_OPTIONAL_FIND_PACKAGE(LibVNCServer)
++ MACRO_OPTIONAL_FIND_PACKAGE(OurDCMTK)
++ MACRO_OPTIONAL_FIND_PACKAGE(FFmpeg)
+ FIND_PACKAGE(DirectShow)
+- FIND_PACKAGE(SDL)
+- FIND_PACKAGE(Poppler-glib)
+- FIND_PACKAGE(RSVG)
+- FIND_PACKAGE(GtkGl)
++ MACRO_OPTIONAL_FIND_PACKAGE(SDL)
++ MACRO_OPTIONAL_FIND_PACKAGE(Poppler-glib)
++ MACRO_OPTIONAL_FIND_PACKAGE(RSVG)
++ MACRO_OPTIONAL_FIND_PACKAGE(GtkGl)
+ FIND_PACKAGE(DirectInput)
+- FIND_PACKAGE(NVTT)
++ MACRO_OPTIONAL_FIND_PACKAGE(NVTT)
+ IF (NOT WIN32)
+- FIND_PACKAGE(Asio)
++ MACRO_OPTIONAL_FIND_PACKAGE(Asio)
+ ENDIF()
+ FIND_PACKAGE(ZeroConf)
+ ENDIF()
+
+ IF(CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
+- FIND_PACKAGE(ITK)
++ MACRO_OPTIONAL_FIND_PACKAGE(ITK)
+ ENDIF()
+
+ # Include macro utilities here
+@@ -604,12 +605,12 @@
+ 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)
+
+@@ -630,10 +631,10 @@
+ # 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)
+ FIND_PACKAGE(QuickTime)
+@@ -689,15 +690,7 @@
+ SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")
+ ENDIF()
+
+-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(LIB_POSTFIX ${LIB_SUFFIX})
+
+ # Here we apparantly do some funky stuff with making the bin/ and lib/
+ # folders which is probably needed to work around a very old CMake bug?
+@@ -1001,7 +994,7 @@
+ ${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)
+@@ -1017,7 +1010,7 @@
+ ${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 -ruN OpenSceneGraph-3.2.1/CMakeModules/COPYING-CMAKE-SCRIPTS new/CMakeModules/COPYING-CMAKE-SCRIPTS
+--- OpenSceneGraph-3.2.1/CMakeModules/COPYING-CMAKE-SCRIPTS 1970-01-01 01:00:00.000000000 +0100
++++ new/CMakeModules/COPYING-CMAKE-SCRIPTS 2014-08-20 00:27:15.371715620 +0200
+@@ -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 -ruN OpenSceneGraph-3.2.1/CMakeModules/FindFLTK.cmake new/CMakeModules/FindFLTK.cmake
+--- OpenSceneGraph-3.2.1/CMakeModules/FindFLTK.cmake 2010-11-11 17:51:46.000000000 +0100
++++ new/CMakeModules/FindFLTK.cmake 2014-08-20 00:29:31.229439251 +0200
+@@ -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 -ruN OpenSceneGraph-3.2.1/CMakeModules/MacroOptionalFindPackage.cmake new/CMakeModules/MacroOptionalFindPackage.cmake
+--- OpenSceneGraph-3.2.1/CMakeModules/MacroOptionalFindPackage.cmake 1970-01-01 01:00:00.000000000 +0100
++++ new/CMakeModules/MacroOptionalFindPackage.cmake 2014-08-20 00:32:02.142858484 +0200
+@@ -0,0 +1,28 @@
++# - MACRO_OPTIONAL_FIND_PACKAGE() combines FIND_PACKAGE() with an OPTION()
++# MACRO_OPTIONAL_FIND_PACKAGE( <name> [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_<name>, which can be disabled via the cmake GUI.
++# or via -DWITH_<name>=OFF
++# The standard <name>_FOUND variables can be used in the same way
++# as when using the normal FIND_PACKAGE()
++
++# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
++#
++# 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 -ruN OpenSceneGraph-3.2.1/CMakeModules/OsgMacroUtils.cmake new/CMakeModules/OsgMacroUtils.cmake
+--- OpenSceneGraph-3.2.1/CMakeModules/OsgMacroUtils.cmake 2014-04-13 18:03:17.000000000 +0200
++++ new/CMakeModules/OsgMacroUtils.cmake 2014-08-20 07:31:10.261828759 +0200
+@@ -453,7 +453,7 @@
+ 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 )
+ ENDIF(APPLE)
+
+ ENDMACRO(SETUP_EXAMPLE)
+diff -ruN OpenSceneGraph-3.2.1/examples/osgviewerFLTK/CMakeLists.txt new/examples/osgviewerFLTK/CMakeLists.txt
+--- OpenSceneGraph-3.2.1/examples/osgviewerFLTK/CMakeLists.txt 2007-06-25 10:35:06.000000000 +0200
++++ new/examples/osgviewerFLTK/CMakeLists.txt 2014-08-20 00:40:48.620538012 +0200
+@@ -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} )
+
diff --git a/dev-games/openscenegraph/files/openscenegraph-3.2.1-gdal-2.0.patch b/dev-games/openscenegraph/files/openscenegraph-3.2.1-gdal-2.0.patch
new file mode 100644
index 000000000000..639cbc958258
--- /dev/null
+++ b/dev-games/openscenegraph/files/openscenegraph-3.2.1-gdal-2.0.patch
@@ -0,0 +1,49 @@
+--- OpenSceneGraph-3.2.1/src/osgPlugins/ogr/ReaderWriterOGR.cpp
++++ OpenSceneGraph-3.2.1/src/osgPlugins/ogr/ReaderWriterOGR.cpp
+@@ -134,11 +134,21 @@
+
+ virtual ReadResult readFile(const std::string& fileName, const osgDB::ReaderWriter::Options* options) const
+ {
++#if GDAL_VERSION_MAJOR < 2
+ if (OGRSFDriverRegistrar::GetRegistrar()->GetDriverCount() == 0)
+ OGRRegisterAll();
++#else
++ if (GDALGetDriverCount() == 0)
++ GDALAllRegister();
++#endif
+
+ // Try to open data source
++#if GDAL_VERSION_MAJOR < 2
+ OGRDataSource* file = OGRSFDriverRegistrar::Open(fileName.c_str());
++#else
++ GDALDataset *file;
++ file = (GDALDataset*) GDALOpenEx( fileName.c_str(), GDAL_OF_VECTOR, NULL, NULL, NULL );
++#endif
+ if (!file)
+ return 0;
+
+@@ -156,6 +166,7 @@
+
+ osg::Group* group = new osg::Group;
+
++#if GDAL_VERSION_MAJOR < 2
+ for (int i = 0; i < file->GetLayerCount(); i++)
+ {
+ osg::Group* node = readLayer(file->GetLayer(i), file->GetName(), useRandomColorByFeature, addGroupPerFeature);
+@@ -163,6 +174,16 @@
+ group->addChild( node );
+ }
+ OGRDataSource::DestroyDataSource( file );
++#else
++ for (int i = 0; i < file->GetLayerCount(); i++)
++ {
++ OGRLayer* layer = (OGRLayer *)GDALDatasetGetLayer(file, i);
++ osg::Group* node = readLayer(layer, layer->GetName(), useRandomColorByFeature, addGroupPerFeature);
++ if (node)
++ group->addChild( node );
++ }
++ GDALClose( file );
++#endif
+ return group;
+ }
+
diff --git a/dev-games/openscenegraph/files/openscenegraph-3.2.1-giflib5.patch b/dev-games/openscenegraph/files/openscenegraph-3.2.1-giflib5.patch
new file mode 100644
index 000000000000..bd604c3c19c1
--- /dev/null
+++ b/dev-games/openscenegraph/files/openscenegraph-3.2.1-giflib5.patch
@@ -0,0 +1,24 @@
+From: Alberto Luaces <aluaces@udc.es>
+Date: Sat, 19 Dec 2015 04:52:52 +0100
+Subject: Compatibility with giflib5.
+
+---
+ OpenSceneGraph/src/osgPlugins/gif/ReaderWriterGIF.cpp | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+Index: git2/OpenSceneGraph/src/osgPlugins/gif/ReaderWriterGIF.cpp
+===================================================================
+--- git2.orig/OpenSceneGraph/src/osgPlugins/gif/ReaderWriterGIF.cpp
++++ git2/OpenSceneGraph/src/osgPlugins/gif/ReaderWriterGIF.cpp
+@@ -561,7 +561,11 @@ GifImageStream** obj)
+ *width_ret = giffile->SWidth;
+ *height_ret = giffile->SHeight;
+ *numComponents_ret = 4;
++#if (GIFLIB_MAJOR >= 5&& !(GIFLIB_MAJOR == 5 && GIFLIB_MINOR == 0))
++ DGifCloseFile(giffile, &Error);
++#else
+ DGifCloseFile(giffile);
++#endif
+ return buffer;
+ }
+
diff --git a/dev-games/openscenegraph/files/openscenegraph-3.4.0-cmake.patch b/dev-games/openscenegraph/files/openscenegraph-3.4.0-cmake.patch
new file mode 100644
index 000000000000..59f971c94386
--- /dev/null
+++ b/dev-games/openscenegraph/files/openscenegraph-3.4.0-cmake.patch
@@ -0,0 +1,297 @@
+--- OpenSceneGraph-3.4.0/CMakeLists.txt
++++ OpenSceneGraph-3.4.0/CMakeLists.txt
+@@ -607,6 +607,7 @@
+
+ # INSTALL_FILES(/include/osg/ FILES "${OPENSCENEGRAPH_CONFIG_HEADER}")
+
++INCLUDE(MacroOptionalFindPackage)
+
+ ################################################################################
+ # Set Version header file
+@@ -651,53 +652,53 @@
+ 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(GTA)
+- FIND_PACKAGE(CURL)
+- FIND_PACKAGE(LibVNCServer)
+- FIND_PACKAGE(OurDCMTK)
+- FIND_PACKAGE(FFmpeg)
+- FIND_PACKAGE(GStreamer COMPONENTS app pbutils)
+- FIND_PACKAGE(GLIB COMPONENTS gobject)
++ 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(GTA)
++ MACRO_OPTIONAL_FIND_PACKAGE(CURL)
++ MACRO_OPTIONAL_FIND_PACKAGE(LibVNCServer)
++ MACRO_OPTIONAL_FIND_PACKAGE(OurDCMTK)
++ MACRO_OPTIONAL_FIND_PACKAGE(FFmpeg)
++ MACRO_OPTIONAL_FIND_PACKAGE(GStreamer COMPONENTS app pbutils)
++ MACRO_OPTIONAL_FIND_PACKAGE(GLIB COMPONENTS gobject)
+ FIND_PACKAGE(DirectShow)
+- FIND_PACKAGE(SDL2)
+- FIND_PACKAGE(SDL)
+- FIND_PACKAGE(Poppler-glib)
+- FIND_PACKAGE(RSVG)
+- FIND_PACKAGE(GtkGl)
++ MACRO_OPTIONAL_FIND_PACKAGE(SDL2)
++ MACRO_OPTIONAL_FIND_PACKAGE(SDL)
++ MACRO_OPTIONAL_FIND_PACKAGE(Poppler-glib)
++ MACRO_OPTIONAL_FIND_PACKAGE(RSVG)
++ MACRO_OPTIONAL_FIND_PACKAGE(GtkGl)
+ FIND_PACKAGE(DirectInput)
+- FIND_PACKAGE(NVTT)
++ MACRO_OPTIONAL_FIND_PACKAGE(NVTT)
+ IF (NOT WIN32)
+- FIND_PACKAGE(Asio)
++ MACRO_OPTIONAL_FIND_PACKAGE(Asio)
+ ENDIF()
+ FIND_PACKAGE(ZeroConf)
+
+- FIND_PACKAGE(LIBLAS)
++ MACRO_OPTIONAL_FIND_PACKAGE(LIBLAS)
+
+ IF (NOT(OSG_USE_LOCAL_LUA_SOURCE))
+- FIND_PACKAGE(Lua52)
++ MACRO_OPTIONAL_FIND_PACKAGE(Lua)
+ IF (NOT (LUA_LIBRARIES AND LUA_INCLUDE_DIR))
+- FIND_PACKAGE(Lua51)
++ MACRO_OPTIONAL_FIND_PACKAGE(Lua51)
+ ENDIF()
+ ENDIF()
+
+ # V8 and Python plugins are tests for linking against these libraries but aren't functionality beyond this.
+- # FIND_PACKAGE(V8)
+- # FIND_PACKAGE(PythonLibs)
++ # MACRO_OPTIONAL_FIND_PACKAGE(V8)
++ # MACRO_OPTIONAL_FIND_PACKAGE(PythonLibs)
+ ENDIF()
+
+ IF(CMAKE_MAJOR_VERSION EQUAL 2 AND CMAKE_MINOR_VERSION LESS 8)
+- FIND_PACKAGE(ITK)
++ MACRO_OPTIONAL_FIND_PACKAGE(ITK)
+ ENDIF()
+
+ # Include macro utilities here
+@@ -763,12 +764,12 @@
+ 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)
+
+@@ -789,10 +790,10 @@
+ # 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)
+ FIND_PACKAGE(QuickTime)
+@@ -848,15 +849,7 @@
+ SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")
+ ENDIF()
+
+-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(LIB_POSTFIX ${LIB_SUFFIX})
+
+ # Here we apparantly do some funky stuff with making the bin/ and lib/
+ # folders which is probably needed to work around a very old CMake bug?
+@@ -1191,7 +1184,7 @@
+ ${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)
+@@ -1207,7 +1200,7 @@
+ ${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
+--- OpenSceneGraph-3.4.0/CMakeModules/COPYING-CMAKE-SCRIPTS
++++ OpenSceneGraph-3.4.0/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.
+--- OpenSceneGraph-3.4.0/CMakeModules/FindFLTK.cmake.rej
++++ OpenSceneGraph-3.4.0/CMakeModules/FindFLTK.cmake.rej
+@@ -0,0 +1,55 @@
++--- CMakeModules/FindFLTK.cmake 2010-11-11 17:51:46.000000000 +0100
+++++ CMakeModules/FindFLTK.cmake 2014-08-20 00:29:31.229439251 +0200
++@@ -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)
+--- OpenSceneGraph-3.4.0/CMakeModules/MacroOptionalFindPackage.cmake
++++ OpenSceneGraph-3.4.0/CMakeModules/MacroOptionalFindPackage.cmake
+@@ -0,0 +1,28 @@
++# - MACRO_OPTIONAL_FIND_PACKAGE() combines FIND_PACKAGE() with an OPTION()
++# MACRO_OPTIONAL_FIND_PACKAGE( <name> [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_<name>, which can be disabled via the cmake GUI.
++# or via -DWITH_<name>=OFF
++# The standard <name>_FOUND variables can be used in the same way
++# as when using the normal FIND_PACKAGE()
++
++# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
++#
++# 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)
++
+--- OpenSceneGraph-3.4.0/CMakeModules/OsgMacroUtils.cmake
++++ OpenSceneGraph-3.4.0/CMakeModules/OsgMacroUtils.cmake
+@@ -456,7 +456,7 @@
+ 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 )
+ ENDIF(APPLE)
+
+ ENDMACRO(SETUP_EXAMPLE)
+--- OpenSceneGraph-3.4.0/examples/osgviewerFLTK/CMakeLists.txt
++++ OpenSceneGraph-3.4.0/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} )
+
diff --git a/dev-games/openscenegraph/files/openscenegraph-3.5.1-ffmpeg-3.patch b/dev-games/openscenegraph/files/openscenegraph-3.5.1-ffmpeg-3.patch
new file mode 100644
index 000000000000..3a2792e1999c
--- /dev/null
+++ b/dev-games/openscenegraph/files/openscenegraph-3.5.1-ffmpeg-3.patch
@@ -0,0 +1,173 @@
+From e85d5743341585c6e6eb1ac693884f80e1fa06ce Mon Sep 17 00:00:00 2001
+From: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
+Date: Wed, 1 Jun 2016 10:32:35 +0100
+Subject: [PATCH] Replace deprecated FFmpeg API to fix build with ffmpeg-3.0.x
+
+---
+ src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp | 3 +-
+ src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp | 48 +++++++++++++---------------
+ src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp | 4 +--
+ src/osgPlugins/ffmpeg/FFmpegParameters.cpp | 2 +-
+ 4 files changed, 26 insertions(+), 31 deletions(-)
+
+diff --git a/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp b/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp
+index 665c68f..636bddd 100644
+--- a/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp
++++ b/src/osgPlugins/ffmpeg/FFmpegDecoderAudio.cpp
+@@ -227,8 +227,7 @@ printf("### CONVERTING from sample format %s TO %s\n\t\tFROM %d TO %d channels\n
+ if (avcodec_open2(m_context, p_codec, NULL) < 0)
+ throw std::runtime_error("avcodec_open() failed");
+
+- m_context->get_buffer = avcodec_default_get_buffer;
+- m_context->release_buffer = avcodec_default_release_buffer;
++ m_context->get_buffer2 = avcodec_default_get_buffer2;
+
+ }
+
+diff --git a/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp b/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp
+index 9375657..083d3db 100644
+--- a/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp
++++ b/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.cpp
+@@ -71,7 +71,7 @@ void FFmpegDecoderVideo::open(AVStream * const stream)
+ findAspectRatio();
+
+ // Find out whether we support Alpha channel
+- m_alpha_channel = (m_context->pix_fmt == PIX_FMT_YUVA420P);
++ m_alpha_channel = (m_context->pix_fmt == AV_PIX_FMT_YUVA420P);
+
+ // Find out the framerate
+ #if LIBAVCODEC_VERSION_MAJOR >= 56
+@@ -95,20 +95,19 @@ void FFmpegDecoderVideo::open(AVStream * const stream)
+ throw std::runtime_error("avcodec_open() failed");
+
+ // Allocate video frame
+- m_frame.reset(avcodec_alloc_frame());
++ m_frame.reset(av_frame_alloc());
+
+ // Allocate converted RGB frame
+- m_frame_rgba.reset(avcodec_alloc_frame());
+- m_buffer_rgba[0].resize(avpicture_get_size(PIX_FMT_RGB24, width(), height()));
++ m_frame_rgba.reset(av_frame_alloc());
++ m_buffer_rgba[0].resize(avpicture_get_size(AV_PIX_FMT_RGB24, width(), height()));
+ m_buffer_rgba[1].resize(m_buffer_rgba[0].size());
+
+ // Assign appropriate parts of the buffer to image planes in m_frame_rgba
+- avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[0])[0], PIX_FMT_RGB24, width(), height());
++ avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[0])[0], AV_PIX_FMT_RGB24, width(), height());
+
+ // Override get_buffer()/release_buffer() from codec context in order to retrieve the PTS of each frame.
+ m_context->opaque = this;
+- m_context->get_buffer = getBuffer;
+- m_context->release_buffer = releaseBuffer;
++ m_context->get_buffer2 = getBuffer;
+ }
+
+
+@@ -267,8 +266,8 @@ int FFmpegDecoderVideo::convert(AVPicture *dst, int dst_pix_fmt, AVPicture *src,
+ #ifdef USE_SWSCALE
+ if (m_swscale_ctx==0)
+ {
+- m_swscale_ctx = sws_getContext(src_width, src_height, (PixelFormat) src_pix_fmt,
+- src_width, src_height, (PixelFormat) dst_pix_fmt,
++ m_swscale_ctx = sws_getContext(src_width, src_height, (AVPixelFormat) src_pix_fmt,
++ src_width, src_height, (AVPixelFormat) dst_pix_fmt,
+ /*SWS_BILINEAR*/ SWS_BICUBIC, NULL, NULL, NULL);
+ }
+
+@@ -315,14 +314,14 @@ void FFmpegDecoderVideo::publishFrame(const double delay, bool audio_disabled)
+ AVPicture * const dst = (AVPicture *) m_frame_rgba.get();
+
+ // Assign appropriate parts of the buffer to image planes in m_frame_rgba
+- avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[m_writeBuffer])[0], PIX_FMT_RGB24, width(), height());
++ avpicture_fill((AVPicture *) (m_frame_rgba).get(), &(m_buffer_rgba[m_writeBuffer])[0], AV_PIX_FMT_RGB24, width(), height());
+
+ // Convert YUVA420p (i.e. YUV420p plus alpha channel) using our own routine
+
+- if (m_context->pix_fmt == PIX_FMT_YUVA420P)
++ if (m_context->pix_fmt == AV_PIX_FMT_YUVA420P)
+ yuva420pToRgba(dst, src, width(), height());
+ else
+- convert(dst, PIX_FMT_RGB24, src, m_context->pix_fmt, width(), height());
++ convert(dst, AV_PIX_FMT_RGB24, src, m_context->pix_fmt, width(), height());
+
+ // Wait 'delay' seconds before publishing the picture.
+ int i_delay = static_cast<int>(delay * 1000000 + 0.5);
+@@ -349,7 +348,7 @@ void FFmpegDecoderVideo::publishFrame(const double delay, bool audio_disabled)
+
+ void FFmpegDecoderVideo::yuva420pToRgba(AVPicture * const dst, AVPicture * const src, int width, int height)
+ {
+- convert(dst, PIX_FMT_RGB24, src, m_context->pix_fmt, width, height);
++ convert(dst, AV_PIX_FMT_RGB24, src, m_context->pix_fmt, width, height);
+
+ const size_t bpp = 4;
+
+@@ -367,31 +366,28 @@ void FFmpegDecoderVideo::yuva420pToRgba(AVPicture * const dst, AVPicture * const
+ }
+ }
+
+-
+-
+-int FFmpegDecoderVideo::getBuffer(AVCodecContext * const context, AVFrame * const picture)
++int FFmpegDecoderVideo::getBuffer(AVCodecContext * const context, AVFrame * const picture, int flags)
+ {
++ AVBufferRef *ref;
+ const FFmpegDecoderVideo * const this_ = reinterpret_cast<const FFmpegDecoderVideo*>(context->opaque);
+
+- const int result = avcodec_default_get_buffer(context, picture);
++ const int result = avcodec_default_get_buffer2(context, picture, flags);
+ int64_t * p_pts = reinterpret_cast<int64_t*>( av_malloc(sizeof(int64_t)) );
+
+ *p_pts = this_->m_packet_pts;
+ picture->opaque = p_pts;
+
++ ref = av_buffer_create((uint8_t *)picture->opaque, sizeof(int64_t), FFmpegDecoderVideo::freeBuffer, picture->buf[0], flags);
++ picture->buf[0] = ref;
++
+ return result;
+ }
+
+-
+-
+-void FFmpegDecoderVideo::releaseBuffer(AVCodecContext * const context, AVFrame * const picture)
++void FFmpegDecoderVideo::freeBuffer(void *opaque, uint8_t *data)
+ {
+- if (picture != 0)
+- av_freep(&picture->opaque);
+-
+- avcodec_default_release_buffer(context, picture);
++ AVBufferRef *ref = (AVBufferRef *)opaque;
++ av_buffer_unref(&ref);
++ av_free(data);
+ }
+
+-
+-
+ } // namespace osgFFmpeg
+diff --git a/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp b/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp
+index 7883b17..778c1a9 100644
+--- a/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp
++++ b/src/osgPlugins/ffmpeg/FFmpegDecoderVideo.hpp
+@@ -94,8 +94,8 @@ class FFmpegDecoderVideo : public OpenThreads::Thread
+ int src_pix_fmt, int src_width, int src_height);
+
+
+- static int getBuffer(AVCodecContext * context, AVFrame * picture);
+- static void releaseBuffer(AVCodecContext * context, AVFrame * picture);
++ static int getBuffer(AVCodecContext * context, AVFrame * picture, int flags);
++ static void freeBuffer(void * opaque, uint8_t *data);
+
+ PacketQueue & m_packets;
+ FFmpegClocks & m_clocks;
+diff --git a/src/osgPlugins/ffmpeg/FFmpegParameters.cpp b/src/osgPlugins/ffmpeg/FFmpegParameters.cpp
+index 288e440..5915ab8 100644
+--- a/src/osgPlugins/ffmpeg/FFmpegParameters.cpp
++++ b/src/osgPlugins/ffmpeg/FFmpegParameters.cpp
+@@ -19,7 +19,7 @@ extern "C"
+ #include <libavutil/pixdesc.h>
+ }
+
+-inline PixelFormat osg_av_get_pix_fmt(const char *name) { return av_get_pix_fmt(name); }
++inline AVPixelFormat osg_av_get_pix_fmt(const char *name) { return av_get_pix_fmt(name); }
+
+
+ namespace osgFFmpeg {
diff --git a/dev-games/openscenegraph/files/openscenegraph-3.5.5-cmake.patch b/dev-games/openscenegraph/files/openscenegraph-3.5.5-cmake.patch
new file mode 100644
index 000000000000..6b8ea7abe60e
--- /dev/null
+++ b/dev-games/openscenegraph/files/openscenegraph-3.5.5-cmake.patch
@@ -0,0 +1,281 @@
+--- OpenSceneGraph-3.4.0/CMakeLists.txt
++++ OpenSceneGraph-3.4.0/CMakeLists.txt
+@@ -607,6 +607,7 @@
+
+ # INSTALL_FILES(/include/osg/ FILES "${OPENSCENEGRAPH_CONFIG_HEADER}")
+
++INCLUDE(MacroOptionalFindPackage)
+
+ ################################################################################
+ # Set Version header file
+@@ -716,42 +716,42 @@
+ 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(GDAL)
+- FIND_PACKAGE(GTA)
+- FIND_PACKAGE(CURL)
+- FIND_PACKAGE(LibVNCServer)
+- FIND_PACKAGE(OurDCMTK)
+- FIND_PACKAGE(FFmpeg)
+- FIND_PACKAGE(GStreamer COMPONENTS app pbutils)
+- FIND_PACKAGE(GLIB COMPONENTS gobject)
++ 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(GDAL)
++ MACRO_OPTIONAL_FIND_PACKAGE(GTA)
++ MACRO_OPTIONAL_FIND_PACKAGE(CURL)
++ MACRO_OPTIONAL_FIND_PACKAGE(LibVNCServer)
++ MACRO_OPTIONAL_FIND_PACKAGE(OurDCMTK)
++ MACRO_OPTIONAL_FIND_PACKAGE(FFmpeg)
++ MACRO_OPTIONAL_FIND_PACKAGE(GStreamer COMPONENTS app pbutils)
++ MACRO_OPTIONAL_FIND_PACKAGE(GLIB COMPONENTS gobject)
+ FIND_PACKAGE(DirectShow)
+- FIND_PACKAGE(SDL2)
+- FIND_PACKAGE(SDL)
+- FIND_PACKAGE(Poppler-glib)
+- FIND_PACKAGE(RSVG)
+- FIND_PACKAGE(GtkGl)
++ MACRO_OPTIONAL_FIND_PACKAGE(SDL2)
++ MACRO_OPTIONAL_FIND_PACKAGE(SDL)
++ MACRO_OPTIONAL_FIND_PACKAGE(Poppler-glib)
++ MACRO_OPTIONAL_FIND_PACKAGE(RSVG)
++ MACRO_OPTIONAL_FIND_PACKAGE(GtkGl)
+ FIND_PACKAGE(DirectInput)
+- FIND_PACKAGE(NVTT)
++ MACRO_OPTIONAL_FIND_PACKAGE(NVTT)
+ IF (NOT WIN32)
+- FIND_PACKAGE(Asio)
++ MACRO_OPTIONAL_FIND_PACKAGE(Asio)
+ ENDIF()
+ FIND_PACKAGE(ZeroConf)
+
+- FIND_PACKAGE(LIBLAS)
++ MACRO_OPTIONAL_FIND_PACKAGE(LIBLAS)
+
+ IF (NOT(OSG_USE_LOCAL_LUA_SOURCE))
+- FIND_PACKAGE(Lua52)
++ MACRO_OPTIONAL_FIND_PACKAGE(Lua52)
+ IF (NOT (LUA_LIBRARIES AND LUA_INCLUDE_DIR))
+- FIND_PACKAGE(Lua51)
++ MACRO_OPTIONAL_FIND_PACKAGE(Lua51)
+ ENDIF()
+ ENDIF()
+
+@@ -768,11 +768,11 @@
+ IF (BUILD_OSG_EXAMPLES AND NOT ANDROID)
+
+
+- FIND_PACKAGE(FLTK)
+- FIND_PACKAGE(FOX)
++ MACRO_OPTIONAL_FIND_PACKAGE(FLTK)
++ 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)
+
+@@ -789,10 +790,10 @@
+ # 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)
+ FIND_PACKAGE(QuickTime)
+@@ -848,15 +849,7 @@
+ SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -D_DEBUG")
+ ENDIF()
+
+-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(LIB_POSTFIX ${LIB_SUFFIX})
+
+ # Here we apparantly do some funky stuff with making the bin/ and lib/
+ # folders which is probably needed to work around a very old CMake bug?
+@@ -1191,7 +1184,7 @@
+ ${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)
+@@ -1207,7 +1200,7 @@
+ ${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
+--- OpenSceneGraph-3.4.0/CMakeModules/COPYING-CMAKE-SCRIPTS
++++ OpenSceneGraph-3.4.0/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.
+--- OpenSceneGraph-3.4.0/CMakeModules/FindFLTK.cmake.rej
++++ OpenSceneGraph-3.4.0/CMakeModules/FindFLTK.cmake.rej
+@@ -0,0 +1,55 @@
++--- CMakeModules/FindFLTK.cmake 2010-11-11 17:51:46.000000000 +0100
+++++ CMakeModules/FindFLTK.cmake 2014-08-20 00:29:31.229439251 +0200
++@@ -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)
+--- OpenSceneGraph-3.4.0/CMakeModules/MacroOptionalFindPackage.cmake
++++ OpenSceneGraph-3.4.0/CMakeModules/MacroOptionalFindPackage.cmake
+@@ -0,0 +1,28 @@
++# - MACRO_OPTIONAL_FIND_PACKAGE() combines FIND_PACKAGE() with an OPTION()
++# MACRO_OPTIONAL_FIND_PACKAGE( <name> [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_<name>, which can be disabled via the cmake GUI.
++# or via -DWITH_<name>=OFF
++# The standard <name>_FOUND variables can be used in the same way
++# as when using the normal FIND_PACKAGE()
++
++# Copyright (c) 2006, Alexander Neundorf, <neundorf@kde.org>
++#
++# 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)
++
+--- OpenSceneGraph-3.5.5/CMakeModules/OsgMacroUtils.cmake
++++ OpenSceneGraph-3.5.5/CMakeModules/OsgMacroUtils.cmake
+@@ -463,7 +463,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 ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_TARGETNAME}${CMAKE_RELWITHDEBINFO_POSTFIX}.pdb DESTINATION share/OpenSceneGraph/bin COMPONENT openscenegraph-examples CONFIGURATIONS RelWithDebInfo)
+ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${TARGET_TARGETNAME}${CMAKE_DEBUG_POSTFIX}.pdb DESTINATION share/OpenSceneGraph/bin COMPONENT openscenegraph-examples CONFIGURATIONS Debug)
+
+--- OpenSceneGraph-3.4.0/examples/osgviewerFLTK/CMakeLists.txt
++++ OpenSceneGraph-3.4.0/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} )
+
diff --git a/dev-games/openscenegraph/metadata.xml b/dev-games/openscenegraph/metadata.xml
new file mode 100644
index 000000000000..4a686db2be4b
--- /dev/null
+++ b/dev-games/openscenegraph/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="person">
+ <email>reavertm@gentoo.org</email>
+ <name>Maciej Mrozowski</name>
+</maintainer>
+<maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+ </maintainer>
+<longdescription lang="en">
+The OpenSceneGraph is an open source high performance 3D graphics toolkit, used by application developers in fields such as visual simulation, games, virtual reality, scientific visualization and modelling. Written entirely in Standard C++ and OpenGL it runs on all Windows platforms, OSX, GNU/Linux, IRIX, Solaris, HP-Ux, AIX and FreeBSD operating systems. The OpenSceneGraph is now well established as the world leading scene graph technology, used widely in the vis-sim, space, scientific, oil-gas, games and virtual reality industries.
+</longdescription>
+ <use>
+ <flag name="asio">Enable support for <pkg>dev-cpp/asio</pkg> library</flag>
+ <flag name="fox">Build examples using <pkg>x11-libs/fox</pkg> library</flag>
+ <flag name="gdal">Enable support for <pkg>sci-libs/gdal</pkg> library</flag>
+ <flag name="las">Enable support for geospatial data LAS LiDAR format using <pkg>sci-geosciences/liblas</pkg></flag>
+ <flag name="openinventor">Build OpenInventor plugin</flag>
+ <flag name="osgapps">Build osg applications</flag>
+ <flag name="sdl2">Use <pkg>media-libs/libsdl2</pkg> additionally to <pkg>media-libs/libsdl</pkg></flag>
+ <flag name="xrandr">Enable support for the X xrandr extension</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-games/openscenegraph/openscenegraph-3.5.1-r2.ebuild b/dev-games/openscenegraph/openscenegraph-3.5.1-r2.ebuild
new file mode 100644
index 000000000000..e37bfe37e566
--- /dev/null
+++ b/dev-games/openscenegraph/openscenegraph-3.5.1-r2.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+WX_GTK_VER="3.0"
+
+inherit cmake-utils flag-o-matic wxwidgets
+
+MY_PN="OpenSceneGraph"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Open source high performance 3D graphics toolkit"
+HOMEPAGE="http://www.openscenegraph.org/"
+SRC_URI="http://trac.openscenegraph.org/downloads/developer_releases/${MY_P}.zip"
+
+LICENSE="wxWinLL-3 LGPL-2.1"
+SLOT="0/35" # Subslot consists of major + minor version number
+KEYWORDS="amd64 ~hppa ~ia64 ~ppc ~ppc64 x86"
+IUSE="asio curl debug doc examples ffmpeg fltk fox gdal gif glut gstreamer gtk jpeg
+jpeg2k las libav lua openexr openinventor osgapps pdf png qt5 sdl sdl2 svg tiff
+truetype vnc wxwidgets xine xrandr zlib"
+
+REQUIRED_USE="sdl2? ( sdl )"
+
+# TODO: COLLADA, FBX, GTA, OpenVRML, Performer, DCMTK
+RDEPEND="
+ x11-libs/libSM
+ x11-libs/libXext
+ virtual/glu
+ virtual/opengl
+ asio? ( dev-cpp/asio )
+ curl? ( net-misc/curl )
+ examples? (
+ fltk? ( x11-libs/fltk:1[opengl] )
+ fox? ( x11-libs/fox:1.6[opengl] )
+ glut? ( media-libs/freeglut )
+ gtk? ( x11-libs/gtkglext )
+ sdl2? ( media-libs/libsdl2 )
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[opengl,X] )
+ )
+ ffmpeg? (
+ libav? ( media-video/libav:0= )
+ !libav? ( media-video/ffmpeg:0= )
+ )
+ gdal? ( sci-libs/gdal )
+ gif? ( media-libs/giflib:= )
+ gstreamer? (
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ jpeg? ( virtual/jpeg:0 )
+ jpeg2k? ( media-libs/jasper:= )
+ las? ( >=sci-geosciences/liblas-1.8.0 )
+ lua? ( >=dev-lang/lua-5.1.5:* )
+ openexr? (
+ media-libs/ilmbase:=
+ media-libs/openexr:=
+ )
+ openinventor? ( media-libs/coin )
+ pdf? ( app-text/poppler[cairo] )
+ png? ( media-libs/libpng:0= )
+ qt5? (
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtopengl:5
+ dev-qt/qtwidgets:5
+ )
+ sdl? ( media-libs/libsdl )
+ svg? (
+ gnome-base/librsvg
+ x11-libs/cairo
+ )
+ tiff? ( media-libs/tiff:0 )
+ truetype? ( media-libs/freetype:2 )
+ vnc? ( net-libs/libvncserver )
+ xine? ( media-libs/xine-lib )
+ xrandr? ( x11-libs/libXrandr )
+ zlib? ( sys-libs/zlib )
+"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ virtual/pkgconfig
+ x11-proto/xextproto
+ doc? ( app-doc/doxygen )
+ xrandr? ( x11-proto/randrproto )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+DOCS=( AUTHORS.txt ChangeLog NEWS.txt )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.4.0-cmake.patch
+ "${FILESDIR}"/${P}-ffmpeg-3.patch
+)
+
+src_configure() {
+ if use examples && use wxwidgets; then
+ need-wxwidgets unicode
+ fi
+
+ # Needed by FFmpeg
+ append-cppflags -D__STDC_CONSTANT_MACROS
+
+ local mycmakeargs=(
+ -DDYNAMIC_OPENSCENEGRAPH=ON
+ -DGENTOO_DOCDIR="/usr/share/doc/${PF}"
+ -DOPENGL_PROFILE=GL2 #GL1 GL2 GL3 GLES1 GLES3 GLES3
+ -DOSG_PROVIDE_READFILE=ON
+ -DOSG_USE_LOCAL_LUA_SOURCE=OFF
+ -DWITH_Lua51=OFF # We use CMake-version FindLua.cmake instead
+ -DWITH_Asio=$(usex asio)
+ -DWITH_CURL=$(usex curl)
+ -DBUILD_DOCUMENTATION=$(usex doc)
+ -DBUILD_OSG_APPLICATIONS=$(usex osgapps)
+ -DBUILD_OSG_EXAMPLES=$(usex examples)
+ -DWITH_FFmpeg=$(usex ffmpeg)
+ -DWITH_GDAL=$(usex gdal)
+ -DWITH_GIFLIB=$(usex gif)
+ -DWITH_GStreamer=$(usex gstreamer)
+ -DWITH_GLIB=$(usex gstreamer)
+ -DWITH_GtkGl=$(usex gtk)
+ -DWITH_JPEG=$(usex jpeg)
+ -DWITH_Jasper=$(usex jpeg2k)
+ -DWITH_LIBLAS=$(usex las)
+ -DWITH_Lua=$(usex lua)
+ -DWITH_OpenEXR=$(usex openexr)
+ -DWITH_Inventor=$(usex openinventor)
+ -DWITH_Poppler-glib=$(usex pdf)
+ -DWITH_PNG=$(usex png)
+ -DOSG_USE_QT=$(usex qt5)
+ $(usex qt5 "-DDESIRED_QT_VERSION=5" "")
+ -DWITH_SDL=$(usex sdl)
+ -DWITH_SDL2=$(usex sdl2)
+ -DWITH_RSVG=$(usex svg rsvg)
+ -DWITH_TIFF=$(usex tiff)
+ -DWITH_Freetype=$(usex truetype)
+ -DWITH_LibVNCServer=$(usex vnc)
+ -DWITH_Xine=$(usex xine)
+ -DOSGVIEWER_USE_XRANDR=$(usex xrandr)
+ -DWITH_ZLIB=$(usex zlib)
+ )
+ if use examples; then
+ mycmakeargs+=(
+ -DWITH_FLTK=$(usex fltk)
+ -DWITH_FOX=$(usex fox)
+ -DWITH_GLUT=$(usex glut)
+ -DWITH_wxWidgets=$(usex wxwidgets)
+ )
+ fi
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ use doc && cmake-utils_src_compile doc_openscenegraph doc_openthreads
+}
diff --git a/dev-games/openscenegraph/openscenegraph-3.5.5.ebuild b/dev-games/openscenegraph/openscenegraph-3.5.5.ebuild
new file mode 100644
index 000000000000..bd6fba7e3d2a
--- /dev/null
+++ b/dev-games/openscenegraph/openscenegraph-3.5.5.ebuild
@@ -0,0 +1,147 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+WX_GTK_VER="3.0"
+
+inherit cmake-utils flag-o-matic wxwidgets vcs-snapshot
+
+MY_PN="OpenSceneGraph"
+MY_P=${MY_PN}-${PV}
+
+DESCRIPTION="Open source high performance 3D graphics toolkit"
+HOMEPAGE="http://www.openscenegraph.org/"
+SRC_URI="https://github.com/${PN}/${MY_PN}/archive/${MY_P}.tar.gz"
+
+LICENSE="wxWinLL-3 LGPL-2.1"
+SLOT="0/145" # NOTE: CHECK WHEN BUMPING! Subslot is SOVERSION
+KEYWORDS="~amd64 ~hppa ~ppc64 ~x86"
+IUSE="asio curl debug doc examples ffmpeg fltk fox gdal gif glut gstreamer gtk jpeg
+jpeg2k las libav lua openexr openinventor osgapps pdf png sdl sdl2 svg tiff
+truetype vnc wxwidgets xine xrandr zlib"
+
+REQUIRED_USE="sdl2? ( sdl )"
+
+# TODO: COLLADA, FBX, GTA, OpenVRML, Performer, DCMTK
+RDEPEND="
+ x11-libs/libSM
+ x11-libs/libXext
+ virtual/glu
+ virtual/opengl
+ asio? ( dev-cpp/asio )
+ curl? ( net-misc/curl )
+ examples? (
+ fltk? ( x11-libs/fltk:1[opengl] )
+ fox? ( x11-libs/fox:1.6[opengl] )
+ glut? ( media-libs/freeglut )
+ gtk? ( x11-libs/gtkglext )
+ sdl2? ( media-libs/libsdl2 )
+ wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[opengl,X] )
+ )
+ ffmpeg? (
+ libav? ( media-video/libav:0= )
+ !libav? ( media-video/ffmpeg:0= )
+ )
+ gdal? ( sci-libs/gdal )
+ gif? ( media-libs/giflib:= )
+ gstreamer? (
+ media-libs/gstreamer:1.0
+ media-libs/gst-plugins-base:1.0
+ )
+ jpeg? ( virtual/jpeg:0 )
+ jpeg2k? ( media-libs/jasper:= )
+ las? ( >=sci-geosciences/liblas-1.8.0 )
+ lua? ( >=dev-lang/lua-5.1.5:* )
+ openexr? (
+ media-libs/ilmbase:=
+ media-libs/openexr:=
+ )
+ openinventor? ( media-libs/coin )
+ pdf? ( app-text/poppler[cairo] )
+ png? ( media-libs/libpng:0= )
+ sdl? ( media-libs/libsdl )
+ svg? (
+ gnome-base/librsvg
+ x11-libs/cairo
+ )
+ tiff? ( media-libs/tiff:0 )
+ truetype? ( media-libs/freetype:2 )
+ vnc? ( net-libs/libvncserver )
+ xine? ( media-libs/xine-lib )
+ xrandr? ( x11-libs/libXrandr )
+ zlib? ( sys-libs/zlib )
+"
+DEPEND="${RDEPEND}
+ app-arch/unzip
+ virtual/pkgconfig
+ x11-proto/xextproto
+ doc? ( app-doc/doxygen )
+ xrandr? ( x11-proto/randrproto )
+"
+
+S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.5.5-cmake.patch
+)
+
+src_configure() {
+ if use examples && use wxwidgets; then
+ need-wxwidgets unicode
+ fi
+
+ # Needed by FFmpeg
+ append-cppflags -D__STDC_CONSTANT_MACROS
+
+ local mycmakeargs=(
+ -DDYNAMIC_OPENSCENEGRAPH=ON
+ -DGENTOO_DOCDIR="/usr/share/doc/${PF}"
+ -DOPENGL_PROFILE=GL2 #GL1 GL2 GL3 GLES1 GLES3 GLES3
+ -DOSG_PROVIDE_READFILE=ON
+ -DOSG_USE_LOCAL_LUA_SOURCE=OFF
+ -DWITH_Lua51=OFF # We use CMake-version FindLua.cmake instead
+ -DWITH_Asio=$(usex asio)
+ -DWITH_CURL=$(usex curl)
+ -DBUILD_DOCUMENTATION=$(usex doc)
+ -DBUILD_OSG_APPLICATIONS=$(usex osgapps)
+ -DBUILD_OSG_EXAMPLES=$(usex examples)
+ -DWITH_FFmpeg=$(usex ffmpeg)
+ -DWITH_GDAL=$(usex gdal)
+ -DWITH_GIFLIB=$(usex gif)
+ -DWITH_GStreamer=$(usex gstreamer)
+ -DWITH_GLIB=$(usex gstreamer)
+ -DWITH_GtkGl=$(usex gtk)
+ -DWITH_JPEG=$(usex jpeg)
+ -DWITH_Jasper=$(usex jpeg2k)
+ -DWITH_LIBLAS=$(usex las)
+ -DWITH_Lua=$(usex lua)
+ -DWITH_OpenEXR=$(usex openexr)
+ -DWITH_Inventor=$(usex openinventor)
+ -DWITH_Poppler-glib=$(usex pdf)
+ -DWITH_PNG=$(usex png)
+ -DWITH_SDL=$(usex sdl)
+ -DWITH_SDL2=$(usex sdl2)
+ -DWITH_RSVG=$(usex svg rsvg)
+ -DWITH_TIFF=$(usex tiff)
+ -DWITH_Freetype=$(usex truetype)
+ -DWITH_LibVNCServer=$(usex vnc)
+ -DWITH_Xine=$(usex xine)
+ -DOSGVIEWER_USE_XRANDR=$(usex xrandr)
+ -DWITH_ZLIB=$(usex zlib)
+ )
+ if use examples; then
+ mycmakeargs+=(
+ -DWITH_FLTK=$(usex fltk)
+ -DWITH_FOX=$(usex fox)
+ -DWITH_GLUT=$(usex glut)
+ -DWITH_wxWidgets=$(usex wxwidgets)
+ )
+ fi
+
+ cmake-utils_src_configure
+}
+
+src_compile() {
+ cmake-utils_src_compile
+ use doc && cmake-utils_src_compile doc_openscenegraph doc_openthreads
+}