Branch: master

046b21e2 2019-11-18 13:11:40 François Andriot
Add Ruby-2.6 detection.

Signed-off-by: gregory guy <gregory-tde@...>
M lib/kross/configure.in.in

l

diff --git a/lib/kross/configure.in.in b/lib/kross/configure.in.in
index 4af2a49..b1be3dd 100644
--- a/lib/kross/configure.in.in
+++ b/lib/kross/configure.in.in
@@ -36,7 +36,7 @@
         RUBY_CFLAGS=`$PKGCONFIG ruby --cflags`
       fi
       if test -z "$RUBY_VERSION"; then
-        for RUBY_TEST in 2.5 2.4 2.3 2.2 2.1 2.0 1.9; do
+        for RUBY_TEST in 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.9; do
           RUBY_VERSION=`$PKG_CONFIG ruby-$RUBY_TEST --modversion 2>/dev/null`
           if test -n "$RUBY_VERSION"; then
             RUBY_CFLAGS=`$PKG_CONFIG ruby-$RUBY_TEST --cflags`
fa79ac9e 2019-11-24 20:05:57 gregory guy
Fix bug #2056, koffice does not rely anymore on pkg-config
to build Ruby binding, only rbconfig.rb is needed.

Signed-off-by: gregory guy <gregory-tde@...>
Signed-off-by: Slávek Banko <slavek.banko@...>
M lib/kross/configure.in.in

l

diff --git a/lib/kross/configure.in.in b/lib/kross/configure.in.in
index b1be3dd..ad95e62 100644
--- a/lib/kross/configure.in.in
+++ b/lib/kross/configure.in.in
@@ -1,7 +1,3 @@
-KDE_FIND_PATH(pkg-config, PKGCONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin], [
-  AC_MSG_WARN([Could not find pkg-config])
-])
-
 AC_ARG_ENABLE(scripting,
     AC_HELP_STRING([--enable-scripting],
                    [build scripting library (Kross) [default=yes]]),
@@ -25,64 +21,49 @@
 # Check for Ruby
 
 if test "x$compile_kross" = "xyes" ; then
-  AC_CHECK_PROGS([RUBY], [ruby ruby1.8 ruby18 ruby1.9 ruby19], ruby)
+  AC_CHECK_PROG(RUBY_EXECUTABLE, ruby, ruby)
 
-  if test -n "$RUBY"; then
+  if test -n "$RUBY_EXECUTABLE"; then
     AC_MSG_CHECKING(for Ruby dirs)
-    # Note: pkgconfig file exists only for ruby >= 1.9.3
-    if test -n "$PKGCONFIG"; then
-      RUBY_VERSION=`$PKGCONFIG ruby --modversion 2>/dev/null`
-      if test -n "$RUBY_VERSION"; then
-        RUBY_CFLAGS=`$PKGCONFIG ruby --cflags`
-      fi
-      if test -z "$RUBY_VERSION"; then
-        for RUBY_TEST in 2.6 2.5 2.4 2.3 2.2 2.1 2.0 1.9; do
-          RUBY_VERSION=`$PKG_CONFIG ruby-$RUBY_TEST --modversion 2>/dev/null`
-          if test -n "$RUBY_VERSION"; then
-            RUBY_CFLAGS=`$PKG_CONFIG ruby-$RUBY_TEST --cflags`
-            break
-          fi
-        done
-      fi
-      if test -z "$RUBY_VERSION"; then
-        # pkgconfig file does not exist but might be 1.9.1: RUBY_VERSION defined in ruby/version.h
-        if test -n "$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubyhdrdir"@:>@)'"; then
-          # rubyhdrdir parameter works only in >=1.9.1; this is 1.9.1
-          RUBY_MAJOR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"['MAJOR']"@:>@)'`
-          RUBY_MINOR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"['MINOR']"@:>@)'`
-          RUBY_TEENY=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"['TEENY']"@:>@)'`
-          if test "$RUBY_MAJOR" == "1" && test "$RUBY_MINOR" == "9"; then
-            RUBY_VERSION="$RUBY_MAJOR.$RUBY_MINOR.$RUBY_TEENY"
-            RUBY_CFLAGS="-I`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubyhdrdir"@:>@)'`"
-            RUBY_CFLAGS="$RUBY_CFLAGS/`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"arch"@:>@)'` $RUBY_CFLAGS"
-            if test -n "`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`"; then
-              RUBY_ENABLESHARED=yes
-            fi
-          fi
-        fi
-      fi
-      if test -n "$RUBY_VERSION"; then
-        RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"archdir"@:>@)'`
-        RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitearchdir"@:>@)'`
-        RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"sitelibdir"@:>@)'`
-        RUBY_RUBYLIBDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubylibdir"@:>@)'`
-        RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"libdir"@:>@)'`
-        RUBY_INCLUDEDIR=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"rubyhdrdir"@:>@)'`
-        RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
-        RUBY_ENABLESHARED=yes
-        AC_DEFINE_UNQUOTED(HAVE_RUBY_1_9, 1, [Defines if your system has Ruby 1.9.x])
-      fi
-    fi
-    if test -z "$RUBY_VERSION"; then
-      RUBY_ARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"archdir"@:>@)'`
-      RUBY_SITEARCHDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'`
-      RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
-      RUBY_RUBYLIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubylibdir"@:>@)'`
-      RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
-      RUBY_INCLUDEDIR=$RUBY_ARCHDIR
-      RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
+
+    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))"`
+    if test -n "$RUBY_LIBRUBYARG"; then
       RUBY_ENABLESHARED=yes
     fi
+
+    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,
@@ -94,56 +75,44 @@
                     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_SITEDIR)
     AC_SUBST(RUBY_CFLAGS)
     AC_SUBST(RUBY_ENABLESHARED)
 
-    AC_MSG_CHECKING(for Ruby header)
 
-    if test ! -r $RUBY_INCLUDEDIR/ruby.h; then
-      # if $RUBY_INCLUDEDIR is not valid try to use $RUBY_ARCHDIR
-      RUBY_INCLUDEDIR=$RUBY_ARCHDIR
-    fi
+    AC_MSG_CHECKING(Ruby shared library)
+    if test "x$RUBY_ENABLESHARED" != "xyes" ; then
+      AC_MSG_RESULT([shared library not found])
+      RUBY_LIBDIR=""
+    else
+      AC_MSG_RESULT([found]) # shared library link arg
 
-      AC_MSG_RESULT([found]) # header
-
-      AC_MSG_CHECKING(Ruby shared library)
-      if test "x$RUBY_ENABLESHARED" != "xyes" ; then
-        AC_MSG_RESULT([shared library not found])
-        RUBY_LIBDIR="" 
-      else
-        if test -z "$RUBY_LIBRUBYARG" ; then
-          AC_MSG_RESULT([link argument not found])
-          RUBY_LIBDIR="" 
-        else
-          AC_MSG_RESULT([found]) # shared library link arg
-
-          AC_MSG_CHECKING([if C++ program with ruby can be compiled])
-          AC_LANG_SAVE
-          AC_LANG_CPLUSPLUS
-          ac_save_CXXFLAGS="$CXXFLAGS"
-          CXXFLAGS="$CXXFLAGS -I$RUBY_INCLUDEDIR $RUBY_CFLAGS"
-          AC_CACHE_VAL(ruby_build,
-          [
-            AC_TRY_COMPILE([
-                #include <ruby.h>
-            ],[
-                ruby_init();
-                return 0;
-            ], ruby_build=yes,
-            ruby_build=no)
-          ])
-          AC_MSG_RESULT($ruby_build)
-          if test "$ruby_build" = "no"; then
-            RUBY_LIBDIR=""
-          fi
-          CXXFLAGS="$ac_save_CXXFLAGS"
-          AC_LANG_RESTORE
-        fi # have ruby shared lib argument
-      fi # have shared lib
+      AC_MSG_CHECKING([if C++ program with ruby can be compiled])
+      AC_LANG_SAVE
+      AC_LANG_CPLUSPLUS
+      ac_save_CXXFLAGS="$CXXFLAGS"
+      CXXFLAGS="$CXXFLAGS -I$RUBY_INCLUDEDIR $RUBY_CFLAGS"
+      AC_CACHE_VAL(ruby_build,
+      [
+        AC_TRY_COMPILE([
+            #include <ruby.h>
+        ],[
+            ruby_init();
+            return 0;
+        ], ruby_build=yes,
+        ruby_build=no)
+      ])
+      AC_MSG_RESULT($ruby_build)
+      if test "$ruby_build" = "no"; then
+        RUBY_LIBDIR=""
+      fi
+      CXXFLAGS="$ac_save_CXXFLAGS"
+      AC_LANG_RESTORE
+    fi # have shared lib
   fi # have ruby
 fi # compiling kross
 

Branch: r14.0.x

920efbbb 2019-11-25 15:40:12 gregory guy
Fix bug #2056, koffice does not rely anymore on pkg-config
to build Ruby binding, only rbconfig.rb is needed.

Signed-off-by: gregory guy <gregory-tde@...>
Signed-off-by: Slávek Banko <slavek.banko@...>
(cherry picked from commit fa79ac9effade022edb992f78f7efe1da4fc1f87)
M lib/kross/configure.in.in

l

diff --git a/lib/kross/configure.in.in b/lib/kross/configure.in.in
index b1be3dd..ad95e62 100644
--- a/lib/kross/configure.in.in
+++ b/lib/kross/configure.in.in
@@ -1,7 +1,3 @@
-KDE_FIND_PATH(pkg-config, PKGCONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/bin /usr/local/bin /opt/local/bin], [
-  AC_MSG_WARN([Could not find pkg-config])
-])
-
 AC_ARG_ENABLE(scripting,
     AC_HELP_STRING([--enable-scripting],
                    [build scripting library (Kross) [default=yes]]),
@@ -25,64 +21,49 @@
 # Check for Ruby
 
 if test "x$compile_kross" = "xyes" ; then
-  AC_CHECK_PROGS([RUBY], [ruby ruby1.8 ruby18 ruby1.9 ruby19], ruby)
+  AC_CHECK_PROG(RUBY_EXECUTABLE, ruby, ruby)
 
-  if test -n "$RUBY"; then
+  if test -n "$RUBY_EXECUTABLE"; then
** Diff limit reached (max: 250 lines) **