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'.
2015-11-03 12:00:42 +01:00
|
|
|
# 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
|
|
|
|
|
2017-02-24 10:47:44 +01:00
|
|
|
# We need to include the sources in ..\src\hb-ucdn indirectly
|
|
|
|
!if [call create-lists.bat header hb_ucdn_srcs.mak hb_ucdn_SRCS]
|
|
|
|
!endif
|
|
|
|
|
|
|
|
!if [for %c in ($(LIBHB_UCDN_sources)) do @call create-lists.bat file hb_ucdn_srcs.mak hb-ucdn\%c]
|
|
|
|
!endif
|
|
|
|
|
|
|
|
!if [call create-lists.bat footer hb_ucdn_srcs.mak]
|
|
|
|
!endif
|
|
|
|
|
|
|
|
!include hb_ucdn_srcs.mak
|
|
|
|
|
|
|
|
!if [del /f /q hb_ucdn_srcs.mak]
|
|
|
|
!endif
|
|
|
|
|
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'.
2015-11-03 12:00:42 +01:00
|
|
|
# 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
|