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

Behdad Esfahbod behdad at kemper.freedesktop.org
Wed Jan 17 17:48:16 UTC 2018


 .circleci/config.yml |    2 -
 CMakeLists.txt       |   60 +++++++++++++++++++++++++++++++++------------------
 util/options.cc      |    2 -
 3 files changed, 41 insertions(+), 23 deletions(-)

New commits:
commit 4c4a9fc8617fed9bc1a7805c9aed294b4f6b66ea
Author: Behdad Esfahbod <behdad at behdad.org>
Date:   Wed Jan 17 09:47:50 2018 -0800

    Typo
    
    Fixes https://github.com/harfbuzz/harfbuzz/issues/711

diff --git a/util/options.cc b/util/options.cc
index f4ac445f..d9486f8a 100644
--- a/util/options.cc
+++ b/util/options.cc
@@ -546,7 +546,7 @@ font_options_t::add_options (option_parser_t *parser)
   };
   parser->add_group (entries2,
 		     "variations",
-		     "Varitions options:",
+		     "Variations options:",
 		     "Options for font variations used",
 		     this);
 }
commit 90f01bad637c8b1214f46d4df6d9552a6a728e29
Author: Ebrahim Byagowi <ebrahim at gnu.org>
Date:   Tue Jan 16 22:00:21 2018 +0330

    [cmake] don't link to libstdc++ (#707)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9c4b0f09..d75bb58c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -519,6 +519,19 @@ endif ()
 add_library(harfbuzz ${project_sources} ${project_extra_sources} ${project_headers})
 target_link_libraries(harfbuzz ${THIRD_PARTY_LIBS})
 
+if (UNIX OR MINGW)
+  # Make symbols link locally
+  link_libraries(-Bsymbolic-functions)
+
+  # Make sure we don't link to libstdc++
+  set (CMAKE_CXX_FLAGS "-fno-rtti -fno-exceptions ${CMAKE_CXX_FLAGS}")
+  if (NOT APPLE)
+    set (CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
+    set (CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
+    set_target_properties(harfbuzz PROPERTIES LINKER_LANGUAGE C)
+  endif ()
+endif ()
+
 
 ## Define harfbuzz-gobject library
 if (HB_HAVE_GOBJECT)
@@ -767,34 +780,33 @@ endif ()
 
 
 ## Tests
-if (UNIX)
+if (UNIX OR MINGW)
   if (BUILD_SHARED_LIBS)
     # 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)
-    #set_tests_properties(check-defs.sh check-libstdc++.sh PROPERTIES ENVIRONMENT "libs=.")
+    #set_tests_properties(check-defs.sh PROPERTIES ENVIRONMENT "libs=.")
 
     add_test(NAME check-symbols.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-symbols.sh)
     set_tests_properties(check-symbols.sh PROPERTIES ENVIRONMENT "libs=.")
 
     if (NOT APPLE)
+      add_test(NAME check-libstdc++.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-libstdc++.sh)
       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=.")
+      set_tests_properties(check-libstdc++.sh check-static-inits.sh
+        PROPERTIES ENVIRONMENT "libs=.")
     endif ()
-  else ()
-    message(WARN "Enable BUILD_SHARED_LIBS for more tests.")
-  endif ()
-
-  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 ()
 
-  add_test(NAME check-externs.sh COMMAND ./check-externs.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
-  add_test(NAME check-includes.sh COMMAND ./check-includes.sh WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
+  add_test(NAME check-c-linkage-decls.sh COMMAND ./check-c-linkage-decls.sh)
+  add_test(NAME check-header-guards.sh COMMAND ./check-header-guards.sh)
+  add_test(NAME check-externs.sh COMMAND ./check-externs.sh)
+  add_test(NAME check-includes.sh COMMAND ./check-includes.sh)
+  set_tests_properties(
+    check-c-linkage-decls.sh check-header-guards.sh check-externs.sh check-includes.sh
+    PROPERTIES WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/src)
 endif ()
 
 # Needs to come last so that variables defined above are passed to
commit 5e14e5f65d3dd1ed471ed73fab7e3207ae04e8fb
Author: rdb <rdb at users.noreply.github.com>
Date:   Tue Jan 16 17:04:33 2018 +0100

    [cmake] Fix for CMake 3.0 and below (#706)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8391d5f..9c4b0f09 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -493,7 +493,7 @@ file(WRITE "${PROJECT_BINARY_DIR}/try_compile_intel_atomic_primitives.c"
 ")
 try_compile(HB_HAVE_INTEL_ATOMIC_PRIMITIVES
   ${PROJECT_BINARY_DIR}/try_compile_intel_atomic_primitives
-  SOURCES ${PROJECT_BINARY_DIR}/try_compile_intel_atomic_primitives.c)
+  ${PROJECT_BINARY_DIR}/try_compile_intel_atomic_primitives.c)
 if (HB_HAVE_INTEL_ATOMIC_PRIMITIVES)
   add_definitions(-DHAVE_INTEL_ATOMIC_PRIMITIVES)
 endif ()
@@ -509,7 +509,7 @@ file(WRITE "${PROJECT_BINARY_DIR}/try_compile_solaris_atomic_ops.c"
 ")
 try_compile(HB_HAVE_SOLARIS_ATOMIC_OPS
   ${PROJECT_BINARY_DIR}/try_compile_solaris_atomic_ops
-  SOURCES ${PROJECT_BINARY_DIR}/try_compile_solaris_atomic_ops.c)
+  ${PROJECT_BINARY_DIR}/try_compile_solaris_atomic_ops.c)
 if (HB_HAVE_SOLARIS_ATOMIC_OPS)
   add_definitions(-DHAVE_SOLARIS_ATOMIC_OPS)
 endif ()
@@ -799,4 +799,4 @@ endif ()
 
 # Needs to come last so that variables defined above are passed to
 # subdirectories.
-add_subdirectory(test)
\ No newline at end of file
+add_subdirectory(test)
commit c97a7eca7f7b6fc1c50a4ac7fccf3fa2d777430e
Author: Ebrahim Byagowi <ebrahim at gnu.org>
Date:   Tue Jan 16 14:18:09 2018 +0330

    [cmake] Fix symbols visibility and enable check-symbols.sh test (#705)

diff --git a/.circleci/config.yml b/.circleci/config.yml
index 6f9a5c42..cd54b659 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -44,7 +44,7 @@ jobs:
     steps:
       - 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: cmake -DHB_HAVE_FREETYPE=ON -DHB_HAVE_GRAPHITE2=ON -DHB_BUILTIN_UCDN=ON -DHB_HAVE_GLIB=ON -DHB_HAVE_ICU=ON -DHB_BUILD_UTILS=ON -Bbuild -H. -GNinja
+      - run: cmake -DHB_CHECK=ON -Bbuild -H. -GNinja
       - run: ninja -Cbuild
       - run: CTEST_OUTPUT_ON_FAILURE=1 ninja -Cbuild test
       - run: ninja -Cbuild install
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4d52668b..f8391d5f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,7 +5,8 @@ enable_testing()
 
 ## Limit framework build to Xcode generator
 if (BUILD_FRAMEWORK)
-  # for a framework on macOS, use `cmake .. -DBUILD_FRAMEWORK:BOOL=true -G Xcode`
+  # for a framework build on macOS, use:
+  # cmake -DBUILD_FRAMEWORK=ON -Bbuild -H. -GXcode && cmake --build build
   if (NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode")
     message(FATAL_ERROR
       "You should use Xcode generator with BUILD_FRAMEWORK enabled")
@@ -121,8 +122,14 @@ if (MSVC)
   add_definitions(-wd4244 -wd4267 -D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS)
 endif ()
 
-if (WIN32 AND NOT MINGW AND BUILD_SHARED_LIBS)
-  add_definitions("-DHB_EXTERN=__declspec(dllexport) extern")
+if (BUILD_SHARED_LIBS)
+  if (WIN32 AND NOT MINGW)
+    add_definitions("-DHB_EXTERN=__declspec(dllexport) extern")
+  else ()
+    set (CMAKE_CXX_FLAGS "-fvisibility=hidden ${CMAKE_CXX_FLAGS}")
+    set (CMAKE_C_FLAGS "-fvisibility=hidden ${CMAKE_CXX_FLAGS}")
+    add_definitions("-DHB_EXTERN=__attribute__((visibility(\"default\"))) extern")
+  endif ()
 endif ()
 
 
@@ -764,12 +771,11 @@ if (UNIX)
   if (BUILD_SHARED_LIBS)
     # does some "make" stuff inside
     #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=.")
+    #set_tests_properties(check-defs.sh check-libstdc++.sh PROPERTIES ENVIRONMENT "libs=.")
+
+    add_test(NAME check-symbols.sh COMMAND ${PROJECT_SOURCE_DIR}/src/check-symbols.sh)
+    set_tests_properties(check-symbols.sh PROPERTIES ENVIRONMENT "libs=.")
 
     if (NOT APPLE)
       add_test(NAME check-static-inits.sh


More information about the HarfBuzz mailing list