summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSlávek Banko <slavek.banko@axis.cz>2021-09-22 20:38:45 +0200
committerSlávek Banko <slavek.banko@axis.cz>2021-09-22 20:39:03 +0200
commita86a175c4aaac30870baa8af66dfd1fc42ea1bff (patch)
tree34f2573b3579f89f7d03f5b828719747b686476f
parent3ac84fc2f49431a8c6a13d667d01da5d0760aa06 (diff)
downloadtdebindings-a86a175c4aaac30870baa8af66dfd1fc42ea1bff.tar.gz
tdebindings-a86a175c4aaac30870baa8af66dfd1fc42ea1bff.zip
Add check whether Ruby requires explicit specification of C++ standard.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz> (cherry picked from commit 8301a3c8e542675e9b5f310d79ad24b9a12baaf8)
-rw-r--r--korundum/bin/Makefile.am2
-rw-r--r--korundum/configure.in.in (renamed from korundum/rubylib/korundum/configure.in.in)35
-rw-r--r--korundum/rubylib/korundum/Makefile.am2
-rw-r--r--qtruby/bin/Makefile.am2
-rw-r--r--qtruby/configure.in.in (renamed from qtruby/rubylib/qtruby/configure.in.in)35
-rw-r--r--qtruby/rubylib/designer/uilib/Makefile.am2
-rw-r--r--qtruby/rubylib/qtruby/Makefile.am2
7 files changed, 76 insertions, 4 deletions
diff --git a/korundum/bin/Makefile.am b/korundum/bin/Makefile.am
index 01d89533..72212f5b 100644
--- a/korundum/bin/Makefile.am
+++ b/korundum/bin/Makefile.am
@@ -1,3 +1,5 @@
+CXXFLAGS += $(RUBY_CXXFLAGS)
+
INCLUDES = $(all_includes) -I$(RUBY_ARCHDIR) $(RUBY_CFLAGS)
bin_PROGRAMS = krubyinit
diff --git a/korundum/rubylib/korundum/configure.in.in b/korundum/configure.in.in
index 0a987639..c420adc9 100644
--- a/korundum/rubylib/korundum/configure.in.in
+++ b/korundum/configure.in.in
@@ -32,6 +32,37 @@ else
RUBY_CFLAGS="-I${RUBY_INCLUDEDIR}"
fi
+ # check if Ruby requires explicit specification of C++ standard
+ 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([Ruby build with default C++ standard])
+ RUBY_CXXFLAGS=""
+ else
+ AC_MSG_CHECKING([Ruby build with C++$CXX_STD_TEST])
+ RUBY_CXXFLAGS="-std=c++$CXX_STD_TEST"
+ fi
+ CXXFLAGS="$SAVED_CXXFLAGS $RUBY_CFLAGS $RUBY_CXXFLAGS"
+ AC_TRY_COMPILE([
+ #include <ruby.h>
+ ],[ ],
+ ruby_cxx_std=yes,
+ ruby_cxx_std=no
+ )
+ if test "x$ruby_cxx_std" = "xyes"; then
+ AC_SUBST(RUBY_CXXFLAGS)
+ AC_MSG_RESULT(yes)
+ break
+ else
+ AC_MSG_RESULT(no)
+ fi
+ done
+ CXXFLAGS="$SAVED_CXXFLAGS"
+ AC_LANG_RESTORE
+
# Removes trailing slashes, if any, to avoid fail to install with recent libtool.
RUBY_ARCHDIR=${RUBY_ARCHDIR%/}
RUBY_SITEDIR=${RUBY_SITEDIR%/}
@@ -46,7 +77,8 @@ else
libdir $RUBY_LIBDIR,
includedir $RUBY_INCLUDEDIR,
librubyarg $RUBY_LIBRUBYARG,
- cflags $RUBY_CFLAGS])
+ cflags $RUBY_CFLAGS,
+ cxxflags $RUBY_CXXFLAGS])
AC_SUBST(RUBY_ARCHDIR)
AC_SUBST(RUBY_SITEARCHDIR)
AC_SUBST(RUBY_SITEDIR)
@@ -56,4 +88,3 @@ else
AC_SUBST(RUBY_LIBRUBYARG)
AC_SUBST(RUBY_CFLAGS)
fi
-
diff --git a/korundum/rubylib/korundum/Makefile.am b/korundum/rubylib/korundum/Makefile.am
index 453718b4..568479a5 100644
--- a/korundum/rubylib/korundum/Makefile.am
+++ b/korundum/rubylib/korundum/Makefile.am
@@ -1,3 +1,5 @@
+CXXFLAGS += $(RUBY_CXXFLAGS)
+
INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_ARCHDIR) $(RUBY_CFLAGS)
rubylibdir = $(RUBY_ARCHDIR)
diff --git a/qtruby/bin/Makefile.am b/qtruby/bin/Makefile.am
index ac39aeb2..46159ec4 100644
--- a/qtruby/bin/Makefile.am
+++ b/qtruby/bin/Makefile.am
@@ -1,3 +1,5 @@
+CXXFLAGS += $(RUBY_CXXFLAGS)
+
INCLUDES = $(all_includes) -I$(RUBY_ARCHDIR) $(RUBY_CFLAGS)
bin_PROGRAMS = qtrubyinit
diff --git a/qtruby/rubylib/qtruby/configure.in.in b/qtruby/configure.in.in
index db0594a3..84ad88ec 100644
--- a/qtruby/rubylib/qtruby/configure.in.in
+++ b/qtruby/configure.in.in
@@ -32,6 +32,37 @@ else
RUBY_CFLAGS="-I${RUBY_INCLUDEDIR}"
fi
+ # check if Ruby requires explicit specification of C++ standard
+ 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([Ruby build with default C++ standard])
+ RUBY_CXXFLAGS=""
+ else
+ AC_MSG_CHECKING([Ruby build with C++$CXX_STD_TEST])
+ RUBY_CXXFLAGS="-std=c++$CXX_STD_TEST"
+ fi
+ CXXFLAGS="$SAVED_CXXFLAGS $RUBY_CFLAGS $RUBY_CXXFLAGS"
+ AC_TRY_COMPILE([
+ #include <ruby.h>
+ ],[ ],
+ ruby_cxx_std=yes,
+ ruby_cxx_std=no
+ )
+ if test "x$ruby_cxx_std" = "xyes"; then
+ AC_SUBST(RUBY_CXXFLAGS)
+ AC_MSG_RESULT(yes)
+ break
+ else
+ AC_MSG_RESULT(no)
+ fi
+ done
+ CXXFLAGS="$SAVED_CXXFLAGS"
+ AC_LANG_RESTORE
+
# Removes trailing slashes, if any, to avoid fail to install with recent libtool.
RUBY_ARCHDIR=${RUBY_ARCHDIR%/}
RUBY_SITEDIR=${RUBY_SITEDIR%/}
@@ -46,7 +77,8 @@ else
libdir $RUBY_LIBDIR,
includedir $RUBY_INCLUDEDIR,
librubyarg $RUBY_LIBRUBYARG,
- cflags $RUBY_CFLAGS])
+ cflags $RUBY_CFLAGS,
+ cxxflags $RUBY_CXXFLAGS])
AC_SUBST(RUBY_ARCHDIR)
AC_SUBST(RUBY_SITEARCHDIR)
AC_SUBST(RUBY_SITEDIR)
@@ -56,4 +88,3 @@ else
AC_SUBST(RUBY_LIBRUBYARG)
AC_SUBST(RUBY_CFLAGS)
fi
-
diff --git a/qtruby/rubylib/designer/uilib/Makefile.am b/qtruby/rubylib/designer/uilib/Makefile.am
index b7cc229a..c499269a 100644
--- a/qtruby/rubylib/designer/uilib/Makefile.am
+++ b/qtruby/rubylib/designer/uilib/Makefile.am
@@ -1,3 +1,5 @@
+CXXFLAGS += $(RUBY_CXXFLAGS)
+
INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_ARCHDIR) $(RUBY_CFLAGS)
rubylibdir = $(RUBY_ARCHDIR)
diff --git a/qtruby/rubylib/qtruby/Makefile.am b/qtruby/rubylib/qtruby/Makefile.am
index 09ac6b0a..2bd1f653 100644
--- a/qtruby/rubylib/qtruby/Makefile.am
+++ b/qtruby/rubylib/qtruby/Makefile.am
@@ -1,3 +1,5 @@
+CXXFLAGS += $(RUBY_CXXFLAGS)
+
INCLUDES = -I$(top_srcdir)/smoke $(all_includes) -I$(RUBY_ARCHDIR) $(RUBY_CFLAGS)
noinst_HEADERS = qtruby.h marshall.h smokeruby.h extconf.rb