Commit Graph

62 Commits

Author SHA1 Message Date
Simon Hausmann
6a97d0f3d3 Fix installation of cmake config when building with cmake (#1161)
When building with the auto tools, the manually mantained
harfbuzz-config.cmake is installed. When building with cmake, we can use
cmake to generate the correct config files for us and install them.
2018-09-17 13:03:34 +04:30
Cosimo Lupo
53f73409a9
CMakeLists.txt: don't pass header args as single space-separated string
let python's parse command-line args as usual
2018-07-09 18:54:23 +01:00
Cosimo Lupo
83d2233a5c
CMakeLists.txt: pass headers as arguments to gen-def.py; call using PYTHON_EXECUTABLE 2018-07-09 18:48:20 +01:00
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