f6ffba634b
Add into the NMake Makefiles to build the DirectWrite shaping backend, but as PR #134 mentions, this is considered to be in an experimental state, so don't include this in the build by default for now. This is most probably going to replace the Uniscribe backend eventually, since DirectWrite is meant to be Uniscribe's replacement, and is needed for Windows Store apps if a system shaping API is to be used.
138 lines
4.6 KiB
Makefile
138 lines
4.6 KiB
Makefile
# NMake Makefile portion for displaying config info
|
|
|
|
INC_FEATURES = Uniscribe Fallback OT
|
|
BUILT_TOOLS =
|
|
BUILT_LIBRARIES = HarfBuzz
|
|
|
|
!if "$(GLIB)" == "1"
|
|
UNICODE_IMPL = GLib
|
|
INC_FEATURES = $(INC_FEATURES) GLib
|
|
BUILT_TOOLS = hb-shape.exe hb-ot-shape-closure.exe
|
|
!if "$(CAIRO_FT)" == "1"
|
|
BUILT_TOOLS = hb-view.exe $(BUILT_TOOLS)
|
|
!endif
|
|
!else
|
|
UNICODE_IMPL = ucdn
|
|
!endif
|
|
|
|
!if "$(FREETYPE)" == "1"
|
|
INC_FEATURES = $(INC_FEATURES) FreeType
|
|
!endif
|
|
|
|
!if "$(GRAPHITE2)" == "1"
|
|
INC_FEATURES = $(INC_FEATURES) Graphite2
|
|
!endif
|
|
|
|
!if "$(DIRECTWRITE)" == "1"
|
|
INC_FEATURES = $(INC_FEATURES) DirectWrite
|
|
!endif
|
|
|
|
!if "$(ICU)" == "1"
|
|
BUILT_LIBRARIES = $(BUILT_LIBRARIES) HarfBuzz-ICU
|
|
!endif
|
|
|
|
!if "$(GOBJECT)" == "1"
|
|
BUILT_LIBRARIES = $(BUILT_LIBRARIES) HarfBuzz-GObject
|
|
!endif
|
|
|
|
!if "$(INTROSPECTION)" == "1"
|
|
BUILD_INTROSPECTION = yes
|
|
!else
|
|
BUILD_INTROSPECTION = no
|
|
!endif
|
|
|
|
build-info-hb:
|
|
@echo.
|
|
@echo ==================================
|
|
@echo Configuration for HarfBuzz Library
|
|
@echo ==================================
|
|
@echo Unicode Implementation: $(UNICODE_IMPL)
|
|
@echo Enabled Features: $(INC_FEATURES)
|
|
|
|
all-build-info: build-info-hb
|
|
@echo.
|
|
@echo ----------------
|
|
@echo Other build info
|
|
@echo ----------------
|
|
@echo Built Libraries: $(BUILT_LIBRARIES)
|
|
@echo Built Tools: $(BUILT_TOOLS)
|
|
@echo Introspection: $(BUILD_INTROSPECTION)
|
|
|
|
help:
|
|
@echo.
|
|
@echo =============================
|
|
@echo Building HarfBuzz Using NMake
|
|
@echo =============================
|
|
@echo nmake /f Makefile.vc CFG=[release^|debug] ^<PREFIX=PATH^> OPTION=1 ...
|
|
@echo.
|
|
@echo Where:
|
|
@echo ------
|
|
@echo CFG: Required, use CFG=release for an optimized build and CFG=debug
|
|
@echo for a debug build. PDB files are generated for all builds.
|
|
@echo.
|
|
@echo PREFIX: Optional, the path where dependent libraries and tools may be
|
|
@echo found, default is ^$(srcrootdir)\..\vs^$(short_vs_ver)\^$(platform),
|
|
@echo where ^$(short_vs_ver) is 9 for VS 2008, 10 for VS 2010 and so on; and
|
|
@echo ^$(platform) is Win32 for 32-bit builds and x64 for x64 builds.
|
|
@echo.
|
|
@echo OPTION: Optional, may be any of the following, use OPTION=1 to enable;
|
|
@echo multiple OPTION's may be used. If no OPTION is specified, a default
|
|
@echo HarfBuzz DLL is built with OpenType, fallback and Uniscribe support
|
|
@echo with a bundled Unicode implementation (UCDN).
|
|
@echo ======
|
|
@echo DIRECTWRITE:
|
|
@echo Enable DirectWrite support, requires a recent enough Windows SDK.
|
|
@echo.
|
|
@echo GRAPHITE2:
|
|
@echo Enable graphite2 support, requires the SIL Graphite2 library
|
|
@echo.
|
|
@echo FREETYPE:
|
|
@echo Enable FreeType2 support, requires the FreeType2 library
|
|
@echo.
|
|
@echo GLIB:
|
|
@echo Enable GLib2 support, with GLib Unicode support, requires the GNOME GLib2
|
|
@echo library. Enables the build of utility programs.
|
|
@echo.
|
|
@echo ICU:
|
|
@echo Enable the HarfBuzz-ICU layout library, requires the International
|
|
@echo Components for Unicode (ICU) libraries.
|
|
@echo.
|
|
@echo GOBJECT:
|
|
@echo Enable the HarfBuzz-GObject library, also implies GLib2 support,
|
|
@echo requires the GNOME GLib2 libraries and tools, notably the glib-mkenums
|
|
@echo tool script, which will require a PERL interpretor (use
|
|
@echo PERL=^$(PATH_TO_PERL_INTERPRETOR)) if it is not already in your PATH).
|
|
@echo.
|
|
@echo INTROSPECTION:
|
|
@echo Enable the build of introspection files, also implies GObject/GLib2 support,
|
|
@echo requires the GNOME gobject-introspection libraries and tools. You will need
|
|
@echo to ensure the pkg-config (.pc) files can be found for GObject-2.0 and the
|
|
@echo Python interpretor (that was used to build the gobject-introsoection tools)
|
|
@echo can be found by setting PKG_CONFIG_PATH beforehand, and passing in PYTHON=
|
|
@echo ^$(PATH_TO_PYTHON_INTERPRETOR) respectively, if python.exe is not already
|
|
@echo in your PATH.
|
|
@echo.
|
|
@echo CAIRO_FT:
|
|
@echo Enables Cairo-Freetype support, needed for the build of the hb-view utility.
|
|
@echo Implies FreeType2 support and also requires Cairo built with FreeType2
|
|
@echo support; GLib2 support must also be enabled.
|
|
@echo.
|
|
@echo LIBTOOL_DLL_NAME:
|
|
@echo Use a libtool-style DLL name to mimic the DLL file naming generated by
|
|
@echo MinGW builds.
|
|
@echo.
|
|
@echo Note that GLib2 support is required for all utility and test programs.
|
|
@echo ======
|
|
@echo A 'clean' target is supported to remove all generated files, intermediate
|
|
@echo object files and binaries for the specified configuration.
|
|
@echo.
|
|
@echo A 'tests' target is supported to build the test programs, if GLib2 support
|
|
@echo is enabled. Use after building the libraries and utilities.
|
|
@echo.
|
|
@echo An 'install' target is supported to copy the build (DLLs, utility programs,
|
|
@echo LIBs, along with the introspection files if applicable) to appropriate
|
|
@echo locations under ^$(PREFIX).
|
|
@echo ======
|
|
@echo.
|
|
|