From 8301a3c8e542675e9b5f310d79ad24b9a12baaf8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Wed, 22 Sep 2021 20:38:45 +0200 Subject: Add check whether Ruby requires explicit specification of C++ standard. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko --- qtruby/bin/Makefile.am | 2 + qtruby/configure.in.in | 90 +++++++++++++++++++++++++++++++ qtruby/rubylib/designer/uilib/Makefile.am | 2 + qtruby/rubylib/qtruby/Makefile.am | 2 + qtruby/rubylib/qtruby/configure.in.in | 59 -------------------- 5 files changed, 96 insertions(+), 59 deletions(-) create mode 100644 qtruby/configure.in.in delete mode 100644 qtruby/rubylib/qtruby/configure.in.in (limited to 'qtruby') 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/configure.in.in b/qtruby/configure.in.in new file mode 100644 index 00000000..84ad88ec --- /dev/null +++ b/qtruby/configure.in.in @@ -0,0 +1,90 @@ +AC_CHECK_PROG(RUBY_EXECUTABLE, ruby, ruby) + +if test -z "RUBY_EXECUTABLE"; then + DO_NOT_COMPILE="$DO_NOT_COMPILE qtruby" +else + RUBY_MAJOR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MAJOR))"` + RUBY_MINOR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MINOR))"` + + RUBY_ARCHDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(archdir))"` + RUBY_SITEARCHDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitearchdir))"` + RUBY_SITEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitelibdir))"` + RUBY_LIBDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(libdir))"` + RUBY_RUBYLIBDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubylibdir))"` + RUBY_LIBRUBYARG=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(LIBRUBYARG_SHARED))"` + + RUBY_SERIES="$RUBY_MAJOR$RUBY_MINOR" + if test "$RUBY_SERIES" -ge "19"; then + AC_DEFINE_UNQUOTED(HAVE_RUBY_1_9, 1, [Defines if your system has Ruby 1.9.x]) + fi + + if test `${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyhdrdir))"` = "true"; then + RUBY_INCLUDEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyhdrdir))"` + if test `${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyarchhdrdir))"` = "true"; then + RUBY_ARCHINCLUDEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyarchhdrdir))"` + else + RUBY_ARCH=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(arch))"` + RUBY_ARCHINCLUDEDIR=${RUBY_INCLUDEDIR}/${RUBY_ARCH} + fi + RUBY_CFLAGS="-I${RUBY_INCLUDEDIR} -I${RUBY_ARCHINCLUDEDIR}" + else + RUBY_INCLUDEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(archdir))"` + 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_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%/} + RUBY_LIBDIR=${RUBY_LIBDIR%/} + RUBY_RUBYLIBDIR=${RUBY_RUBYLIBDIR%/} + + AC_MSG_RESULT([\ + archdir $RUBY_ARCHDIR, + sitearchdir $RUBY_SITEARCHDIR, + sitedir $RUBY_SITEDIR, + rubylibdir $RUBY_RUBYLIBDIR, + libdir $RUBY_LIBDIR, + includedir $RUBY_INCLUDEDIR, + librubyarg $RUBY_LIBRUBYARG, + cflags $RUBY_CFLAGS, + cxxflags $RUBY_CXXFLAGS]) + AC_SUBST(RUBY_ARCHDIR) + AC_SUBST(RUBY_SITEARCHDIR) + AC_SUBST(RUBY_SITEDIR) + AC_SUBST(RUBY_RUBYLIBDIR) + AC_SUBST(RUBY_LIBDIR) + AC_SUBST(RUBY_INCLUDEDIR) + 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 diff --git a/qtruby/rubylib/qtruby/configure.in.in b/qtruby/rubylib/qtruby/configure.in.in deleted file mode 100644 index db0594a3..00000000 --- a/qtruby/rubylib/qtruby/configure.in.in +++ /dev/null @@ -1,59 +0,0 @@ -AC_CHECK_PROG(RUBY_EXECUTABLE, ruby, ruby) - -if test -z "RUBY_EXECUTABLE"; then - DO_NOT_COMPILE="$DO_NOT_COMPILE qtruby" -else - RUBY_MAJOR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MAJOR))"` - RUBY_MINOR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(MINOR))"` - - RUBY_ARCHDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(archdir))"` - RUBY_SITEARCHDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitearchdir))"` - RUBY_SITEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(sitelibdir))"` - RUBY_LIBDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(libdir))"` - RUBY_RUBYLIBDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubylibdir))"` - RUBY_LIBRUBYARG=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(LIBRUBYARG_SHARED))"` - - RUBY_SERIES="$RUBY_MAJOR$RUBY_MINOR" - if test "$RUBY_SERIES" -ge "19"; then - AC_DEFINE_UNQUOTED(HAVE_RUBY_1_9, 1, [Defines if your system has Ruby 1.9.x]) - fi - - if test `${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyhdrdir))"` = "true"; then - RUBY_INCLUDEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyhdrdir))"` - if test `${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.key?(%q(rubyarchhdrdir))"` = "true"; then - RUBY_ARCHINCLUDEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(rubyarchhdrdir))"` - else - RUBY_ARCH=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(arch))"` - RUBY_ARCHINCLUDEDIR=${RUBY_INCLUDEDIR}/${RUBY_ARCH} - fi - RUBY_CFLAGS="-I${RUBY_INCLUDEDIR} -I${RUBY_ARCHINCLUDEDIR}" - else - RUBY_INCLUDEDIR=`${RUBY_EXECUTABLE} -r rbconfig -e "puts RbConfig::CONFIG.fetch(%q(archdir))"` - RUBY_CFLAGS="-I${RUBY_INCLUDEDIR}" - fi - - # Removes trailing slashes, if any, to avoid fail to install with recent libtool. - RUBY_ARCHDIR=${RUBY_ARCHDIR%/} - RUBY_SITEDIR=${RUBY_SITEDIR%/} - RUBY_LIBDIR=${RUBY_LIBDIR%/} - RUBY_RUBYLIBDIR=${RUBY_RUBYLIBDIR%/} - - AC_MSG_RESULT([\ - archdir $RUBY_ARCHDIR, - sitearchdir $RUBY_SITEARCHDIR, - sitedir $RUBY_SITEDIR, - rubylibdir $RUBY_RUBYLIBDIR, - libdir $RUBY_LIBDIR, - includedir $RUBY_INCLUDEDIR, - librubyarg $RUBY_LIBRUBYARG, - cflags $RUBY_CFLAGS]) - AC_SUBST(RUBY_ARCHDIR) - AC_SUBST(RUBY_SITEARCHDIR) - AC_SUBST(RUBY_SITEDIR) - AC_SUBST(RUBY_RUBYLIBDIR) - AC_SUBST(RUBY_LIBDIR) - AC_SUBST(RUBY_INCLUDEDIR) - AC_SUBST(RUBY_LIBRUBYARG) - AC_SUBST(RUBY_CFLAGS) -fi - -- cgit v1.2.1