diff options
Diffstat (limited to 'dev-games/openscenegraph-openmw')
-rw-r--r-- | dev-games/openscenegraph-openmw/Manifest | 9 | ||||
-rw-r--r-- | dev-games/openscenegraph-openmw/files/openscenegraph-3.6.3-cmake.patch | 12 | ||||
-rw-r--r-- | dev-games/openscenegraph-openmw/files/openscenegraph-3.6.5-cmake_lua_version.patch | 14 | ||||
-rw-r--r-- | dev-games/openscenegraph-openmw/files/openscenegraph-3.6.5-use_boost_asio.patch | 263 | ||||
-rw-r--r-- | dev-games/openscenegraph-openmw/metadata.xml | 16 | ||||
-rw-r--r-- | dev-games/openscenegraph-openmw/openscenegraph-openmw-3.4_p20200425-r101.ebuild (renamed from dev-games/openscenegraph-openmw/openscenegraph-openmw-3.4_p20200425-r100.ebuild) | 2 | ||||
-rw-r--r-- | dev-games/openscenegraph-openmw/openscenegraph-openmw-3.6_p20210610.ebuild | 167 |
7 files changed, 479 insertions, 4 deletions
diff --git a/dev-games/openscenegraph-openmw/Manifest b/dev-games/openscenegraph-openmw/Manifest index f7392ad5cae7..e19a52764de1 100644 --- a/dev-games/openscenegraph-openmw/Manifest +++ b/dev-games/openscenegraph-openmw/Manifest @@ -1,7 +1,12 @@ AUX openscenegraph-3.4-cmake.patch 4485 BLAKE2B 3d63d45b7af01dc4153c03edb828a609a0877e30a8aee9a36fbf69b171df04fac5945e69f91c5e107b55b3c771c5dbcba721f607fcb5a73e1c14dd5351854f22 SHA512 e0dd21ecbf92dec251bc40680106adea4c309badafef408473397b8078e20cd7fbd1d9cb1b1912466ded4156275cd5a1fc1e86caa2471670938e3d39c0c84a97 AUX openscenegraph-3.4-gcc11.patch 1038 BLAKE2B d460790c49c060f79e0311913314f38d32d3cae0056fa2b65462eeefdc7637750a04d3d13a54756e8d5129b9a8bde262e41ce540f480b55934dc23a933234143 SHA512 5e22bf470d18f166927a744f39b21cf9de72abfd17e7d96095943cb4ea698134d9cf4f68a99d4bf2b918f594951d9b9179e29e13d1016e1c0ffee1eb2e17513b AUX openscenegraph-3.5.1-jpeg-9.patch 1211 BLAKE2B 7fedf10332a13270a489c5d2e662947ca84659ad5abc43190d0415212b083b72933b01f84caed161d457490587c8236e38e070e734c649c44b0d67fdc7399a2d SHA512 404439415f8ff6881a90be44281e4a811f018c3e82c2981d076a106e63a3c44fd769867496b8f8a7d53669ba660ab9076a6ccab31e921e9abab65d2ba652b5cc +AUX openscenegraph-3.6.3-cmake.patch 993 BLAKE2B 3adb6691bb1c2e9cc4e88ef5c1e107bd429564248fd72c6f4d70c1622b2933273e02f294d5fd3b2529fdbbdef65cdba41db7b441b7334b6180995896b52f8212 SHA512 2905fa5031641f2d3a8cec46c32c1cbf8adfb34b7c460c22eaecca66f5cc0b73c2bda4ed68dca3bda12a5f49385c2257bd5b4f3271b13eb979298eeaefb45789 AUX openscenegraph-3.6.3-docdir.patch 2991 BLAKE2B 9d2d3bab0d8956f66b4b23a112dbd42cbf6dc60b8f423d71f1082700d19a04867232597fadd14a60c77a0add9e60b5ffb4a0db6811dd26d854afb04d208cf716 SHA512 fd1294e441007b488186dbd944c82d1f960f7a898bcc093d0a5edfb936c727f18ad289be8dec8cfa4fbba80965bb7992b6d3a4e2c0f690a7736c05cda49a2bea +AUX openscenegraph-3.6.5-cmake_lua_version.patch 440 BLAKE2B 51a35309b01a096f9423ff64e66d62f99d3e26bd898db0b53c135dc99318b236a1b129211f51de9b1a29d054e0810aa4ff2a7c307dc4b4a606eb4075a60748d9 SHA512 a41c7a65b1cfd0dabc080f509cf288f575b3ec5d7666a4a889a8c3156e9d32559e1f802e23783c5c70376c82a24dd87813e9bfde0876085e0e3967b47852059a +AUX openscenegraph-3.6.5-use_boost_asio.patch 6995 BLAKE2B 0b0c0af9980b59e1cfd4cc5256720d0e69d5e3a65173c9364036e42efa34377beb00811fc4a0aee0cead870abe0c33feaaebe57c22cbefac43d4dcf65a1d19e1 SHA512 fa7c702eaf69c7b7890cf44e5293f9c8ea73ac441af1e4573dadd62f3ca797ccbbc2fbafd8c946a936192f7331fa16d8d4247de8b657db77791d5137207c23b6 DIST openscenegraph-openmw-3.4_p20200425.tar.gz 5698786 BLAKE2B 43684fa898912434dae9a7b41070a893c407dceba7e468a3f3dede32e24aea55d921098faf8d9d05708d2ef01a3507b2f126939dc13b8693002a0bec189bbaf7 SHA512 9bb4d2a6ca4694ee22a29508b74a095a483584ea801dc8298ec8a9b41c4d4fe18c52a21849ae9ec1065060479dcad5156227f82feed13c177415662ecba1da70 -EBUILD openscenegraph-openmw-3.4_p20200425-r100.ebuild 4362 BLAKE2B a8c82b42c5aa43847cef4cbafa0a171ca172760c147e65d2cf4476bd42d52744f75e86566a99b0e10a65f9ee78af5c5f61bb3d795ec6769d45739b8e7ae3d601 SHA512 514cbdabd064d058b0530d42c1393f351e277aee7706ea9971ba4603fabedbf4ed6de13f0fbae5fb2c52f6d451b90c074f144578a4afddd9b78305576f7258d0 -MISC metadata.xml 1690 BLAKE2B 4c99a953f827084c2a9d848f1bed0f1b7c885343ac2bb8ca57b2ada30ab8901e56ff1f7a37e97394c2fd0f8b0eff452ac0dc2a5fcab270ea8781999fd4bd45f6 SHA512 44a3d3a9af55c002330282ce036c3c455ffd7e9800c854657bd643fb3033645217e365a1a8dc8c7dbbff0d7038a9c6b0265fc824af71404a5b42d9a26a147645 +DIST openscenegraph-openmw-3.6_p20210610.tar.gz 5788655 BLAKE2B fdf345502ee7bb742741da758ae212028882544766a6acba3309d27e2fffa230e4a07626c9a39dbdf1310374b765b3941c915d7b6d527fc7cb75ba028230b4a0 SHA512 1964b12fedf297b8baf77d4db2eb4ce6732925bb3974fb4d8d20b1dec751400ceb57faf0b069c2a5cf45728cad83ea434356edbcb19413d650717c3d2ac39a03 +EBUILD openscenegraph-openmw-3.4_p20200425-r101.ebuild 4365 BLAKE2B 26544eb996114bf89a0f287fef932414fd0145a121a216cf4eeb924eeeecd499056f2ed7d6db6fabd61706e9058c6cd14c07d15bcb9c447c2c6d0c6c77a7a05f SHA512 cde9d7dcf3f02fea2aefef0e6ec545b763009e386f1e872266c89c6fed9ae5e42f67cd55d91c322af1a49f77768ecdd5d0efbf215fabf994d8e74f972308326d +EBUILD openscenegraph-openmw-3.6_p20210610.ebuild 4378 BLAKE2B ce76a028ed2fceb73a5e422d69245ea52e945a2c4ba5c898e9afcede59b21e7e1258780f2686da51d0637b1d25cbb7a53cb02c4a6d113a4be30acc979af5bb7b SHA512 79bb3719c97f48a9c723e2208f82f392159267dfcdb6a471a9538d4c418cd4e28b5218858b478490df5ab55a43d7fb5c6f6f75e68eb2913d5f7f6eddb6577a03 +MISC metadata.xml 2087 BLAKE2B dd97c32c33ce7de4b65d721471a7ba9324d9cb2e8a704accb5d0b361dfab5885d7dd03ac3f9eb24bf2d91fc554a94bac0394cb5f8573aea8ac44c10fc743d623 SHA512 d17cd9e68467a03fdb352f14a0e748195e37a3d74d06fa6ef584d6ebe09d0b62d8c2e5ec08c5a99eab09c721bc414546b1b4dc4a8d924d6c06b25a50dc209952 diff --git a/dev-games/openscenegraph-openmw/files/openscenegraph-3.6.3-cmake.patch b/dev-games/openscenegraph-openmw/files/openscenegraph-3.6.3-cmake.patch new file mode 100644 index 000000000000..708c68659680 --- /dev/null +++ b/dev-games/openscenegraph-openmw/files/openscenegraph-3.6.3-cmake.patch @@ -0,0 +1,12 @@ +--- a/CMakeModules/OsgMacroUtils.cmake ++++ b/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) + diff --git a/dev-games/openscenegraph-openmw/files/openscenegraph-3.6.5-cmake_lua_version.patch b/dev-games/openscenegraph-openmw/files/openscenegraph-3.6.5-cmake_lua_version.patch new file mode 100644 index 000000000000..1373b296da04 --- /dev/null +++ b/dev-games/openscenegraph-openmw/files/openscenegraph-3.6.5-cmake_lua_version.patch @@ -0,0 +1,14 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -771,10 +771,7 @@ + FIND_PACKAGE(LIBLAS) + + IF (NOT(OSG_USE_LOCAL_LUA_SOURCE)) +- FIND_PACKAGE(Lua52) +- IF (NOT (LUA_LIBRARIES AND LUA_INCLUDE_DIR)) +- FIND_PACKAGE(Lua51) +- ENDIF() ++ FIND_PACKAGE(Lua ${LUA_VERSION} EXACT) + ENDIF() + + # V8 and Python plugins are tests for linking against these libraries but aren't functionality beyond this. diff --git a/dev-games/openscenegraph-openmw/files/openscenegraph-3.6.5-use_boost_asio.patch b/dev-games/openscenegraph-openmw/files/openscenegraph-3.6.5-use_boost_asio.patch new file mode 100644 index 000000000000..f9a32c0dc601 --- /dev/null +++ b/dev-games/openscenegraph-openmw/files/openscenegraph-3.6.5-use_boost_asio.patch @@ -0,0 +1,263 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -764,7 +764,7 @@ + FIND_PACKAGE(DirectInput) + FIND_PACKAGE(NVTT) + IF (NOT WIN32) +- FIND_PACKAGE(Asio) ++ FIND_PACKAGE(Boost) + ENDIF() + FIND_PACKAGE(ZeroConf) + +--- a/CMakeModules/FindAsio.cmake ++++ b/CMakeModules/FindAsio.cmake +@@ -1,22 +0,0 @@ +-# Locate ASIO-headers (http://think-async.com/Asio) +-# This module defines +-# ASIO_FOUND, if false, do not try to link to gdal +-# ASIO_INCLUDE_DIR, where to find the headers +-# +-# Created by Stephan Maximilian Huber +- +-FIND_PATH(ASIO_INCLUDE_DIR +- NAMES +- asio.hpp +- PATHS +- /usr/include +- /usr/local/include +-) +- +-SET(ASIO_FOUND "NO") +-IF(ASIO_INCLUDE_DIR) +- FIND_PACKAGE( Boost 1.37 ) +- IF(Boost_FOUND) +- SET(ASIO_FOUND "YES") +- ENDIF() +-ENDIF() +--- a/src/osgPlugins/CMakeLists.txt ++++ b/src/osgPlugins/CMakeLists.txt +@@ -299,13 +299,13 @@ + # + # Device integration plugins + # +-IF (SDL_FOUND) ++IF(SDL_FOUND) + ADD_PLUGIN_DIRECTORY(sdl) +-ENDIF(SDL_FOUND) ++ENDIF() + +-IF(ASIO_FOUND) ++IF(Boost_FOUND) + ADD_PLUGIN_DIRECTORY(RestHttpDevice) +-ENDIF(ASIO_FOUND) ++ENDIF() + + + IF(ZEROCONF_FOUND) +--- a/src/osgPlugins/RestHttpDevice/CMakeLists.txt ++++ b/src/osgPlugins/RestHttpDevice/CMakeLists.txt +@@ -1,6 +1,5 @@ + INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) +-INCLUDE_DIRECTORIES(${ASIO_INCLUDE_DIR}) +- ++ + SET(TARGET_SRC + connection.cpp + io_service_pool.cpp +@@ -26,7 +25,7 @@ + RestHttpDevice.hpp + ) + +-SET(TARGET_ADDED_LIBRARIES osgPresentation ) ++SET(TARGET_ADDED_LIBRARIES osgPresentation) + + #### end var setup ### + SETUP_PLUGIN(resthttp) +--- a/src/osgPlugins/RestHttpDevice/connection.cpp ++++ b/src/osgPlugins/RestHttpDevice/connection.cpp +@@ -37,14 +37,14 @@ + void connection::start() + { + OSG_DEBUG << "RestHttpDevice :: connection::start" << std::endl; +- ++ + socket_.async_read_some(asio::buffer(buffer_), + boost::bind(&connection::handle_read, shared_from_this(), + asio::placeholders::error, + asio::placeholders::bytes_transferred)); + } + +-void connection::handle_read(const asio::error_code& e, ++void connection::handle_read(const boost::system::error_code& e, + std::size_t bytes_transferred) + { + if (!e) +@@ -82,12 +82,12 @@ + // handler returns. The connection class's destructor closes the socket. + } + +-void connection::handle_write(const asio::error_code& e) ++void connection::handle_write(const boost::system::error_code& e) + { + if (!e) + { + // Initiate graceful connection closure. +- asio::error_code ignored_ec; ++ boost::system::error_code ignored_ec; + socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec); + } + +--- a/src/osgPlugins/RestHttpDevice/connection.hpp ++++ b/src/osgPlugins/RestHttpDevice/connection.hpp +@@ -11,7 +11,7 @@ + #ifndef HTTP_SERVER_CONNECTION_HPP + #define HTTP_SERVER_CONNECTION_HPP + +-#include <asio.hpp> ++#include <boost/asio.hpp> + #include <boost/array.hpp> + #include <boost/noncopyable.hpp> + #include <boost/shared_ptr.hpp> +@@ -21,6 +21,8 @@ + #include "request_handler.hpp" + #include "request_parser.hpp" + ++using namespace boost; ++ + namespace http { + namespace server { + +@@ -42,11 +44,11 @@ + ~connection(); + private: + /// Handle completion of a read operation. +- void handle_read(const asio::error_code& e, ++ void handle_read(const boost::system::error_code& e, + std::size_t bytes_transferred); + + /// Handle completion of a write operation. +- void handle_write(const asio::error_code& e); ++ void handle_write(const boost::system::error_code& e); + + /// Socket for the connection. + asio::ip::tcp::socket socket_; +--- a/src/osgPlugins/RestHttpDevice/io_service_pool.cpp ++++ b/src/osgPlugins/RestHttpDevice/io_service_pool.cpp +@@ -11,7 +11,7 @@ + #include "server.hpp" + #include <stdexcept> + #include <boost/bind.hpp> +-#include <boost/shared_ptr.hpp> ++#include <boost/thread.hpp> + + namespace http { + namespace server { +@@ -36,17 +36,14 @@ + void io_service_pool::run() + { + // Create a pool of threads to run all of the io_services. +- std::vector<boost::shared_ptr<asio::thread> > threads; ++ std::vector<thread> threads; + for (std::size_t i = 0; i < io_services_.size(); ++i) +- { +- boost::shared_ptr<asio::thread> thread(new asio::thread( +- boost::bind(&asio::io_service::run, io_services_[i]))); +- threads.push_back(thread); +- } ++ threads.emplace_back(thread(boost::bind(&asio::io_service::run, ++ io_services_[i]))); + + // Wait for all threads in the pool to exit. + for (std::size_t i = 0; i < threads.size(); ++i) +- threads[i]->join(); ++ threads[i].join(); + } + + void io_service_pool::stop() +--- a/src/osgPlugins/RestHttpDevice/io_service_pool.hpp ++++ b/src/osgPlugins/RestHttpDevice/io_service_pool.hpp +@@ -11,11 +11,13 @@ + #ifndef HTTP_SERVER_IO_SERVICE_POOL_HPP + #define HTTP_SERVER_IO_SERVICE_POOL_HPP + +-#include <asio.hpp> ++#include <boost/asio.hpp> + #include <vector> + #include <boost/noncopyable.hpp> + #include <boost/shared_ptr.hpp> + ++using namespace boost; ++ + namespace http { + namespace server { + +--- a/src/osgPlugins/RestHttpDevice/reply.hpp ++++ b/src/osgPlugins/RestHttpDevice/reply.hpp +@@ -13,9 +13,11 @@ + + #include <string> + #include <vector> +-#include <asio.hpp> ++#include <boost/asio.hpp> + #include "header.hpp" + ++using namespace boost; ++ + namespace http { + namespace server { + +--- a/src/osgPlugins/RestHttpDevice/server.cpp ++++ b/src/osgPlugins/RestHttpDevice/server.cpp +@@ -23,7 +23,7 @@ + request_handler_(doc_root) + { + // Open the acceptor with the option to reuse the address (i.e. SO_REUSEADDR). +- asio::ip::tcp::resolver resolver(acceptor_.get_io_service()); ++ asio::ip::tcp::resolver resolver(io_service_pool_.get_io_service()); + asio::ip::tcp::resolver::query query(address, port); + asio::ip::tcp::endpoint endpoint = *resolver.resolve(query); + acceptor_.open(endpoint.protocol()); +@@ -47,7 +47,7 @@ + io_service_pool_.stop(); + } + +-void server::handle_accept(const asio::error_code& e) ++void server::handle_accept(const boost::system::error_code& e) + { + if (!e) + { +--- a/src/osgPlugins/RestHttpDevice/server.hpp ++++ b/src/osgPlugins/RestHttpDevice/server.hpp +@@ -11,7 +11,7 @@ + #ifndef HTTP_SERVER_SERVER_HPP + #define HTTP_SERVER_SERVER_HPP + +-#include <asio.hpp> ++#include <boost/asio.hpp> + #include <string> + #include <vector> + #include <boost/noncopyable.hpp> +@@ -20,6 +20,8 @@ + #include "io_service_pool.hpp" + #include "request_handler.hpp" + ++using namespace boost; ++ + namespace http { + namespace server { + +@@ -38,12 +40,12 @@ + + /// Stop the server. + void stop(); +- ++ + void setCallback(request_handler::Callback* cb) { request_handler_.setCallback(cb); } + + private: + /// Handle completion of an asynchronous accept operation. +- void handle_accept(const asio::error_code& e); ++ void handle_accept(const boost::system::error_code& e); + + /// The pool of io_service objects used to perform asynchronous operations. + io_service_pool io_service_pool_; diff --git a/dev-games/openscenegraph-openmw/metadata.xml b/dev-games/openscenegraph-openmw/metadata.xml index 6e5dbab66570..ffea23ade5ea 100644 --- a/dev-games/openscenegraph-openmw/metadata.xml +++ b/dev-games/openscenegraph-openmw/metadata.xml @@ -14,15 +14,29 @@ <name>Gentoo Games Project</name> </maintainer> <longdescription lang="en"> - OpenSceneGraph on steroids. This fork was created to experiment with performance enhancements for OpenMW that are too controversial to be included in the general purpose OSG project - either for design reasons or backward compatibility reasons. OpenMW still works with "vanilla" OpenSceneGraph, but it is recommended to use the fork for better performance (around 10-15% on most devices). Note that the improvements are very specific to OpenMW and its animation code in particular; other OpenSceneGraph applications are not likely to see the same speed-up, or any speed-up at all if they are already GPU limited. + OpenSceneGraph on steroids. This fork was created to experiment with + performance enhancements for OpenMW that are too controversial to be + included in the general purpose OSG project - either for design reasons + or backward compatibility reasons. OpenMW still works with "vanilla" + OpenSceneGraph, but it is recommended to use the fork for better + performance (around 10-15% on most devices). Note that the improvements + are very specific to OpenMW and its animation code in particular; other + OpenSceneGraph applications are not likely to see the same speed-up, or + any speed-up at all if they are already GPU limited. </longdescription> <use> + <flag name="collada">Enable DAE file support via <pkg>dev-libs/collada-dom</pkg></flag> + <flag name="dicom">Enable DICOM medical image file support via <pkg>sci-libs/dcmtk</pkg></flag> <flag name="egl">Enable EGL support</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> + <upstream> + <remote-id type="github">OpenMW/osg</remote-id> + </upstream> </pkgmetadata> diff --git a/dev-games/openscenegraph-openmw/openscenegraph-openmw-3.4_p20200425-r100.ebuild b/dev-games/openscenegraph-openmw/openscenegraph-openmw-3.4_p20200425-r101.ebuild index 08efaabeceae..409ac1f6275c 100644 --- a/dev-games/openscenegraph-openmw/openscenegraph-openmw-3.4_p20200425-r100.ebuild +++ b/dev-games/openscenegraph-openmw/openscenegraph-openmw-3.4_p20200425-r101.ebuild @@ -28,7 +28,7 @@ REQUIRED_USE=" # TODO: COLLADA, FBX, GTA, OpenVRML, Performer, DCMTK RDEPEND=" !dev-games/openscenegraph - media-libs/mesa[egl?] + media-libs/mesa[egl(+)?] virtual/glu virtual/opengl x11-libs/libSM diff --git a/dev-games/openscenegraph-openmw/openscenegraph-openmw-3.6_p20210610.ebuild b/dev-games/openscenegraph-openmw/openscenegraph-openmw-3.6_p20210610.ebuild new file mode 100644 index 000000000000..1fe85653833c --- /dev/null +++ b/dev-games/openscenegraph-openmw/openscenegraph-openmw-3.6_p20210610.ebuild @@ -0,0 +1,167 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +LUA_COMPAT=( lua5-1 ) + +WX_GTK_VER="3.0-gtk3" +inherit cmake flag-o-matic lua-single wxwidgets + +MY_COMMIT="b02abe200c4847e73b887b064a89ea1758a5b733" + +DESCRIPTION="OpenMW-specific fork of OpenSceneGraph" +HOMEPAGE="https://github.com/OpenMW/osg" +SRC_URI="https://github.com/OpenMW/osg/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/osg-${MY_COMMIT}" + +LICENSE="wxWinLL-3 LGPL-2.1" +SLOT="0/162" # NOTE: CHECK WHEN BUMPING! Subslot is SOVERSION +KEYWORDS="~amd64 ~x86" +IUSE=" + collada curl dicom debug doc egl examples ffmpeg fltk fox gdal + gif glut gstreamer jpeg las lua openexr openinventor osgapps pdf png + sdl sdl2 svg tiff truetype vnc wxwidgets xrandr +zlib +" + +REQUIRED_USE=" + dicom? ( zlib ) + lua? ( ${LUA_REQUIRED_USE} ) + openexr? ( zlib ) + sdl2? ( sdl ) +" + +# TODO: FBX, GTA, NVTT, OpenVRML, Performer +BDEPEND=" + app-arch/unzip + virtual/pkgconfig + doc? ( app-doc/doxygen ) +" +RDEPEND=" + !dev-games/openscenegraph + media-libs/mesa[egl(+)?] + virtual/glu + virtual/opengl + x11-libs/libSM + x11-libs/libXext + collada? ( dev-libs/collada-dom:= ) + curl? ( net-misc/curl ) + examples? ( + fltk? ( x11-libs/fltk:1[opengl] ) + fox? ( x11-libs/fox:1.6[opengl] ) + glut? ( media-libs/freeglut ) + sdl2? ( media-libs/libsdl2 ) + wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}[opengl,X] ) + ) + ffmpeg? ( 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 ) + las? ( >=sci-geosciences/liblas-1.8.0 ) + lua? ( ${LUA_DEPS} ) + 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 ) + xrandr? ( x11-libs/libXrandr ) + zlib? ( sys-libs/zlib ) +" +DEPEND="${RDEPEND} + dev-libs/boost + x11-base/xorg-proto +" + +PATCHES=( + "${FILESDIR}"/openscenegraph-3.6.3-cmake.patch + "${FILESDIR}"/openscenegraph-3.6.3-docdir.patch + "${FILESDIR}"/openscenegraph-3.6.5-use_boost_asio.patch + "${FILESDIR}"/openscenegraph-3.6.5-cmake_lua_version.patch +) + +pkg_setup() { + use lua && lua-single_pkg_setup +} + +src_configure() { + if use examples && use wxwidgets; then + setup-wxwidgets unicode + fi + + # Needed by FFmpeg + append-cppflags -D__STDC_CONSTANT_MACROS + + local libdir=$(get_libdir) + local mycmakeargs=( + -DDYNAMIC_OPENSCENEGRAPH=ON + -DLIB_POSTFIX=${libdir/lib} + -DOPENGL_PROFILE=GL2 #GL1 GL2 GL3 GLES1 GLES3 GLES3 + $(cmake_use_find_package collada COLLADA) + $(cmake_use_find_package curl CURL) + -DBUILD_DOCUMENTATION=$(usex doc) + $(cmake_use_find_package dicom DCMTK) + $(cmake_use_find_package egl EGL) + -DBUILD_OSG_EXAMPLES=$(usex examples) + $(cmake_use_find_package ffmpeg FFmpeg) + $(cmake_use_find_package gdal GDAL) + $(cmake_use_find_package gif GIFLIB) + $(cmake_use_find_package gstreamer GLIB) + $(cmake_use_find_package gstreamer GStreamer) + -DCMAKE_DISABLE_FIND_PACKAGE_GtkGl=ON + $(cmake_use_find_package jpeg JPEG) + -DCMAKE_DISABLE_FIND_PACKAGE_Jasper=ON + $(cmake_use_find_package las LIBLAS) + $(cmake_use_find_package lua Lua) + -DCMAKE_DISABLE_FIND_PACKAGE_OpenCascade=ON + $(cmake_use_find_package openexr OpenEXR) + $(cmake_use_find_package openinventor Inventor) + -DBUILD_OSG_APPLICATIONS=$(usex osgapps) + $(cmake_use_find_package pdf Poppler-glib) + $(cmake_use_find_package png PNG) + $(cmake_use_find_package sdl SDL) + $(cmake_use_find_package sdl2 SDL2) + $(cmake_use_find_package svg RSVG) + $(cmake_use_find_package tiff TIFF) + $(cmake_use_find_package truetype Freetype) + $(cmake_use_find_package vnc LibVNCServer) + -DOSGVIEWER_USE_XRANDR=$(usex xrandr) + $(cmake_use_find_package zlib ZLIB) + -DOSG_USE_LOCAL_LUA_SOURCE=OFF + ) + + if use examples; then + mycmakeargs+=( + $(cmake_use_find_package fltk FLTK) + $(cmake_use_find_package fox FOX) + $(cmake_use_find_package glut GLUT) + $(cmake_use_find_package wxwidgets wxWidgets) + ) + fi + + if use lua; then + mycmakeargs+=( + -DLUA_VERSION="$(lua_get_version)" + ) + fi + + cmake_src_configure +} + +src_compile() { + cmake_src_compile + use doc && cmake_src_compile doc_openscenegraph doc_openthreads +} |