Aha, I think I can make a quick guess.
> OIIO::ImageOutput::create(filePath)
Change to
OIIO::ImageOutput::create(filePath.asString());
The OIIO method changed from taking a std::string& (which worked for you before
because your filePath has an implicit conversion from MaterialX::FilePath to
std::string, via FilePath::operator string()), to, in our 2.x, taking a
string_view.
I wish C++ understood that if your class can implicitly convert to std::string,
and my string_view can implicitly convert from std::string, that it can make
that leap for us! But unfortunately, C++ is not quite so smart.
> On Aug 19, 2020, at 12:35 AM, Deke Kincaid <[email protected]> wrote:
>
> Cross-posting this on both oiio-dev and materialx list.
>
> I'm trying to compile MaterialX 1.37.1 against openimageio 2.2 beta 2. This
> works in 1.8.x but is failing at v2.2.
>
> [ 54%] Building CXX object
> source/MaterialXGenGlsl/CMakeFiles/MaterialXGenGlsl.dir/Nodes/LightCompoundNodeGlsl.cpp.o
> cd
> /dd/dept/software/users/dkincaid/packages/3ps/trunk/materialx/1.37.1_cy2017/private/src/MaterialX-1.37.1/build/source/MaterialXGenGlsl
> && /dd/tools/cent7_64/package/gcc/4.8.5/bin/g++ -DMATERIALX_BUILD_OIIO
> -DMATERIALX_OSLC_EXECUTABLE=\"\" -DMATERIALX_OSL_INCLUDE_PATH=\"\"
> -DMATERIALX_TESTRENDER_EXECUTABLE=\"\" -DMATERIALX_TEST_RENDER
> -I/dd/dept/software/users/dkincaid/packages/3ps/trunk/materialx/1.37.1_cy2017/private/src/MaterialX-1.37.1/source/MaterialXGenGlsl/..
>
> -I/dd/dept/software/users/dkincaid/packages/3ps/trunk/materialx/1.37.1_cy2017/private/src/MaterialX-1.37.1/source/MaterialXGenShader/..
>
> -I/dd/dept/software/users/dkincaid/packages/3ps/trunk/materialx/1.37.1_cy2017/private/src/MaterialX-1.37.1/source/MaterialXCore/..
>
> -I/dd/dept/software/users/dkincaid/packages/3ps/trunk/materialx/1.37.1_cy2017/private/src/MaterialX-1.37.1/source/MaterialXFormat/..
> -B /dd/tools/cent7_64/package/binutils/2.25.1/bin -fPIC
> -I/dd/tools/cent7_64/package/ilmbase/2.2.0.DD1/include
> -D_GLIBCXX_USE_CXX11_ABI=0 -DNDEBUG -fPIC -fPIC -Wall -Wno-missing-braces
> -std=gnu++11 -o
> CMakeFiles/MaterialXGenGlsl.dir/Nodes/LightCompoundNodeGlsl.cpp.o -c
> /dd/dept/software/users/dkincaid/packages/3ps/trunk/materialx/1.37.1_cy2017/private/src/MaterialX-1.37.1/source/MaterialXGenGlsl/Nodes/LightCompoundNodeGlsl.cpp
> /dd/dept/software/users/dkincaid/packages/3ps/trunk/materialx/1.37.1_cy2017/private/src/MaterialX-1.37.1/source/MaterialXRender/OiioImageLoader.cpp:
> In member function ‘virtual bool MaterialX::OiioImageLoader::saveImage(const
> MaterialX::FilePath&, MaterialX::ConstImagePtr, bool)’:
> /dd/dept/software/users/dkincaid/packages/3ps/trunk/materialx/1.37.1_cy2017/private/src/MaterialX-1.37.1/source/MaterialXRender/OiioImageLoader.cpp:49:58:
> error: no matching function for call to
> ‘OpenImageIO_v2_2::ImageOutput::create(const MaterialX::FilePath&)’
> auto imageOutput = OIIO::ImageOutput::create(filePath);
> ^
> /dd/dept/software/users/dkincaid/packages/3ps/trunk/materialx/1.37.1_cy2017/private/src/MaterialX-1.37.1/source/MaterialXRender/OiioImageLoader.cpp:49:58:
> note: candidates are:
> In file included from
> /dd/dept/software/users/dkincaid/packages/3ps/trunk/materialx/1.37.1_cy2017/private/src/MaterialX-1.37.1/source/MaterialXRender/OiioImageLoader.cpp:14:0:
> /dd/tools/cent7_64/package/openimageio/2.2.5.0.beta2_cy2017/include/OpenImageIO/imageio.h:1701:23:
> note: static OpenImageIO_v2_2::ImageOutput::unique_ptr
> OpenImageIO_v2_2::ImageOutput::create(OpenImageIO_v2_2::string_view,
> OpenImageIO_v2_2::Filesystem::IOProxy*, OpenImageIO_v2_2::string_view)
> static unique_ptr create (string_view filename,
> ^
> /dd/tools/cent7_64/package/openimageio/2.2.5.0.beta2_cy2017/include/OpenImageIO/imageio.h:1701:23:
> note: no known conversion for argument 1 from ‘const MaterialX::FilePath’
> to ‘OpenImageIO_v2_2::string_view’
> /dd/tools/cent7_64/package/openimageio/2.2.5.0.beta2_cy2017/include/OpenImageIO/imageio.h:1706:23:
> note: static OpenImageIO_v2_2::ImageOutput::unique_ptr
> OpenImageIO_v2_2::ImageOutput::create(const string&, const string&)
> static unique_ptr create (const std::string &filename,
> ^
> /dd/tools/cent7_64/package/openimageio/2.2.5.0.beta2_cy2017/include/OpenImageIO/imageio.h:1706:23:
> note: candidate expects 2 arguments, 1 provided
> gmake[3]: ***
> [source/MaterialXRender/CMakeFiles/MaterialXRender.dir/build.make:164:
> source/MaterialXRender/CMakeFiles/MaterialXRender.dir/OiioImageLoader.cpp.o]
> Error 1
> gmake[3]: Leaving directory
> '/dd/dept/software/users/dkincaid/packages/3ps/trunk/materialx/1.37.1_cy2017/private/src/MaterialX-1.37.1/build'
> gmake[2]: *** [CMakeFiles/Makefile2:676:
> source/MaterialXRender/CMakeFiles/MaterialXRender.dir/all] Error 2
> gmake[2]: *** Waiting for unfinished jobs....
> _______________________________________________
> Oiio-dev mailing list
> [email protected]
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
--
Larry Gritz
[email protected]
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org