[Libreoffice-commits] core.git: config_host.mk.in configure.ac solenv/gbuild

Peter Foley pefoley2 at pefoley.com
Fri Sep 19 02:07:12 PDT 2014


 config_host.mk.in          |    1 
 configure.ac               |   51 +++++++++++++++++++++++++++++++++++++++------
 solenv/gbuild/JunitTest.mk |    3 +-
 3 files changed, 48 insertions(+), 7 deletions(-)

New commits:
commit 4db2d600ebc541adfaaf0a1a176df1c74e3ae0e4
Author: Peter Foley <pefoley2 at pefoley.com>
Date:   Tue Sep 9 22:19:42 2014 -0400

    Add support for external hamcrest when using junit 4.11+
    
    Starting with junit 4.11 hamcrest is no longer bundled,
    so add a --with-hamcrest option to support this.
    
    Change-Id: Icdae946af82b9c56bf25d37cbf88275fc6a6a1eb
    Reviewed-on: https://gerrit.libreoffice.org/11383
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>
    Tested-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/config_host.mk.in b/config_host.mk.in
index e717745..605bb6b 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -239,6 +239,7 @@ export GTK_LIBS=$(gb_SPACE)@GTK_LIBS@
 export GTK_PRINT_CFLAGS=$(gb_SPACE)@GTK_PRINT_CFLAGS@
 export GTK_PRINT_LIBS=$(gb_SPACE)@GTK_PRINT_LIBS@
 export GUIBASE=@GUIBASE@
+export HAMCREST_JAR=@HAMCREST_JAR@
 export HARDLINKDELIVER=@HARDLINKDELIVER@
 export HAVE_GCC_AVX=@HAVE_GCC_AVX@
 export HAVE_GCC_BUILTIN_ATOMIC=@HAVE_GCC_BUILTIN_ATOMIC@
diff --git a/configure.ac b/configure.ac
index e5c01e8..84add6c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1987,6 +1987,15 @@ AC_ARG_WITH(junit,
     ],
 ,with_junit=yes)
 
+AC_ARG_WITH(hamcrest,
+    AS_HELP_STRING([--with-hamcrest],
+        [Specifies the hamcrest jar file to use for JUnit-based tests.
+         --without-junit disables those tests. Not relevant in the --without-java case.])
+    [
+                          Usage:     --with-hamcrest=<absolute path to hamcrest jar>
+    ],
+,with_hamcrest=yes)
+
 AC_ARG_WITH(perl-home,
     AS_HELP_STRING([--with-perl-home],
         [If you have installed Perl 5 Distribution, on your system, please
@@ -12051,23 +12060,53 @@ if test "$ENABLE_JAVA" != "" -a "$with_junit" != "no"; then
     if test "$_os" = "WINNT"; then
         OOO_JUNIT_JAR=`cygpath -m "$OOO_JUNIT_JAR"`
     fi
-    printf 'import org.junit.Before; import org.hamcrest.BaseDescription;' \
-        > conftest.java
+    printf 'import org.junit.Before;' > conftest.java
     if "$JAVACOMPILER" -classpath "$OOO_JUNIT_JAR" conftest.java >&5 2>&5; then
         AC_MSG_RESULT([$OOO_JUNIT_JAR])
     else
         AC_MSG_ERROR(
-[cannot find JUnit 4 jar, or JUnit 4 jar does not provide Hamcrest; please
-install one in the default location (/usr/share/java), specify its pathname via
---with-junit=..., or disable it via --without-junit])
+[cannot find JUnit 4 jar; please install one in the default location (/usr/share/java),
+ specify its pathname via --with-junit=..., or disable it via --without-junit])
     fi
-    rm -f conftestj.class conftestj.java
+    rm -f conftest.class conftest.java
     if test $OOO_JUNIT_JAR != ""; then
     BUILD_TYPE="$BUILD_TYPE QADEVOOO"
     fi
 fi
 AC_SUBST(OOO_JUNIT_JAR)
 
+HAMCREST_JAR=
+if test "$ENABLE_JAVA" != "" -a "$with_junit" != "no"; then
+    AC_MSG_CHECKING([for included Hamcrest])
+    printf 'import org.hamcrest.BaseDescription;' > conftest.java
+    if "$JAVACOMPILER" -classpath "$OOO_JUNIT_JAR" conftest.java >&5 2>&5; then
+        AC_MSG_RESULT([Included in $OOO_JUNIT_JAR])
+    else
+        AC_MSG_RESULT([Not included])
+        AC_MSG_CHECKING([for standalone hamcrest jar.])
+        if test "$with_hamcrest" = "yes"; then
+            if test -e /usr/share/lib/java/hamcrest.jar; then
+                HAMCREST_JAR=/usr/share/lib/java/hamcrest.jar
+            else
+                HAMCREST_JAR=/usr/share/java/hamcrest.jar
+            fi
+        else
+            HAMCREST_JAR=$with_hamcrest
+        fi
+        if test "$_os" = "WINNT"; then
+            HAMCREST_JAR=`cygpath -m "$HAMCREST_JAR"`
+        fi
+        if "$JAVACOMPILER" -classpath "$HAMCREST_JAR" conftest.java >&5 2>&5; then
+            AC_MSG_RESULT([$HAMCREST_JAR])
+        else
+            AC_MSG_ERROR([junit does not contain hamcrest; please use a junit jar that includes hamcrest, install a hamcrest jar in the default location (/usr/share/java),
+                          specify its path with --with-hamcrest=..., or disable junit with --without-junit])
+        fi
+    fi
+    rm -f conftest.class conftest.java
+fi
+AC_SUBST(HAMCREST_JAR)
+
 
 AC_SUBST(SCPDEFS)
 
diff --git a/solenv/gbuild/JunitTest.mk b/solenv/gbuild/JunitTest.mk
index 9801ed2..8370603 100644
--- a/solenv/gbuild/JunitTest.mk
+++ b/solenv/gbuild/JunitTest.mk
@@ -54,12 +54,13 @@ $(call gb_JunitTest_get_target,%) :
 	$(CLEAN_CMD)
 
 define gb_JunitTest_JunitTest
-$(call gb_JunitTest_get_target,$(1)) : T_CP := $(call gb_JavaClassSet_get_classdir,$(call gb_JunitTest_get_classsetname,$(1)))$$(gb_CLASSPATHSEP)$(OOO_JUNIT_JAR)$$(gb_CLASSPATHSEP)$(INSTROOT)/$(LIBO_URE_LIB_FOLDER)
+$(call gb_JunitTest_get_target,$(1)) : T_CP := $(call gb_JavaClassSet_get_classdir,$(call gb_JunitTest_get_classsetname,$(1)))$$(gb_CLASSPATHSEP)$(OOO_JUNIT_JAR)$(if $(HAMCREST_JAR),$$(gb_CLASSPATHSEP)$(HAMCREST_JAR))$$(gb_CLASSPATHSEP)$(INSTROOT)/$(LIBO_URE_LIB_FOLDER)
 $(call gb_JunitTest_get_target,$(1)) : CLASSES :=
 $(eval $(call gb_JunitTest_JunitTest_platform,$(1)))
 
 $(call gb_JavaClassSet_JavaClassSet,$(call gb_JunitTest_get_classsetname,$(1)))
 $(call gb_JavaClassSet_use_system_jar,$(call gb_JunitTest_get_classsetname,$(1)),$(OOO_JUNIT_JAR))
+$(if $(HAMCREST_JAR),$(call gb_JavaClassSet_use_system_jar,$(call gb_JunitTest_get_classsetname,$(1)),$(HAMCREST_JAR)))
 $(call gb_JunitTest_get_target,$(1)) : $(call gb_JavaClassSet_get_target,$(call gb_JunitTest_get_classsetname,$(1)))
 $(eval $(call gb_Module_register_target,$(call gb_JunitTest_get_target,$(1)),$(call gb_JunitTest_get_clean_target,$(1))))
 $(call gb_Helper_make_userfriendly_targets,$(1),JunitTest)


More information about the Libreoffice-commits mailing list