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:38:45 +0200 |
commit | 8301a3c8e542675e9b5f310d79ad24b9a12baaf8 (patch) | |
tree | d40d1bc1f37094819f52c6813f023fa641f0ec37 | |
parent | a62663c5fdfe5093a2a720e31b55cef3de707e6a (diff) | |
download | tdebindings-8301a3c8e542675e9b5f310d79ad24b9a12baaf8.tar.gz tdebindings-8301a3c8e542675e9b5f310d79ad24b9a12baaf8.zip |
Add check whether Ruby requires explicit specification of C++ standard.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
-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 508f7731..47a8bb02 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 840b6ab6..74995c3d 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 a1005f0b..988ba3d4 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 45876ed6..80363009 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 7083719c..c273c599 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 |