[HarfBuzz] harfbuzz: Branch 'master' - 2 commits

Behdad Esfahbod behdad at kemper.freedesktop.org
Fri Jan 5 12:50:47 UTC 2018


 .circleci/config.yml        |    2 -
 CMakeLists.txt              |   52 ++++++++++++++++++++++++++++++++++----------
 autogen.sh                  |    6 +++--
 src/Makefile.am             |    3 --
 src/check-defs.sh           |    2 -
 src/check-header-guards.sh  |    2 -
 src/check-libstdc++.sh      |    2 -
 src/check-static-inits.sh   |    2 -
 src/check-symbols.sh        |    2 -
 test/fuzzing/CMakeLists.txt |   11 ++++++++-
 10 files changed, 62 insertions(+), 22 deletions(-)

New commits:
commit 127bcc6ece4da64e807f652dd84a17c6a8c5e300
Merge: 72bec1cd 8c0d1916
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Fri Jan 5 12:50:22 2018 +0000

    Merge remote-tracking branch 'fdo/master'

commit 72bec1cd09f919f3826345db4832752ec96ff5c5
Author: Ebrahim Byagowi <ebrahim at gnu.org>
Date:   Fri Jan 5 12:42:20 2018 +0330

    Improve tests (#679)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index 93913a82..2a82abaa 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -59,7 +59,7 @@ jobs:
       - checkout
       - run: apt update && apt install -y pkg-config ragel gtk-doc-tools libfreetype6-dev libglib2.0-dev libcairo2-dev libicu-dev libgraphite2-dev
       - run: ./autogen.sh && make distcheck
-      - run: make distdir && cd harfbuzz-* && cmake -DHB_HAVE_FREETYPE=ON -DHB_HAVE_GLIB=ON -DHB_BUILD_UTILS=ON -Bbuild -H. -GNinja && ninja -Cbuild && CTEST_OUTPUT_ON_FAILURE=1 ninja -Cbuild test && ninja -Cbuild install
+      - run: make distdir && cd harfbuzz-* && cmake -DDHB_CHECK=ON -Bbuild -H. -GNinja && ninja -Cbuild && CTEST_OUTPUT_ON_FAILURE=1 ninja -Cbuild test && ninja -Cbuild install
 
   psvita:
     docker:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4b713b63..ebbfbe3c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -61,6 +61,25 @@ if (HB_HAVE_INTROSPECTION)
   set (HB_HAVE_GLIB ON)
 endif ()
 
+option(HB_CHECK OFF "Do a configuration suitable for testing (shared library and enable all options)")
+if (HB_CHECK)
+  set (BUILD_SHARED_LIBS ON)
+  set (HB_BUILD_UTILS ON)
+  set (HB_BUILTIN_UCDN ON)
+  set (HB_HAVE_ICU)
+  set (HB_HAVE_GLIB ON)
+  #set (HB_HAVE_GOBJECT ON)
+  #set (HB_HAVE_INTROSPECTION ON)
+  set (HB_HAVE_FREETYPE ON)
+  set (HB_HAVE_GRAPHITE2 ON)
+  if (WIN32)
+    set (HB_HAVE_UNISCRIBE ON)
+    set (HB_HAVE_DIRECTWRITE ON)
+  elseif (APPLE)
+    set (HB_HAVE_CORETEXT ON)
+  endif ()
+endif ()
+
 include_directories(AFTER
   ${PROJECT_SOURCE_DIR}/src
   ${PROJECT_BINARY_DIR}/src
@@ -71,6 +90,9 @@ add_definitions(-DHAVE_FALLBACK)
 
 if (BUILD_SHARED_LIBS)
   add_definitions(-DHAVE_ATEXIT)
+  if (APPLE)
+    set (CMAKE_MACOSX_RPATH ON)
+  endif ()
 endif ()
 
 if (MSVC)
@@ -710,23 +732,31 @@ if (UNIX AND CMAKE_GENERATOR STREQUAL "Ninja")
   endif ()
 endif ()
 
+
 ## Tests
 if (UNIX)
   if (BUILD_SHARED_LIBS)
-    add_test(NAME check-static-inits.sh
-      COMMAND ${PROJECT_SOURCE_DIR}/src/check-static-inits.sh
-      WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/CMakeFiles/harfbuzz.dir/src # hack
-    )
     # does some "make" stuff inside
-    # add_test(NAME check-defs.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-defs.sh)
-    add_test(NAME check-libstdc++.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-libstdc++.sh)
-    add_test(NAME check-symbols.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-symbols.sh)
+    #add_test(NAME check-defs.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-defs.sh)
+    #set_tests_properties(check-defs.sh PROPERTIES ENVIRONMENT "libs=.")
+
+    # broken on cmake builds right now :(
+    #add_test(NAME check-symbols.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-symbols.sh)
+    #add_test(NAME check-libstdc++.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-libstdc++.sh)
+    #set_tests_properties(check-symbols.sh check-libstdc++.sh PROPERTIES ENVIRONMENT "libs=.")
+
+    if (NOT APPLE)
+      add_test(NAME check-static-inits.sh
+        COMMAND ${PROJECT_SOURCE_DIR}/src/check-static-inits.sh
+        WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/CMakeFiles/harfbuzz.dir/src # ugly hack
+      )
+      set_tests_properties(check-static-inits.sh PROPERTIES ENVIRONMENT "libs=.")
+    endif ()
   else ()
-    message(WARN "You can enable BUILD_SHARED_LIBS for more tests.")
+    message(WARN "Enable BUILD_SHARED_LIBS for more tests.")
   endif ()
 
-  # disabled as it doesn't work anyway
-  if (OFF AND IN_HB_DIST)
+  if (IN_HB_DIST)
     add_test(NAME check-c-linkage-decls.sh COMMAND ./check-c-linkage-decls.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
     add_test(NAME check-header-guards.sh COMMAND ./check-header-guards.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
   endif ()
@@ -737,4 +767,4 @@ endif ()
 
 # Needs to come last so that variables defined above are passed to
 # subdirectories.
-add_subdirectory(test)
+add_subdirectory(test)
\ No newline at end of file
diff --git a/autogen.sh b/autogen.sh
index ff1b0c0c..cbc8627d 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -42,5 +42,7 @@ echo "running autoreconf --force --install --verbose"
 autoreconf --force --install --verbose || exit $?
 
 cd $olddir
-echo "running configure $@"
-test -n "$NOCONFIGURE" || "$srcdir/configure" "$@"
+test -n "$NOCONFIGURE" || {
+	echo "running configure $@"
+	"$srcdir/configure" "$@"
+}
diff --git a/src/Makefile.am b/src/Makefile.am
index b34d9421..b62e7d0a 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -134,7 +134,7 @@ pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = harfbuzz.pc
 EXTRA_DIST += harfbuzz.pc.in
 
-FUZZING_CPPFLAGS= \
+FUZZING_CPPFLAGS = \
 	-DHB_NDEBUG \
 	-DHB_MAX_NESTING_LEVEL=3 \
 	-DHB_SANITIZE_MAX_EDITS=3 \
@@ -324,7 +324,6 @@ test_ot_tag_LDADD = libharfbuzz.la $(HBLIBS)
 TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS)
 TESTS_ENVIRONMENT = \
 	srcdir="$(srcdir)" \
-	libs=".libs" \
 	MAKE="$(MAKE) $(AM_MAKEFLAGS)" \
 	HBSOURCES="$(HBSOURCES)" \
 	HBHEADERS="$(HBHEADERS) $(HBNODISTHEADERS)" \
diff --git a/src/check-defs.sh b/src/check-defs.sh
index ee2cafed..c7eac355 100755
--- a/src/check-defs.sh
+++ b/src/check-defs.sh
@@ -4,7 +4,7 @@ LC_ALL=C
 export LC_ALL
 
 test -z "$srcdir" && srcdir=.
-test -z "$libs" && libs=.
+test -z "$libs" && libs=.libs
 test -z "$MAKE" && MAKE=make
 stat=0
 
diff --git a/src/check-header-guards.sh b/src/check-header-guards.sh
index 355d81b5..b67640fc 100755
--- a/src/check-header-guards.sh
+++ b/src/check-header-guards.sh
@@ -6,7 +6,7 @@ export LC_ALL
 test -z "$srcdir" && srcdir=.
 stat=0
 
-test "x$HBHEADERS" = x && HBHEADERS=`cd "$srcdir"; find . -maxdepth 1 -name 'hb*.h'`
+test "x$HBHEADERS" = x && HBHEADERS=`cd "$srcdir"; find . -maxdepth 1 -name 'hb*.h' ! -name 'hb-gobject-structs.h'`
 test "x$HBSOURCES" = x && HBSOURCES=`cd "$srcdir"; find . -maxdepth 1 -name 'hb-*.cc' -or -name 'hb-*.hh'`
 
 for x in $HBHEADERS $HBSOURCES; do
diff --git a/src/check-libstdc++.sh b/src/check-libstdc++.sh
index 9d73814e..4295180c 100755
--- a/src/check-libstdc++.sh
+++ b/src/check-libstdc++.sh
@@ -4,7 +4,7 @@ LC_ALL=C
 export LC_ALL
 
 test -z "$srcdir" && srcdir=.
-test -z "$libs" && libs=.
+test -z "$libs" && libs=.libs
 stat=0
 
 
diff --git a/src/check-static-inits.sh b/src/check-static-inits.sh
index aa1b129d..71551cbd 100755
--- a/src/check-static-inits.sh
+++ b/src/check-static-inits.sh
@@ -4,7 +4,7 @@ LC_ALL=C
 export LC_ALL
 
 test -z "$srcdir" && srcdir=.
-test -z "$libs" && libs=.
+test -z "$libs" && libs=.libs
 stat=0
 
 
diff --git a/src/check-symbols.sh b/src/check-symbols.sh
index f1bba470..3adf65f8 100755
--- a/src/check-symbols.sh
+++ b/src/check-symbols.sh
@@ -4,7 +4,7 @@ LC_ALL=C
 export LC_ALL
 
 test -z "$srcdir" && srcdir=.
-test -z "$libs" && libs=.
+test -z "$libs" && libs=.libs
 stat=0
 
 
diff --git a/test/fuzzing/CMakeLists.txt b/test/fuzzing/CMakeLists.txt
index 06355991..e31c7442 100644
--- a/test/fuzzing/CMakeLists.txt
+++ b/test/fuzzing/CMakeLists.txt
@@ -1,8 +1,17 @@
-if (HB_HAVE_GLIB)
+if (HB_CHECK)
   file (READ "${CMAKE_CURRENT_SOURCE_DIR}/Makefile.am" MAKEFILEAM)
   extract_make_variable (hb_fuzzer_SOURCES ${MAKEFILEAM})
+
+  # TODO: enable these two
+  #extract_make_variable (FUZZING_CPPFLAGS ${MAKEFILEAM}) # extracting regex fail
+  #add_executable (hb-fuzzer # it should be run only after ragel execution
+  #  ${project_sources} ${project_extra_sources} ${project_headers}
+  #  ${hb_fuzzer_SOURCES})
+
   add_executable (hb-fuzzer ${hb_fuzzer_SOURCES})
   target_link_libraries (hb-fuzzer harfbuzz)
+
+  target_compile_definitions(hb-fuzzer PUBLIC ${FUZZING_CPPFLAGS})
   add_test (NAME hb-fuzzer
     COMMAND python run-fuzzer-tests.py $<TARGET_FILE:hb-fuzzer>
     WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})


More information about the HarfBuzz mailing list