Blame win32/config-msvc.mak

Packit 874993
# NMake Makefile portion for enabling features for Windows builds
Packit 874993
Packit 874993
# You may change these lines to customize the .lib files that will be linked to
Packit 874993
# Additional Libraries for building HarfBuzz-ICU
Packit 874993
# icudt.lib may be required for static ICU builds
Packit 874993
HB_ICU_DEP_LIBS = icuuc.lib
Packit 874993
Packit 874993
# GLib is required for all utility programs and tests
Packit 874993
HB_GLIB_LIBS = glib-2.0.lib
Packit 874993
Packit 874993
# Needed for building HarfBuzz-GObject
Packit 874993
HB_GOBJECT_DEP_LIBS = gobject-2.0.lib $(HB_GLIB_LIBS)
Packit 874993
Packit 874993
# Freetype is needed for building FreeType support and hb-view
Packit 874993
!if "$(CFG)" == "debug"
Packit 874993
FREETYPE_LIB = freetyped.lib
Packit 874993
!else
Packit 874993
FREETYPE_LIB = freetype.lib
Packit 874993
!endif
Packit 874993
Packit 874993
# Cairo is needed for building hb-view
Packit 874993
CAIRO_LIB = cairo.lib
Packit 874993
Packit 874993
# Graphite2 is needed for building SIL Graphite2 support
Packit 874993
GRAPHITE2_LIB = graphite2.lib
Packit 874993
Packit 874993
# Uniscribe is needed for Uniscribe shaping support
Packit 874993
UNISCRIBE_LIB = usp10.lib gdi32.lib rpcrt4.lib user32.lib
Packit 874993
Packit 874993
# Directwrite is needed for DirectWrite shaping support
Packit 874993
DIRECTWRITE_LIB = dwrite.lib
Packit 874993
Packit 874993
# Full path to Ragel state machine compiler if not already in PATH
Packit 874993
!if "$(RAGEL)" == ""
Packit 874993
RAGEL = ragel
Packit 874993
!endif
Packit 874993
Packit 874993
# Please do not change anything beneath this line unless maintaining the NMake Makefiles
Packit 874993
# Bare minimum features and sources built into HarfBuzz on Windows
Packit 874993
HB_DEFINES =
Packit 874993
HB_CFLAGS = /DHAVE_CONFIG_H
Packit 874993
HB_UCDN_CFLAGS = /I..\src\hb-ucdn
Packit 874993
HB_SOURCES =	\
Packit 874993
	$(HB_BASE_sources)			\
Packit 874993
	$(HB_BASE_RAGEL_GENERATED_sources)	\
Packit 874993
	$(HB_FALLBACK_sources)			\
Packit 874993
	$(HB_OT_sources)			\
Packit 874993
	$(HB_OT_RAGEL_GENERATED_sources)
Packit 874993
Packit 874993
Packit 874993
HB_HEADERS =	\
Packit 874993
	$(HB_BASE_headers)		\
Packit 874993
	$(HB_NODIST_headers)	\
Packit 874993
	$(HB_OT_headers)
Packit 874993
Packit 874993
RAGEL_RAW_GEN_SRCS = $(HB_OT_RAGEL_GENERATED_sources) $(HB_BASE_RAGEL_GENERATED_sources)
Packit 874993
Packit 874993
# Minimal set of (system) libraries needed for the HarfBuzz DLL
Packit 874993
HB_DEP_LIBS =
Packit 874993
Packit 874993
# We build the HarfBuzz DLL/LIB at least
Packit 874993
HB_LIBS = $(CFG)\$(PLAT)\harfbuzz.lib
Packit 874993
Packit 874993
# Note: All the utility and test programs require GLib support to be present!
Packit 874993
HB_UTILS =
Packit 874993
HB_UTILS_DEP_LIBS = $(HB_GLIB_LIBS)
Packit 874993
HB_TESTS =
Packit 874993
HB_TESTS_DEP_LIBS = $(HB_GLIB_LIBS)
Packit 874993
Packit 874993
# Use libtool-style DLL names, if desired
Packit 874993
!if "$(LIBTOOL_DLL_NAME)" == "1"
Packit 874993
HARFBUZZ_DLL_FILENAME = $(CFG)\$(PLAT)\libharfbuzz-0
Packit 874993
HARFBUZZ_GOBJECT_DLL_FILENAME = $(CFG)\$(PLAT)\libharfbuzz-gobject-0
Packit 874993
!else
Packit 874993
HARFBUZZ_DLL_FILENAME = $(CFG)\$(PLAT)\harfbuzz-vs$(VSVER)
Packit 874993
HARFBUZZ_GOBJECT_DLL_FILENAME = $(CFG)\$(PLAT)\harfbuzz-gobject-vs$(VSVER)
Packit 874993
!endif
Packit 874993
Packit 874993
# Enable Introspection (enables HarfBuzz-Gobject as well)
Packit 874993
!if "$(INTROSPECTION)" == "1"
Packit 874993
GOBJECT = 1
Packit 874993
CHECK_PACKAGE = gobject-2.0
Packit 874993
EXTRA_TARGETS = $(CFG)\$(PLAT)\HarfBuzz-0.0.gir $(CFG)\$(PLAT)\HarfBuzz-0.0.typelib
Packit 874993
!else
Packit 874993
EXTRA_TARGETS =
Packit 874993
!endif
Packit 874993
Packit 874993
# Enable HarfBuzz-GObject (enables GLib support as well)
Packit 874993
!if "$(GOBJECT)" == "1"
Packit 874993
GLIB = 1
Packit 874993
HB_LIBS =	\
Packit 874993
	$(HB_LIBS)	\
Packit 874993
	$(CFG)\$(PLAT)\harfbuzz-gobject.lib
Packit 874993
Packit 874993
HB_GOBJECT_ENUM_GENERATED_SOURCES = \
Packit 874993
	$(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.cc	\
Packit 874993
	$(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.h
Packit 874993
Packit 874993
!endif
Packit 874993
Packit 874993
# Enable cairo-ft (enables cairo and freetype as well)
Packit 874993
!if "$(CAIRO_FT)" == "1"
Packit 874993
HB_DEFINES = $(HB_DEFINES) /DHAVE_CAIRO_FT=1
Packit 874993
CAIRO = 1
Packit 874993
FREETYPE = 1
Packit 874993
!if "$(GLIB)" == "1"
Packit 874993
HB_UTILS = \
Packit 874993
	$(HB_UTILS)	\
Packit 874993
	$(CFG)\$(PLAT)\hb-view.exe
Packit 874993
Packit 874993
HB_UTILS_DEP_LIBS = $(HB_UTILS_DEP_LIBS) $(CAIRO_LIB) $(FREETYPE_LIB)
Packit 874993
!else
Packit 874993
!if [echo Warning: GLib support not enabled, hb-view not built]
Packit 874993
!endif
Packit 874993
!endif
Packit 874993
!endif
Packit 874993
Packit 874993
# Enable cairo
Packit 874993
!if "$(CAIRO)" == "1"
Packit 874993
HB_DEFINES = $(HB_DEFINES) /DHAVE_CAIRO=1
Packit 874993
!endif
Packit 874993
Packit 874993
# Enable freetype if desired
Packit 874993
!if "$(FREETYPE)" == "1"
Packit 874993
!if "$(FREETYPE_DIR)" != ""
Packit 874993
HB_CFLAGS = $(HB_CFLAGS) /I$(FREETYPE_DIR)
Packit 874993
!endif
Packit 874993
HB_DEFINES = $(HB_DEFINES) /DHAVE_FREETYPE=1
Packit 874993
HB_SOURCES = $(HB_SOURCES) $(HB_FT_sources)
Packit 874993
HB_HEADERS = $(HB_HEADERS) $(HB_FT_headers)
Packit 874993
HB_DEP_LIBS = $(HB_DEP_LIBS) $(FREETYPE_LIB)
Packit 874993
!endif
Packit 874993
Packit 874993
# Enable graphite2 if desired
Packit 874993
!if "$(GRAPHITE2)" == "1"
Packit 874993
HB_DEFINES = $(HB_DEFINES) /DHAVE_GRAPHITE2=1
Packit 874993
HB_SOURCES = $(HB_SOURCES) $(HB_GRAPHITE2_sources)
Packit 874993
HB_HEADERS = $(HB_HEADERS) $(HB_GRAPHITE2_headers)
Packit 874993
HB_DEP_LIBS = $(HB_DEP_LIBS) $(GRAPHITE2_LIB)
Packit 874993
!endif
Packit 874993
Packit 874993
# Always enable UCDN unless explicitly disabled
Packit 874993
!if "$(NO_UCDN)" != "1"
Packit 874993
HB_DEFINES = $(HB_DEFINES) /DHAVE_UCDN=1
Packit 874993
HB_CFLAGS =		\
Packit 874993
	$(HB_CFLAGS)		\
Packit 874993
	$(HB_UCDN_CFLAGS)
Packit 874993
Packit 874993
HB_SOURCES = $(HB_SOURCES) $(hb_ucdn_SRCS) $(HB_UCDN_sources)
Packit 874993
!endif
Packit 874993
Packit 874993
# Enable GLib if desired
Packit 874993
!if "$(GLIB)" == "1"
Packit 874993
HB_DEFINES = $(HB_DEFINES) /DHAVE_GLIB=1
Packit 874993
HB_CFLAGS =	\
Packit 874993
	$(HB_CFLAGS)					\
Packit 874993
	/FImsvc_recommended_pragmas.h	\
Packit 874993
	/I$(PREFIX)\include\glib-2.0	\
Packit 874993
	/I$(PREFIX)\lib\glib-2.0\include
Packit 874993
Packit 874993
HB_SOURCES = $(HB_SOURCES) $(HB_GLIB_sources)
Packit 874993
HB_HEADERS = $(HB_HEADERS) $(HB_GLIB_headers)
Packit 874993
HB_DEP_LIBS = $(HB_DEP_LIBS) $(HB_GLIB_LIBS)
Packit 874993
Packit 874993
HB_UTILS = \
Packit 874993
	$(HB_UTILS)					\
Packit 874993
	$(CFG)\$(PLAT)\hb-shape.exe	\
Packit 874993
	$(CFG)\$(PLAT)\hb-ot-shape-closure.exe
Packit 874993
Packit 874993
HB_TESTS = \
Packit 874993
	$(HB_TESTS)	\
Packit 874993
	$(CFG)\$(PLAT)\main.exe						\
Packit 874993
	$(CFG)\$(PLAT)\test.exe						\
Packit 874993
	$(CFG)\$(PLAT)\test-buffer-serialize.exe	\
Packit 874993
	$(CFG)\$(PLAT)\test-size-params.exe			\
Packit 874993
	$(CFG)\$(PLAT)\test-would-substitute.exe	\
Packit 874993
	$(CFG)\$(PLAT)\test-blob.exe				\
Packit 874993
	$(CFG)\$(PLAT)\test-buffer.exe				\
Packit 874993
	$(CFG)\$(PLAT)\test-common.exe				\
Packit 874993
	$(CFG)\$(PLAT)\test-font.exe				\
Packit 874993
	$(CFG)\$(PLAT)\test-object.exe				\
Packit 874993
	$(CFG)\$(PLAT)\test-set.exe					\
Packit 874993
	$(CFG)\$(PLAT)\test-shape.exe				\
Packit 874993
	$(CFG)\$(PLAT)\test-unicode.exe				\
Packit 874993
	$(CFG)\$(PLAT)\test-version.exe
Packit 874993
Packit 874993
!else
Packit 874993
Packit 874993
# Define some of the macros in GLib's msvc_recommended_pragmas.h
Packit 874993
# to reduce some unneeded build-time warnings
Packit 874993
HB_CFLAGS =	\
Packit 874993
	$(HB_CFLAGS)			\
Packit 874993
	/wd4244				\
Packit 874993
	/D_CRT_SECURE_NO_WARNINGS	\
Packit 874993
	/D_CRT_NONSTDC_NO_WARNINGS
Packit 874993
Packit 874993
!endif
Packit 874993
Packit 874993
!if "$(ICU)" == "1"
Packit 874993
# use ICU for Unicode functions
Packit 874993
# and define some of the macros in GLib's msvc_recommended_pragmas.h
Packit 874993
# to reduce some unneeded build-time warnings
Packit 874993
HB_DEFINES = $(HB_DEFINES) /DHAVE_ICU=1 /DHAVE_ICU_BUILTIN=1
Packit 874993
Packit 874993
# We don't want ICU to re-define int8_t in VS 2008, will cause build breakage
Packit 874993
# as we define it in hb-common.h, and we ought to use the definitions there.
Packit 874993
!if "$(VSVER)" == "9"
Packit 874993
HB_CFLAGS =	$(HB_CFLAGS) /DU_HAVE_INT8_T
Packit 874993
!endif
Packit 874993
Packit 874993
HB_SOURCES = $(HB_SOURCES) $(HB_ICU_sources)
Packit 874993
HB_HEADERS = $(HB_HEADERS) $(HB_ICU_headers)
Packit 874993
HB_DEP_LIBS = $(HB_DEP_LIBS) $(HB_ICU_DEP_LIBS)
Packit 874993
!endif
Packit 874993
Packit 874993
!if "$(UNISCRIBE)" == "1"
Packit 874993
HB_CFLAGS = $(HB_CFLAGS) /DHAVE_UNISCRIBE
Packit 874993
HB_SOURCES = $(HB_SOURCES) $(HB_UNISCRIBE_sources)
Packit 874993
HB_HEADERS = $(HB_HEADERS) $(HB_UNISCRIBE_headers)
Packit 874993
HB_DEP_LIBS = $(HB_DEP_LIBS) $(UNISCRIBE_LIB)
Packit 874993
!endif
Packit 874993
Packit 874993
!if "$(DIRECTWRITE)" == "1"
Packit 874993
HB_CFLAGS = $(HB_CFLAGS) /DHAVE_DIRECTWRITE
Packit 874993
HB_SOURCES = $(HB_SOURCES) $(HB_DIRECTWRITE_sources)
Packit 874993
HB_HEADERS = $(HB_HEADERS) $(HB_DIRECTWRITE_headers)
Packit 874993
HB_DEP_LIBS = $(HB_DEP_LIBS) $(DIRECTWRITE_LIB)
Packit 874993
!endif
Packit 874993
Packit 874993
HB_LIB_CFLAGS = $(HB_CFLAGS) /DHB_EXTERN="__declspec (dllexport) extern"