Commit Graph

112 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
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
ebraminio 4d7c52066b [cmake] Remove HB_DISABLE_DEPRECATED as it seems needed for pango build (#470) 2017-04-17 15:53:46 +04:30
ebraminio 75931427aa [cmake] Fix try compile link issues (#466) 2017-04-14 05:08:11 +04:30
ebraminio cb021e14ab [cmake] typo (#465) 2017-04-14 04:31:17 +04:30
ebraminio a41d5ea445 [cmake] Add atomic ops availability detection (#464) 2017-04-14 04:25:50 +04:30
ebraminio 8568588202 [cmake] Remove NO_MT flag (#462) 2017-04-13 02:17:16 +04:30
ebraminio adfd4ae1cf [cmake] Improve third party libraries support (#461) 2017-04-11 23:18:18 +04:30
ebraminio 3a8bc57211 [cmake] Add utils build support (#460) 2017-04-11 21:32:14 +04:30
ebraminio d2acaf6d72 Split ragel generated files lists and remove hardcoded rl files lists (#453) 2017-04-05 11:21:23 +02:00
ebraminio 7d64c0ef37 Add CMake build support (#444) 2017-04-04 15:03:51 +04:30