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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions recipes/openscenegraph/all/conandata.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,62 @@ sources:
patches:
3.6.5:
- patch_file: patches/0001-fix-to_cmake_path-usage.patch
patch_description: Fix cmake paths
patch_type: portability
base_path: source_subfolder
- patch_file: patches/0002-Use-standard-CMake-name-for-gif.patch
patch_description: Use standard CMake name for GIF library
patch_type: conan
base_path: source_subfolder
- patch_file: patches/0003-Correct-usage-of-_LIBRARY-to-_LIBRARIES.patch
patch_description: Correct usage of _LIBRARY to _LIBRARIES in CMake find modules
patch_type: conan
base_path: source_subfolder
- patch_file: patches/0004-Allow-explicit-control-of-plugins.patch
patch_description: Allow explicit control of which plugins to build
patch_type: conan
base_path: source_subfolder
- patch_file: patches/0005-use-JPEG-target-for-plugin.patch
patch_description: This fixes building against a static libjpeg on windows
patch_type: portability
base_path: source_subfolder
- patch_file: patches/0006-Declare-result-as-LONG-for-Mingw-build.patch
patch_description: "Win32's ChangeDisplaySettingsEx() returns LONG, not unsigned int (Mingw64)"
patch_type: official
patch_source: https://github.com/openscenegraph/OpenSceneGraph/commit/67468cce344dd5e503aaa1063845f34720563f79
base_path: source_subfolder
- patch_file: patches/0007-fix-msvc-with-std-c++17.patch
patch_description: Fix to be able to build with c++17 on MSVC
patch_type: official
patch_source: https://github.com/openscenegraph/OpenSceneGraph/pull/1055
base_path: source_subfolder
- patch_file: patches/0008-replace-mem-fun-ref.patch
patch_description: Replaced std::mem_fun_ref usage to avoid compatibility with modern compilers
patch_type: official
patch_source: https://github.com/openscenegraph/OpenSceneGraph/commit/8a0114a46a4bad9041297950fe3bfbb2aea6e1da
base_path: source_subfolder
- patch_file: patches/0009-replace-auto-ptr-in-plugins.patch
patch_description: auto_ptr is removed in C++17
patch_type: portability
patch_source: https://github.com/openscenegraph/OpenSceneGraph/pull/1246
base_path: source_subfolder
- patch_file: patches/0010-replace-ptr-fun-in-obj-plugin.patch
patch_description: ptr_fun is removed in C++17
patch_type: portability
patch_source: https://github.com/openscenegraph/OpenSceneGraph/pull/1246
base_path: source_subfolder
- patch_file: patches/0011-remove-deprecated-register.patch
patch_description: The "register" keyword is deprecated as of C++17
patch_type: bugfix
patch_source: https://github.com/openscenegraph/OpenSceneGraph/pull/1296
base_path: source_subfolder
- patch_file: patches/0012-fix-MSVC-_FPOSOFF-removal.patch
patch_description: _FPOSOFF identifier not found
patch_type: bugfix
patch_source: https://github.com/openscenegraph/OpenSceneGraph/issues/1323
base_path: source_subfolder
- patch_file: patches/0013-fix-MSVC-unnamed-typedef-struct.patch
patch_description: fix MSVC unnamed typedef struct in C++20 standard
patch_type: bugfix
patch_source: https://github.com/openscenegraph/OpenSceneGraph/commit/3e7bdc07abdf1a8bf02ac062d42e0e9f111107dd
base_path: source_subfolder
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
diff --git a/src/osg/DisplaySettings.cpp b/src/osg/DisplaySettings.cpp
index 5c699c8b0..5c097cf66 100644
--- a/src/osg/DisplaySettings.cpp
+++ b/src/osg/DisplaySettings.cpp
@@ -22,9 +22,6 @@
#include <algorithm>
#include <string.h>

-using namespace osg;
-using namespace std;
-
#if defined(WIN32) && !defined(__CYGWIN__)
#include<windows.h>
extern "C" { OSG_EXPORT DWORD NvOptimusEnablement=0x00000001; }
@@ -32,6 +29,9 @@ extern "C" { OSG_EXPORT DWORD NvOptimusEnablement=0x00000001; }
extern "C" { int NvOptimusEnablement=0x00000001; }
#endif

+using namespace osg;
+using namespace std;
+
void DisplaySettings::setNvOptimusEnablement(int value)
{
NvOptimusEnablement = value;
diff --git a/src/osgPlugins/cfg/ConfigParser.cpp b/src/osgPlugins/cfg/ConfigParser.cpp
index 263c82896..4247cc2af 100644
--- a/src/osgPlugins/cfg/ConfigParser.cpp
+++ b/src/osgPlugins/cfg/ConfigParser.cpp
@@ -235,7 +235,7 @@
#include "CameraConfig.h"


-using namespace std;
+
using namespace osgProducer;

static void ConfigParser_error( const char * );
diff --git a/src/osgPlugins/cfg/ConfigParser.y b/src/osgPlugins/cfg/ConfigParser.y
index cf9adf507..5221be184 100644
--- a/src/osgPlugins/cfg/ConfigParser.y
+++ b/src/osgPlugins/cfg/ConfigParser.y
@@ -34,7 +34,7 @@
#include <Producer/CameraConfig>


-using namespace std;
+
using namespace Producer;

static void ConfigParser_error( const char * );
13 changes: 13 additions & 0 deletions recipes/openscenegraph/all/patches/0008-replace-mem-fun-ref.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/src/osgUtil/tristripper/include/detail/graph_array.h b/src/osgUtil/tristripper/include/detail/graph_array.h
index dc1f38027..ce7000cc8 100644
--- a/src/osgUtil/tristripper/include/detail/graph_array.h
+++ b/src/osgUtil/tristripper/include/detail/graph_array.h
@@ -446,7 +446,7 @@ inline void graph_array<N>::swap(graph_type & Right)
template <class N>
inline void unmark_nodes(graph_array<N> & G)
{
- std::for_each(G.begin(), G.end(), std::mem_fun_ref(&graph_array<N>::node::unmark));
+ for(typename graph_array<N>::node_iterator itr = G.begin(); itr != G.end(); ++itr) itr->unmark();
}


Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
diff --git a/src/osgPlugins/dae/ReaderWriterDAE.cpp b/src/osgPlugins/dae/ReaderWriterDAE.cpp
index fc1a448d4..3b883f19a 100644
--- a/src/osgPlugins/dae/ReaderWriterDAE.cpp
+++ b/src/osgPlugins/dae/ReaderWriterDAE.cpp
@@ -32,7 +32,7 @@

#define SERIALIZER() OpenThreads::ScopedLock<OpenThreads::ReentrantMutex> lock(_serializerMutex)

-#if __cplusplus > 199711L
+#if ((defined(_MSVC_LANG) && _MSVC_LANG > 199711L) || __cplusplus > 199711L)
#define smart_ptr std::unique_ptr
#else
#define smart_ptr std::auto_ptr
diff --git a/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp b/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp
index 69826c456..9bba5532a 100644
--- a/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp
+++ b/src/osgPlugins/ffmpeg/FFmpegImageStream.cpp
@@ -10,6 +10,11 @@

#define STREAM_TIMEOUT_IN_SECONDS_TO_CONSIDER_IT_DEAD 10

+#if ((defined(_MSVC_LANG) && _MSVC_LANG > 199711L) || __cplusplus > 199711L)
+ template <typename T> using smart_ptr = std::unique_ptr<T>;
+#else
+ #define smart_ptr std::auto_ptr
+#endif

namespace osgFFmpeg {

@@ -23,8 +28,8 @@ FFmpegImageStream::FFmpegImageStream() :
{
setOrigin(osg::Image::TOP_LEFT);

- std::auto_ptr<FFmpegDecoder> decoder(new FFmpegDecoder);
- std::auto_ptr<CommandQueue> commands(new CommandQueue);
+ smart_ptr<FFmpegDecoder> decoder(new FFmpegDecoder);
+ smart_ptr<CommandQueue> commands(new CommandQueue);

m_decoder = decoder.release();
m_commands = commands.release();
diff --git a/src/osgPlugins/gdal/ReaderWriterGDAL.cpp b/src/osgPlugins/gdal/ReaderWriterGDAL.cpp
index 298e02fcc..113c9c45f 100644
--- a/src/osgPlugins/gdal/ReaderWriterGDAL.cpp
+++ b/src/osgPlugins/gdal/ReaderWriterGDAL.cpp
@@ -34,6 +34,12 @@

#define SERIALIZER() OpenThreads::ScopedLock<OpenThreads::ReentrantMutex> lock(_serializerMutex)

+#if ((defined(_MSVC_LANG) && _MSVC_LANG > 199711L) || __cplusplus > 199711L)
+ #define smart_ptr std::unique_ptr
+#else
+ #define smart_ptr std::auto_ptr
+#endif
+
// From easyrgb.com
float Hue_2_RGB( float v1, float v2, float vH )
{
@@ -123,7 +129,7 @@ class ReaderWriterGDAL : public osgDB::ReaderWriter

initGDAL();

- std::auto_ptr<GDALDataset> dataset((GDALDataset*)GDALOpen(fileName.c_str(),GA_ReadOnly));
+ smart_ptr<GDALDataset> dataset((GDALDataset*)GDALOpen(fileName.c_str(),GA_ReadOnly));
if (!dataset.get()) return ReadResult::FILE_NOT_HANDLED;

int dataWidth = dataset->GetRasterXSize();
@@ -577,7 +583,7 @@ class ReaderWriterGDAL : public osgDB::ReaderWriter

initGDAL();

- std::auto_ptr<GDALDataset> dataset((GDALDataset*)GDALOpen(fileName.c_str(),GA_ReadOnly));
+ smart_ptr<GDALDataset> dataset((GDALDataset*)GDALOpen(fileName.c_str(),GA_ReadOnly));
if (!dataset.get()) return ReadResult::FILE_NOT_HANDLED;

int dataWidth = dataset->GetRasterXSize();
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
diff --git a/src/osgPlugins/obj/obj.cpp b/src/osgPlugins/obj/obj.cpp
index 859add652..3580e5181 100644
--- a/src/osgPlugins/obj/obj.cpp
+++ b/src/osgPlugins/obj/obj.cpp
@@ -37,10 +37,15 @@ using namespace obj;

static std::string strip( const std::string& ss )
{
- std::string result;
- result.assign( std::find_if( ss.begin(), ss.end(), std::not1( std::ptr_fun< int, int >( isspace ) ) ),
- std::find_if( ss.rbegin(), ss.rend(), std::not1( std::ptr_fun< int, int >( isspace ) ) ).base() );
- return( result );
+ std::string::const_iterator it = ss.begin();
+ while (it != ss.end() && isspace(*it))
+ it++;
+
+ std::string::const_reverse_iterator rit = ss.rbegin();
+ while (rit.base() != it && isspace(*rit))
+ rit++;
+
+ return std::string(it, rit.base());
}

/*
Loading
Loading