diff options
author | Slávek Banko <slavek.banko@axis.cz> | 2021-09-22 20:38:45 +0200 |
---|---|---|
committer | Slávek Banko <slavek.banko@axis.cz> | 2021-09-22 20:39:03 +0200 |
commit | a86a175c4aaac30870baa8af66dfd1fc42ea1bff (patch) | |
tree | 34f2573b3579f89f7d03f5b828719747b686476f | |
parent | 3ac84fc2f49431a8c6a13d667d01da5d0760aa06 (diff) | |
download | tdebindings-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.am | 2 | ||||
-rw-r--r-- | korundum/configure.in.in (renamed from korundum/rubylib/korundum/configure.in.in) | 35 | ||||
-rw-r--r-- | korundum/rubylib/korundum/Makefile.am | 2 | ||||
-rw-r--r-- | qtruby/bin/Makefile.am | 2 | ||||
-rw-r--r-- | qtruby/configure.in.in (renamed from qtruby/rubylib/qtruby/configure.in.in) | 35 | ||||
-rw-r--r-- | qtruby/rubylib/designer/uilib/Makefile.am | 2 | ||||
-rw-r--r-- | qtruby/rubylib/qtruby/Makefile.am | 2 |
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 |