d7b6636e5e
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'.
74 lines
2.1 KiB
Makefile
74 lines
2.1 KiB
Makefile
# Common NMake Makefile module for checking the build environment is sane
|
|
# for building introspection files under MSVC/NMake.
|
|
# This can be copied from $(gi_srcroot)\build\win32 for GNOME items
|
|
# that support MSVC builds and introspection under MSVC.
|
|
|
|
# Can override with env vars as needed
|
|
# You will need to have built gobject-introspection for this to work.
|
|
# Change or pass in or set the following to suit your environment
|
|
|
|
!if "$(PREFIX)" == ""
|
|
PREFIX = ..\..\..\vs$(VSVER)\$(PLAT)
|
|
!endif
|
|
|
|
# Note: The PYTHON must be the Python release series that was used to build
|
|
# the GObject-introspection scanner Python module!
|
|
# Either having python.exe your PATH will work or passing in
|
|
# PYTHON=<full path to your Python interpretor> will do
|
|
|
|
# This is required, and gobject-introspection needs to be built
|
|
# before this can be successfully run.
|
|
!if "$(PYTHON)" == ""
|
|
PYTHON=python
|
|
!endif
|
|
|
|
# Don't change anything following this line!
|
|
|
|
GIR_SUBDIR = share\gir-1.0
|
|
GIR_TYPELIBDIR = lib\girepository-1.0
|
|
G_IR_SCANNER = $(PREFIX)\bin\g-ir-scanner
|
|
G_IR_COMPILER = $(PREFIX)\bin\g-ir-compiler.exe
|
|
G_IR_INCLUDEDIR = $(PREFIX)\$(GIR_SUBDIR)
|
|
G_IR_TYPELIBDIR = $(PREFIX)\$(GIR_TYPELIBDIR)
|
|
|
|
VALID_PKG_CONFIG_PATH = FALSE
|
|
|
|
MSG_INVALID_PKGCONFIG = You must set or specifiy a valid PKG_CONFIG_PATH
|
|
MSG_INVALID_CFG = You need to specify or set CFG to be release or debug to use this Makefile to build the Introspection Files
|
|
|
|
ERROR_MSG =
|
|
|
|
BUILD_INTROSPECTION = TRUE
|
|
|
|
!if ![pkg-config --print-errors --errors-to-stdout $(CHECK_PACKAGE) > pkgconfig.x] \
|
|
&& ![setlocal] \
|
|
&& ![set file="pkgconfig.x"] \
|
|
&& ![FOR %A IN (%file%) DO @echo PKG_CHECK_SIZE=%~zA > pkgconfig.chksize] \
|
|
&& ![del $(ERRNUL) /q/f pkgconfig.x]
|
|
!endif
|
|
|
|
!include pkgconfig.chksize
|
|
!if "$(PKG_CHECK_SIZE)" == "0"
|
|
VALID_PKG_CONFIG_PATH = TRUE
|
|
!else
|
|
VALID_PKG_CONFIG_PATH = FALSE
|
|
!endif
|
|
|
|
!if ![del $(ERRNUL) /q/f pkgconfig.chksize]
|
|
!endif
|
|
|
|
VALID_CFGSET = FALSE
|
|
!if "$(CFG)" == "release" || "$(CFG)" == "debug"
|
|
VALID_CFGSET = TRUE
|
|
!endif
|
|
|
|
!if "$(VALID_PKG_CONFIG_PATH)" != "TRUE"
|
|
BUILD_INTROSPECTION = FALSE
|
|
ERROR_MSG = $(MSG_INVALID_PKGCONFIG)
|
|
!endif
|
|
|
|
!if "$(VALID_CFGSET)" != "TRUE"
|
|
BUILD_INTROSPECTION = FALSE
|
|
ERROR_MSG = $(MSG_INVALID_CFG)
|
|
!endif
|