Commit Graph

59 Commits

Author SHA1 Message Date
Ebrahim Byagowi
ac92ed7d68
Set inline hidden flag only on shared library building
To avoid need of CMP0063 which is not available on older CMake versions
2018-05-08 01:05:15 +04:30
Ebrahim Byagowi
eff36cd8f0
Minor build related changes 2018-03-30 22:25:35 +04:30
Ebrahim Byagowi
8fd55422c3
Implement an internal emojis dumper tool (#909)
Later to be expanded to a more general tool but for now it only supports CBDT, SVG and CBDT.
2018-03-27 16:57:09 +04:30
Nikolaus Waxweiler
95f0458f44 Policy 0063 must be enabled to have hidden inline visibility... (#900)
...on static builds.
2018-03-24 00:08:11 +04:30
Joel Winarske
d68f00e4d8 Do feature test before adding -Bsymbolic-functions, cmake part (#889) 2018-03-16 22:44:27 +03:30
Ebrahim Byagowi
42d3271cc3
[cmake] Don't hide symbols by default (#891)
But keep use of cmake idiomatic way of making inlines hidden
2018-03-16 22:39:58 +03:30
Nikolaus Waxweiler
22de9bf56d Enable implicit symbol hiding for all libraries, static and shared
This covers all built libraries now and both static and shared builds.
2018-03-14 10:29:24 +00:00
Nikolaus Waxweiler
ce975dce7a CMake: hide symbols by default on non-MSVC, define export attribute
This change makes sure that non-MSVC builds using CMake properly hide
non-exported functions.
2018-03-14 00:50:32 +00:00
Chun-wei Fan
7c43adab6d CMake: Fix utility program installation
Put in the utility program that was missed in installation by replacing
the one that was duplicated.
2018-03-13 20:17:59 +08:00
Chun-wei Fan
e9b8002a60 CMake: Fix introspection on Windows
The list of source files to pass to g-ir-scanner is becoming too
long for Windows, as Windows imposes a 8192-character limit for command
lines, so we need to first transform that list into a listings file, and
then use the --filelist option for g-ir-scanner to build the
introspection files.
2018-03-13 20:17:59 +08:00
Chun-wei Fan
89dbabff65 configure.ac/CMake: Check for round() and stdbool.h
Not all the compilers that HarfBuzz is buildable on supports round() and
has the header stdbool.h, so we check for them and define HAVE_ROUND and
HAVE_STDBOOL_H repsectively in our CFLAGS so that we include them only
when they are found, or use fallback implementations when necessary.

Also include FindPythonInterp earlier as we need PYTHON_EXECUTABLE to be
set for running the tests.
2018-03-13 20:13:38 +08:00
Ebrahim Byagowi
0eec33154a
[cmake] cleanup (#846) 2018-02-28 11:53:39 +03:30
Garret Rieger
f757757eda [subset] Add cmake build def for test-unicode-ranges. 2018-02-26 16:00:33 -08:00
Behdad Esfahbod
b91e8da36e Include hb-version.h in git (#825) 2018-02-24 10:21:17 +03:30
Behdad Esfahbod
e0939d811f Clean up check-defs and check-symbols (#821)
Also, call c++filt on their results.

Also build and fix and check harfbuzz-gobject.def

Also changes harfbuzz-gobject to distribute generated enum sources.
2018-02-24 00:49:34 +03:30
Ebrahim Byagowi
89b82814b6 Add a continuous builder using fswatch 2018-02-18 23:56:00 +03:30
Ebrahim Byagowi
a9b650d384
Apply check-defs.sh to -icu and -subset, toward mingw fix (#780) 2018-02-12 15:10:13 +03:30
Ebrahim Byagowi
844f48ea9a
Fix symbol exporting and libstdc++ linkage of hb-subset (#769) 2018-02-10 23:13:12 +03:30
Behdad Esfahbod
9682ef135f Minor fixups 2018-02-08 17:35:57 -06:00
Garret Rieger
35eeb893ef Don't include subset headers in libharfbuzz. 2018-02-08 17:31:11 -06:00
Garret Rieger
0f3c756cbf Add CMake config for building a separate harfbuzz-subset. 2018-02-08 17:31:11 -06:00
Garret Rieger
f83a43b561 Add CMake configuration for all of the new subsetting code. 2018-02-04 12:57:34 -08:00
Ebrahim Byagowi
07885e65ad
[cmake] unistd typo fix (#747) 2018-02-03 12:53:48 +03:30
Ebrahim Byagowi
29d901286e
[cmake] Build src/ executables (#733) 2018-01-30 10:01:46 +03:30
Ebrahim Byagowi
c41b7fc105
[cmake] Use -fvisibility-inlines-hidden instead (#726) 2018-01-25 09:53:32 +03:30
Ebrahim Byagowi
3d61576606
[cmake] fix symbol exporting issue on newer gcc (#724) 2018-01-22 21:23:19 +03:30
Ebrahim Byagowi
8b60e7c2c3
[ci] minor, less hacks (#722) 2018-01-22 18:37:26 +03:30
Ebrahim Byagowi
00806149b9
Improve avoiding C++ linkage, definition creation and cmake tests (#710) 2018-01-19 01:12:31 +03:30
Ebrahim Byagowi
90f01bad63
[cmake] don't link to libstdc++ (#707) 2018-01-16 22:00:21 +03:30
rdb
5e14e5f65d [cmake] Fix for CMake 3.0 and below (#706) 2018-01-16 19:34:33 +03:30
Ebrahim Byagowi
c97a7eca7f
[cmake] Fix symbols visibility and enable check-symbols.sh test (#705) 2018-01-16 14:18:09 +03:30
Ebrahim Byagowi
90e3c9e69e
[cmake] Fix hb-blob test (#699) 2018-01-11 12:31:05 +03:30
Ebrahim Byagowi
e24bea8e91
[cmake] Another try on making sure feature testing is working (#691) 2018-01-10 23:51:56 +03:30
Ebrahim Byagowi
71e0ed9cba
[cmake] Add header existence tests (#685) 2018-01-10 15:45:12 +03:30
Ebrahim Byagowi
3c7aeb5c64
[cmake] Add autotools like feature testing (#683) 2018-01-09 01:39:42 +03:30
Ebrahim Byagowi
72bec1cd09
Improve tests (#679) 2018-01-05 12:42:20 +03:30
Bruce Mitchener
4f80078eb0 [cmake] Colorize output when using cmake + ninja. (#674)
Due to how ninja runs clang and gcc, it doesn't colorize the output
like make does. This forces color output in this situation.
2018-01-04 15:07:35 +03:30
Ebrahim Byagowi
5ed26fc5bd
[cmake] Run src/ tests (#675) 2018-01-04 10:11:34 +03:30
Ebrahim Byagowi
2dbdeb1421
[cmake] Run fuzzing and shaping tests (#666) 2017-12-29 23:13:29 +03:30
Ebrahim Byagowi
24b30faa2a
[cmake] Use GNUInstallDirs values (#665) 2017-12-25 22:01:28 +03:30
Khaled Hosny
c860955148 Add API tests to cmake build 2017-12-06 15:25:10 +02:00
ebraminio
7c6937e7c7
Move all references of old url to the new address (#622) 2017-11-20 14:49:22 -05:00
Chun-wei Fan
41b1825196 CMake builds: Support introspection builds
This adds support for introspection builds on Windows that is enabled by
the HB_HAVE_INTROSPECTION option, which will also enable HB_HAVE_GOBJECT
(and so HB_HAVE_GLIB) as they are required for introspection.

In order for this to work one must ensure that the Python installation
listed in PYTHON_EXECUTABLE is the same Python release series that was
used to build _giscanner.pyd (the Python module that is used by
g-ir-scanner), with the same architecture.  PKG_CONFIG_PATH and PATH
must be set correctly if $(PREFIX)\bin and/or $(PREFIX)\lib\pkgconfig
are not in the standard PATH and PKG_CONFIG_PATH, which is actually
in-line with the *NIX builds.
2017-10-19 18:36:32 +08:00
Chun-wei Fan
53db221259 CMake: Support building HarfBuzz-GObject
This adds support to the CMake build files to support building
HarfBuzz-GObject, which is actually a little bit complicated,
as we need to:

-Run glib-mkenums, which is a Python (for newer GLib/GObject) or PERL
 (for older, pre 2.53.4, GLib/GObject) script.  This matters more for
 Visual Studio builds as shebang lines are not supported, so we need to
 test-run it with PERL or Python to determine which is the correct
 interpretor to use.

-Next, we need to replace strings in the sources that we obtain from
 running glib-mkenums.  So, the solution here is to use a small utility
 CMake script for our purposes here, to maintain maximum compatibility.

-Ensure that things do work in the Visual Studio IDE builds.
2017-10-18 23:48:11 +08:00
Chun-wei Fan
162575f2c6 CMake builds: Fix builds
Include the fallback sources in the build, and update
src/Makefile.sources so that it can be read by the CMake build files.

Fix a typo in the DirectWrite configure option so that we can properly
enable DirectWrite builds.

Also, when building the utility program, install them as well.
2017-10-18 22:48:18 +08:00
Khaled Hosny
6760021d6f CMakelists.txt fix for Freetype builds (#564)
Instead of searching for freetype using pkg-config, use the FindFreetype
feature of CMake. This allows for better integration with other projects
that make use of CMake.

Fixes https://github.com/behdad/harfbuzz/issues/518
2017-10-12 12:35:08 +03:30
Ebrahim Byagowi
3b0e47ca00 Fix arm-none-eabi build (fixes #451) (#496) 2017-06-19 14:47:09 +04:30
Ebrahim Byagowi
152736981d [cmake] Add framework build support (#484) 2017-05-13 21:32:56 +04:30
Ebrahim Byagowi
bf50ddaf2b [cmake] minor (#482) 2017-05-04 20:31:42 +04:30
ebraminio
696641314e [cmake] Final touches (#473) 2017-04-19 22:59:46 +04:30