Branch: master

82895dae 2019-10-30 18:30:37 Slávek Banko
Add check whether OpenEXR requires explicit specification of C++ standard.

Signed-off-by: Slávek Banko <slavek.banko@...>
M configure.in.in
M filters/chalk/openexr/Makefile.am

configure.in.in

diff --git a/configure.in.in b/configure.in.in
index 01eed78..fcc9649 100644
--- a/configure.in.in
+++ b/configure.in.in
@@ -288,6 +288,37 @@
 if test -n "$OPENEXR_LIBS"
 then
   AC_MSG_RESULT([yes])
+
+  AC_LANG_SAVE
+  AC_LANG_CPLUSPLUS
+  SAVED_CXXFLAGS="$CXXFLAGS"
+  for CXX_STD_TEST in "" 11 14 17; do
+    CXXFLAGS="$SAVED_CXXFLAGS"
+    if test "x$CXX_STD_TEST" = "x"; then
+      AC_MSG_CHECKING([OpenEXR build with default C++ standard])
+      OPENEXR_CXXFLAGS=""
+    else
+      AC_MSG_CHECKING([OpenEXR build with C++$CXX_STD_TEST])
+      OPENEXR_CXXFLAGS="-std=c++$CXX_STD_TEST"
+    fi
+    CXXFLAGS="$SAVED_CXXFLAGS $OPENEXR_CFLAGS $OPENEXR_CXXFLAGS"
+    AC_TRY_COMPILE([
+        #include <ImfRgbaFile.h>
+      ],[ ],
+      openexr_cxx_std=yes,
+      openexr_cxx_std=no
+    )
+    if test "x$openexr_cxx_std" = "xyes"; then
+      AC_SUBST(OPENEXR_CXXFLAGS)
+      AC_MSG_RESULT(yes)
+      break
+    else
+      AC_MSG_RESULT(no)
+    fi
+  done
+  CXXFLAGS="$SAVED_CXXFLAGS"
+  AC_LANG_RESTORE
+
 else
   AC_MSG_RESULT([not found])
 fi
@@ -296,6 +327,6 @@
 AC_SUBST(OPENEXR_CFLAGS)
 AC_SUBST(OPENEXR_RPATH)
 
-AM_CONDITIONAL(have_openexr, test -n "$OPENEXR_LIBS")
+AM_CONDITIONAL(have_openexr, test "x$openexr_cxx_std" = "xyes")
 
 # --- End of OpenEXR check ---

filters/chalk/openexr/Makefile.am

diff --git a/filters/chalk/openexr/Makefile.am b/filters/chalk/openexr/Makefile.am
index 3a7dc47..691cbd2 100644
--- a/filters/chalk/openexr/Makefile.am
+++ b/filters/chalk/openexr/Makefile.am
@@ -13,6 +13,8 @@
         $(OPENEXR_CFLAGS) \
 	$(all_includes) 
 
+CXXFLAGS += $(OPENEXR_CXXFLAGS)
+
 kde_module_LTLIBRARIES = libchalk_openexr_import.la libchalk_openexr_export.la
 
 libchalk_openexr_export_la_LDFLAGS = $(KDE_PLUGIN) $(KDE_RPATH) $(all_libraries) -module -avoid-version -no-undefined $(all_libraries) -ltdecore -ltdeui $(LIB_TQT) -lkjs -ltdefx -ltdeio -ltdeparts