From 4cfcea8a5ea8cadfd7629ff32dca9a08a06cf13b Mon Sep 17 00:00:00 2001 From: Jan Beich Date: Mon, 17 Jul 2017 18:31:27 +0000 Subject: [PATCH] graphics/aqsis: switch to C++11 for Boost PR: 220787 --- graphics/aqsis/Makefile | 5 +- ...lude_aqsis_tex_filtering_texturesampleoptions.h | 149 +++++++++++++++++++++ .../patch-include_aqsis_tex_io_texfileheader.h | 137 +++++++++++++++++++ ...tch-libs_core_texturing__old_shadowmap__old.cpp | 16 +++ .../files/patch-libs_shadervm_dsoshadeops.cpp | 15 +++ ...-libs_shadervm_shaderexecenv_shadeops__tmap.cpp | 16 +++ .../patch-tools_displays_piqsl_piqsldisplay.cpp | 19 ++- 7 files changed, 354 insertions(+), 3 deletions(-) create mode 100644 graphics/aqsis/files/patch-include_aqsis_tex_filtering_texturesampleoptions.h create mode 100644 graphics/aqsis/files/patch-include_aqsis_tex_io_texfileheader.h create mode 100644 graphics/aqsis/files/patch-libs_core_texturing__old_shadowmap__old.cpp create mode 100644 graphics/aqsis/files/patch-libs_shadervm_dsoshadeops.cpp create mode 100644 graphics/aqsis/files/patch-libs_shadervm_shaderexecenv_shadeops__tmap.cpp diff --git a/graphics/aqsis/Makefile b/graphics/aqsis/Makefile index 235ebe5ff043..b15773bc36a3 100644 --- a/graphics/aqsis/Makefile +++ b/graphics/aqsis/Makefile @@ -26,7 +25,9 @@ LDFLAGS+= -L${LOCALBASE}/lib USE_LDCONFIG= yes -USES= cmake:outsource desktop-file-utils shared-mime-info shebangfix +USES= cmake:outsource compiler:c++11-lib desktop-file-utils \ + shared-mime-info shebangfix +USE_CXXSTD= gnu++11 SHEBANG_FILES= examples/*/*/*.sh \ tools/neqsus/houdini/post.sh \ distribution/linux/*.sh diff --git a/graphics/aqsis/files/patch-include_aqsis_tex_filtering_texturesampleoptions.h b/graphics/aqsis/files/patch-include_aqsis_tex_filtering_texturesampleoptions.h new file mode 100644 index 000000000000..fe647ed548e5 --- /dev/null +++ b/graphics/aqsis/files/patch-include_aqsis_tex_filtering_texturesampleoptions.h @@ -0,0 +1,149 @@ +In file included from libs/tex/filtering/dummytexturesampler.cpp:38: +In file included from libs/tex/filtering/dummytexturesampler.h:41: +In file included from include/aqsis/tex/filtering/itexturesampler.h:46: +include/aqsis/tex/filtering/texturesampleoptions.h:239:31: error: ISO C++11 does not allow access declarations; use using declarations instead + CqTextureSampleOptionsBase::sBlur; + ^ + using +include/aqsis/tex/filtering/texturesampleoptions.h:240:31: error: ISO C++11 does not allow access declarations; use using declarations instead + CqTextureSampleOptionsBase::tBlur; + ^ + using +include/aqsis/tex/filtering/texturesampleoptions.h:241:31: error: ISO C++11 does not allow access declarations; use using declarations instead + CqTextureSampleOptionsBase::sWidth; + ^ + using +[...] + +--- include/aqsis/tex/filtering/texturesampleoptions.h.orig 2012-08-24 12:26:50 UTC ++++ include/aqsis/tex/filtering/texturesampleoptions.h +@@ -236,37 +236,37 @@ class CqTextureSampleOptions : private CqTextureSample + CqTextureSampleOptions(); + + // Accessors from CqTextureSampleOptionsBase +- CqTextureSampleOptionsBase::sBlur; +- CqTextureSampleOptionsBase::tBlur; +- CqTextureSampleOptionsBase::sWidth; +- CqTextureSampleOptionsBase::tWidth; +- CqTextureSampleOptionsBase::minWidth; +- CqTextureSampleOptionsBase::truncAmount; +- CqTextureSampleOptionsBase::logTruncAmount; +- CqTextureSampleOptionsBase::filterType; +- CqTextureSampleOptionsBase::startChannel; +- CqTextureSampleOptionsBase::numChannels; +- CqTextureSampleOptionsBase::sWrapMode; +- CqTextureSampleOptionsBase::tWrapMode; ++ using CqTextureSampleOptionsBase::sBlur; ++ using CqTextureSampleOptionsBase::tBlur; ++ using CqTextureSampleOptionsBase::sWidth; ++ using CqTextureSampleOptionsBase::tWidth; ++ using CqTextureSampleOptionsBase::minWidth; ++ using CqTextureSampleOptionsBase::truncAmount; ++ using CqTextureSampleOptionsBase::logTruncAmount; ++ using CqTextureSampleOptionsBase::filterType; ++ using CqTextureSampleOptionsBase::startChannel; ++ using CqTextureSampleOptionsBase::numChannels; ++ using CqTextureSampleOptionsBase::sWrapMode; ++ using CqTextureSampleOptionsBase::tWrapMode; + + // Modifiers from CqTextureSampleOptionsBase +- CqTextureSampleOptionsBase::setBlur; +- CqTextureSampleOptionsBase::setSBlur; +- CqTextureSampleOptionsBase::setTBlur; +- CqTextureSampleOptionsBase::setWidth; +- CqTextureSampleOptionsBase::setSWidth; +- CqTextureSampleOptionsBase::setTWidth; +- CqTextureSampleOptionsBase::setMinWidth; +- CqTextureSampleOptionsBase::setTruncAmount; +- CqTextureSampleOptionsBase::setFilterType; +- CqTextureSampleOptionsBase::setStartChannel; +- CqTextureSampleOptionsBase::setNumChannels; +- CqTextureSampleOptionsBase::setWrapMode; +- CqTextureSampleOptionsBase::setSWrapMode; +- CqTextureSampleOptionsBase::setTWrapMode; ++ using CqTextureSampleOptionsBase::setBlur; ++ using CqTextureSampleOptionsBase::setSBlur; ++ using CqTextureSampleOptionsBase::setTBlur; ++ using CqTextureSampleOptionsBase::setWidth; ++ using CqTextureSampleOptionsBase::setSWidth; ++ using CqTextureSampleOptionsBase::setTWidth; ++ using CqTextureSampleOptionsBase::setMinWidth; ++ using CqTextureSampleOptionsBase::setTruncAmount; ++ using CqTextureSampleOptionsBase::setFilterType; ++ using CqTextureSampleOptionsBase::setStartChannel; ++ using CqTextureSampleOptionsBase::setNumChannels; ++ using CqTextureSampleOptionsBase::setWrapMode; ++ using CqTextureSampleOptionsBase::setSWrapMode; ++ using CqTextureSampleOptionsBase::setTWrapMode; + + // Other stuff from CqTextureSampleOptionsBase +- CqTextureSampleOptionsBase::fillFromFileHeader; ++ using CqTextureSampleOptionsBase::fillFromFileHeader; + + //-------------------------------------------------- + // Plain-texture specific sample options +@@ -307,37 +307,37 @@ class CqShadowSampleOptions : private CqTextureSampleO + CqShadowSampleOptions(); + + // Accessors from CqTextureSampleOptionsBase +- CqTextureSampleOptionsBase::sBlur; +- CqTextureSampleOptionsBase::tBlur; +- CqTextureSampleOptionsBase::sWidth; +- CqTextureSampleOptionsBase::tWidth; +- CqTextureSampleOptionsBase::minWidth; +- CqTextureSampleOptionsBase::truncAmount; +- CqTextureSampleOptionsBase::logTruncAmount; +- CqTextureSampleOptionsBase::filterType; +- CqTextureSampleOptionsBase::startChannel; +- CqTextureSampleOptionsBase::numChannels; +- CqTextureSampleOptionsBase::sWrapMode; +- CqTextureSampleOptionsBase::tWrapMode; ++ using CqTextureSampleOptionsBase::sBlur; ++ using CqTextureSampleOptionsBase::tBlur; ++ using CqTextureSampleOptionsBase::sWidth; ++ using CqTextureSampleOptionsBase::tWidth; ++ using CqTextureSampleOptionsBase::minWidth; ++ using CqTextureSampleOptionsBase::truncAmount; ++ using CqTextureSampleOptionsBase::logTruncAmount; ++ using CqTextureSampleOptionsBase::filterType; ++ using CqTextureSampleOptionsBase::startChannel; ++ using CqTextureSampleOptionsBase::numChannels; ++ using CqTextureSampleOptionsBase::sWrapMode; ++ using CqTextureSampleOptionsBase::tWrapMode; + + // Modifiers from CqTextureSampleOptionsBase +- CqTextureSampleOptionsBase::setBlur; +- CqTextureSampleOptionsBase::setSBlur; +- CqTextureSampleOptionsBase::setTBlur; +- CqTextureSampleOptionsBase::setWidth; +- CqTextureSampleOptionsBase::setSWidth; +- CqTextureSampleOptionsBase::setTWidth; +- CqTextureSampleOptionsBase::setMinWidth; +- CqTextureSampleOptionsBase::setTruncAmount; +- CqTextureSampleOptionsBase::setFilterType; +- CqTextureSampleOptionsBase::setStartChannel; +- CqTextureSampleOptionsBase::setNumChannels; +- CqTextureSampleOptionsBase::setWrapMode; +- CqTextureSampleOptionsBase::setSWrapMode; +- CqTextureSampleOptionsBase::setTWrapMode; ++ using CqTextureSampleOptionsBase::setBlur; ++ using CqTextureSampleOptionsBase::setSBlur; ++ using CqTextureSampleOptionsBase::setTBlur; ++ using CqTextureSampleOptionsBase::setWidth; ++ using CqTextureSampleOptionsBase::setSWidth; ++ using CqTextureSampleOptionsBase::setTWidth; ++ using CqTextureSampleOptionsBase::setMinWidth; ++ using CqTextureSampleOptionsBase::setTruncAmount; ++ using CqTextureSampleOptionsBase::setFilterType; ++ using CqTextureSampleOptionsBase::setStartChannel; ++ using CqTextureSampleOptionsBase::setNumChannels; ++ using CqTextureSampleOptionsBase::setWrapMode; ++ using CqTextureSampleOptionsBase::setSWrapMode; ++ using CqTextureSampleOptionsBase::setTWrapMode; + + // Other stuff from CqTextureSampleOptionsBase +- CqTextureSampleOptionsBase::fillFromFileHeader; ++ using CqTextureSampleOptionsBase::fillFromFileHeader; + + //-------------------------------------------------- + // Shadow-specific sample options diff --git a/graphics/aqsis/files/patch-include_aqsis_tex_io_texfileheader.h b/graphics/aqsis/files/patch-include_aqsis_tex_io_texfileheader.h new file mode 100644 index 000000000000..d0d3704213b9 --- /dev/null +++ b/graphics/aqsis/files/patch-include_aqsis_tex_io_texfileheader.h @@ -0,0 +1,137 @@ +In file included from libs/tex/io/tiffoutputfile.cpp:38: +In file included from libs/tex/io/tiffoutputfile.h:43: +In file included from include/aqsis/tex/io/itexoutputfile.h:46: +In file included from include/aqsis/tex/buffers/mixedimagebuffer.h:44: +/usr/include/c++/v1/map:629:15: error: object of type + 'std::__1::pair' cannot be assigned + because its copy assignment operator is implicitly deleted + {__nc = __v.__cc; return *this;} + ^ +/usr/include/c++/v1/__tree:1645:35: note: in instantiation of member function + 'std::__1::__value_type::operator=' + requested here + __cache->__value_ = *__first; + ^ +/usr/include/c++/v1/__tree:1575:9: note: in instantiation of function template specialization + 'std::__1::__tree, + std::__1::__map_value_compare, + std::__1::less, true>, + std::__1::allocator > + >::__assign_multi, + std::__1::__tree_node, void *> *, long> >' requested here + __assign_multi(__t.begin(), __t.end()); + ^ +/usr/include/c++/v1/map:912:21: note: in instantiation of member function + 'std::__1::__tree, + std::__1::__map_value_compare, + std::__1::less, true>, + std::__1::allocator > >::operator=' requested here + __tree_ = __m.__tree_; + ^ +include/aqsis/tex/io/texfileheader.h:74:7: note: + in instantiation of member function 'std::__1::map, + std::__1::allocator + > >::operator=' requested here +class CqTexFileHeader + ^ +/usr/include/c++/v1/utility:325:5: note: copy assignment operator is implicitly deleted because + 'pair' has a user-declared move + constructor + pair(pair&&) = default; + ^ + +--- include/aqsis/tex/io/texfileheader.h.orig 2012-08-24 12:26:50 UTC ++++ include/aqsis/tex/io/texfileheader.h +@@ -43,6 +43,9 @@ + + #include + #include ++#if __cplusplus >= 201103L ++#include ++#endif + + #include + #include +@@ -74,9 +77,13 @@ namespace Aqsis { + class CqTexFileHeader + { + private: ++#if __cplusplus < 201103L + class CqTypeInfoHolder; + /// Underlying map type. + typedef std::map TqAttributeMap; ++#else ++ typedef std::map TqAttributeMap; ++#endif + typedef TqAttributeMap::const_iterator const_iterator; + public: + +@@ -180,6 +187,7 @@ class CqTexFileHeader + }; + + ++#if __cplusplus < 201103L + //============================================================================== + // Implementation details + //============================================================================== +@@ -200,6 +208,7 @@ class CqTexFileHeader::CqTypeInfoHolder + return m_typeInfo.before(rhs.m_typeInfo) != 0; + } + }; ++#endif + + //------------------------------------------------------------------------------ + // CqTexFileHeader +@@ -261,13 +270,21 @@ inline void CqTexFileHeader::setTimestamp() + template + inline void CqTexFileHeader::set(const typename AttrTagType::type& value) + { ++#if __cplusplus < 201103L + m_attributeMap[CqTypeInfoHolder(typeid(AttrTagType))] = value; ++#else ++ m_attributeMap[std::type_index(typeid(AttrTagType))] = value; ++#endif + } + + template + void CqTexFileHeader::erase() + { ++#if __cplusplus < 201103L + m_attributeMap.erase(CqTypeInfoHolder(typeid(AttrTagType))); ++#else ++ m_attributeMap.erase(std::type_index(typeid(AttrTagType))); ++#endif + } + + template +@@ -280,7 +297,11 @@ inline typename AttrTagType::type& CqTexFileHeader::fi + template + inline const typename AttrTagType::type& CqTexFileHeader::find() const + { ++#if __cplusplus < 201103L + const_iterator iter = m_attributeMap.find(CqTypeInfoHolder(typeid(AttrTagType))); ++#else ++ const_iterator iter = m_attributeMap.find(std::type_index(typeid(AttrTagType))); ++#endif + if(iter == m_attributeMap.end()) + { + AQSIS_THROW_XQERROR(XqInternal, EqE_BadFile, "Requested attribute \"" +@@ -310,7 +331,11 @@ inline typename AttrTagType::type* CqTexFileHeader::fi + template + inline const typename AttrTagType::type* CqTexFileHeader::findPtr() const + { ++#if __cplusplus < 201103L + const_iterator iter = m_attributeMap.find(CqTypeInfoHolder(typeid(AttrTagType))); ++#else ++ const_iterator iter = m_attributeMap.find(std::type_index(typeid(AttrTagType))); ++#endif + if(iter == m_attributeMap.end()) + return 0; + return & boost::any_cast(iter->second); diff --git a/graphics/aqsis/files/patch-libs_core_texturing__old_shadowmap__old.cpp b/graphics/aqsis/files/patch-libs_core_texturing__old_shadowmap__old.cpp new file mode 100644 index 000000000000..90d63d69e4fd --- /dev/null +++ b/graphics/aqsis/files/patch-libs_core_texturing__old_shadowmap__old.cpp @@ -0,0 +1,16 @@ +libs/core/texturing_old/shadowmap_old.cpp: In member function 'void Aqsis::CqShadowMapOld::LoadZFile()': +libs/core/texturing_old/shadowmap_old.cpp:179:13: error: no match for 'operator!=' (operand types are 'std::ifstream {aka std::basic_ifstream}' and 'long int') + if ( file != NULL ) + ^ + +--- libs/core/texturing_old/shadowmap_old.cpp.orig 2012-08-24 12:26:50 UTC ++++ libs/core/texturing_old/shadowmap_old.cpp +@@ -176,7 +176,7 @@ void CqShadowMapOld::LoadZFile() + { + std::ifstream file( m_strName.c_str(), std::ios::in | std::ios::binary ); + +- if ( file != NULL ) ++ if ( file ) + { + // Save a file type and version marker + TqPchar origHeader = tokenCast(ZFILE_HEADER); diff --git a/graphics/aqsis/files/patch-libs_shadervm_dsoshadeops.cpp b/graphics/aqsis/files/patch-libs_shadervm_dsoshadeops.cpp new file mode 100644 index 000000000000..11de7f4356ed --- /dev/null +++ b/graphics/aqsis/files/patch-libs_shadervm_dsoshadeops.cpp @@ -0,0 +1,15 @@ +libs/shadervm/dsoshadeops.cpp:150:44: error: cast from pointer to smaller type 'char' loses information + while( ( pShadeOp->m_opspec )[0] != (char) NULL ) + ^~~~~~~~~~~ + +--- libs/shadervm/dsoshadeops.cpp.orig 2012-08-24 12:26:50 UTC ++++ libs/shadervm/dsoshadeops.cpp +@@ -147,7 +147,7 @@ CqDSORepository::getShadeOpMethods(CqString* pShadeOpN + { + //We have an appropriate named shadeop table + SqShadeOp *pShadeOp = (SqShadeOp*) pTableSymbol; +- while( ( pShadeOp->m_opspec )[0] != (char) NULL ) ++ while( ( pShadeOp->m_opspec )[0] != '\0' ) + { + SqDSOExternalCall *pDSOCall = NULL; + pDSOCall = parseShadeOpTableEntry( handle, pShadeOp ); diff --git a/graphics/aqsis/files/patch-libs_shadervm_shaderexecenv_shadeops__tmap.cpp b/graphics/aqsis/files/patch-libs_shadervm_shaderexecenv_shadeops__tmap.cpp new file mode 100644 index 000000000000..7f59cf2ef727 --- /dev/null +++ b/graphics/aqsis/files/patch-libs_shadervm_shaderexecenv_shadeops__tmap.cpp @@ -0,0 +1,16 @@ +libs/shadervm/shaderexecenv/shadeops_tmap.cpp:257:56: error: ISO C++11 does not allow access declarations; use using declarations instead + CqSampleOptionExtractorBase::extractVarying; + ^ + using + +--- libs/shadervm/shaderexecenv/shadeops_tmap.cpp.orig 2012-08-24 12:26:50 UTC ++++ libs/shadervm/shaderexecenv/shadeops_tmap.cpp +@@ -254,7 +254,7 @@ class CqSampleOptionExtractor + extractUniformAndCacheVarying(paramList, numParams, opts); + } + +- CqSampleOptionExtractorBase::extractVarying; ++ using CqSampleOptionExtractorBase::extractVarying; + }; + + diff --git a/graphics/aqsis/files/patch-tools_displays_piqsl_piqsldisplay.cpp b/graphics/aqsis/files/patch-tools_displays_piqsl_piqsldisplay.cpp index c676df9afb31..f168ec7ebd4b 100644 --- a/graphics/aqsis/files/patch-tools_displays_piqsl_piqsldisplay.cpp +++ b/graphics/aqsis/files/patch-tools_displays_piqsl_piqsldisplay.cpp @@ -1,6 +1,23 @@ +tools/displays/piqsl/piqsldisplay.cpp:400:35: error: non-constant-expression cannot be narrowed from type 'TqInt' (aka 'int') to 'unsigned int' in initializer list [-Wc++11-narrowing] + PtDspyDevFormat fmt = {name, typeID}; + ^~~~~~ +tools/displays/piqsl/piqsldisplay.cpp:400:35: note: insert an explicit cast to silence this issue + PtDspyDevFormat fmt = {name, typeID}; + ^~~~~~ + static_cast( ) + --- tools/displays/piqsl/piqsldisplay.cpp.orig 2012-08-24 12:26:50 UTC +++ tools/displays/piqsl/piqsldisplay.cpp -@@ -450,8 +450,8 @@ extern "C" PtDspyError DspyImageData(PtD +@@ -397,7 +397,7 @@ extern "C" PtDspyError DspyImageOpen(PtDspyImageHandle + TqInt typeID = g_mapNameToType[typeName]; + char* name = new char[strlen(formatName)+1]; + strcpy(name, formatName); +- PtDspyDevFormat fmt = {name, typeID}; ++ PtDspyDevFormat fmt = {name, static_cast(typeID)}; + outFormat.push_back(fmt); + formatNode = formatNode->NextSiblingElement("Format"); + iformat++; +@@ -450,8 +450,8 @@ extern "C" PtDspyError DspyImageData(PtDspyImageHandle TiXmlElement* bucketDataXML = new TiXmlElement("BucketData"); std::stringstream base64Data;