Hash :
d7b6636e
Author :
Date :
2015-11-03T19:00:42
build: Support Visual Studio builds using NMake This adds a set of NMake Makefiles that can be used to build HarfBuzz, from the standard basic build building the minimal HarfBuzz DLL (consisting of OpenType, fallback and Uniscribe support only), to a full fledged build consisting of GLib and FreeType support, as well as building the utilities, the test programs in src/ and test/api, and HarfBuzz-ICU and HarfBuzz-GObject, and up to building the introspection files. This means a flexible build mechanism is supported here, so anything that is supported for a Windows build (code-wise), should all be supported by this build system. As in an earlier commit, the source listings are shared with the autotools builds with the various Makefile.sources in src/, src/hb-ucdn and util/, and this set of NMake Makefiles will transform these lists into the form they want. In the current form, all the test programs in test/api pass, and this has been checked successfully with 'make -j8 distcheck'.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
# NMake Makefile for building HarfBuzz as a DLL on Windows
# The items below this line should not be changed, unless one is maintaining
# the NMake Makefiles. Customizations can be done in the following NMake Makefile
# portions (please see comments in the these files to see what can be customized):
#
# detectenv-msvc.mak
# config-msvc.mak
!include detectenv-msvc.mak
# Include the Makefile portions with the source listings
!include ..\src\Makefile.sources
!include ..\src\hb-ucdn\Makefile.sources
!include ..\util\Makefile.sources
# Include the Makefile portion that enables features based on user input
!include config-msvc.mak
!if "$(VALID_CFGSET)" == "TRUE"
# Include the Makefile portion to convert the source and header lists
# into the lists we need for compilation and introspection
!include create-lists-msvc.mak
all: $(HB_LIBS) $(HB_UTILS) $(EXTRA_TARGETS) all-build-info
tests: all $(HB_TESTS)
# Include the build rules for sources, DLLs and executables
!include build-rules-msvc.mak
# Include the rules for build directory creation and code generation
!include generate-msvc.mak
# Generate the introspection files
!if "$(INTROSPECTION)" == "1"
# Include the rules for building the introspection files
!include introspection-msvc.mak
!include hb-introspection-msvc.mak
!endif
!include install.mak
!else
all: help
@echo You need to specify a valid configuration, via
@echo CFG=release or CFG=debug
!endif
!include info-msvc.mak