[HarfBuzz] Windows build of harfbuzz with nmake
Cosimo Lupo
cosimo.lupo at daltonmaag.com
Mon Jun 13 08:11:44 UTC 2016
As far as I remember it only works if you build from a released tarball. If
you have cloned harfbuzz from git, you probably need to first make a new
source distribution and then try to build from there.
Hope this helps,
Cheers
Cosimo
On 13 Jun 2016 8:53 a.m., "Juha Martikainen" <juha.martikainen at anygraaf.fi>
wrote:
> Hello!
>
> I am working with Windows 10 system and Visual Studio 2012 compiler. I
> would like to compile harfbuzz library for Scribus. I have taken the new
> harfbuzz codes with git.
>
> I have read win32 directory readme file instructions and try to configure
> project using nmake. I run the following nmake command(in win32 directory):
>
> nmake /f Makefile.vc CFG=release /P
>
> Resulting:
> NMAKE : fatal error U1073: don't know how to make 'config.h.win32'
> Stop.
>
> Whole output:
>
> <<
>
> release\Win32\harfbuzz-gobject:
> flags:
> dependents:
> commands: @-mkdir $@
>
> release\Win32\harfbuzz-gobject.lib:
> flags:
> dependents: release\Win32\harfbuzz-gobject-vs11.dll
> commands:
>
> help:
> flags:
> dependents:
> commands: @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.
>
>
> config.h:
> flags:
> dependents: config.h.win32
> commands: @-copy $@.win32 $@
>
> release\Win32\harfbuzz-vs11.dll:
> flags:
> dependents: config.h release\Win32\harfbuzz\hb-blob.obj
> release\Win32\harfbuzz\hb-buffer-serialize.obj
> release\Win32\harfbuzz\hb-buffer.obj
> release\Win32\harfbuzz\hb-common.obj
> release\Win32\harfbuzz\hb-face.obj
> release\Win32\harfbuzz\hb-font.obj
> release\Win32\harfbuzz\hb-ot-tag.obj
> release\Win32\harfbuzz\hb-set.obj
> release\Win32\harfbuzz\hb-shape.obj
> release\Win32\harfbuzz\hb-shape-plan.obj
> release\Win32\harfbuzz\hb-shaper.obj
> release\Win32\harfbuzz\hb-unicode.obj
> release\Win32\harfbuzz\hb-warning.obj
> release\Win32\harfbuzz\hb-fallback-shape.obj
> release\Win32\harfbuzz\hb-ot-font.obj
> release\Win32\harfbuzz\hb-ot-layout.obj
> release\Win32\harfbuzz\hb-ot-map.obj
> release\Win32\harfbuzz\hb-ot-shape.obj
> release\Win32\harfbuzz\hb-ot-shape-complex-arabic.obj
> release\Win32\harfbuzz\hb-ot-shape-complex-default.obj
> release\Win32\harfbuzz\hb-ot-shape-complex-hangul.obj
> release\Win32\harfbuzz\hb-ot-shape-complex-hebrew.obj
> release\Win32\harfbuzz\hb-ot-shape-complex-indic.obj
> release\Win32\harfbuzz\hb-ot-shape-complex-indic-table.obj
> release\Win32\harfbuzz\hb-ot-shape-complex-myanmar.obj
> release\Win32\harfbuzz\hb-ot-shape-complex-thai.obj
> release\Win32\harfbuzz\hb-ot-shape-complex-tibetan.obj
> release\Win32\harfbuzz\hb-ot-shape-complex-use.obj
> release\Win32\harfbuzz\hb-ot-shape-complex-use-table.obj
> release\Win32\harfbuzz\hb-ot-shape-normalize.obj
> release\Win32\harfbuzz\hb-ot-shape-fallback.obj
> release\Win32\harfbuzz\hb-uniscribe.obj
> release\Win32\harfbuzz\hb-ucdn.obj
> release\Win32\harfbuzz\ucdn.obj
> release\Win32\harfbuzz
>
> commands: link /DLL $(LDFLAGS) $(HB_DEP_LIBS)
> /implib:$(CFG)\$(PLAT)\harfbuzz.lib -out:$@ @<<
> $(harfbuzz_dll_OBJS)
> <<
> @-if exist $@.manifest mt /manifest $@.manifest
> /outputresource:$@;2
>
> release\Win32\hb-shape.exe:
> flags:
> dependents: release\Win32\harfbuzz.lib release\Win32\util
>
> commands: link $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib
> $(HB_UTILS_DEP_LIBS) -out:$@ @<<
> $(hb_shape_OBJS)
> <<
> @-if exist $@.manifest mt /manifest $@.manifest
> /outputresource:$@;1
>
> release\Win32\harfbuzz-icu-vs11.dll:
> flags:
> dependents: release\Win32\harfbuzz.lib
> release\Win32\harfbuzz-icu
>
> commands: link /DLL $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib
> $(HB_ICU_DEP_LIBS) /implib:$(CFG)\$(PLAT)\harfbuzz-icu.lib -out:$@ @<<
> $(harfbuzz_icu_OBJS)
> <<
> @-if exist $@.manifest mt /manifest $@.manifest
> /outputresource:$@;2
>
> release\Win32\util:
> flags:
> dependents:
> commands: @-mkdir $@
>
> all-build-info:
> flags:
> dependents: build-info-hb
> commands: @echo.
> @echo ----------------
> @echo Other build info
> @echo ----------------
> @echo Built Libraries: $(BUILT_LIBRARIES)
> @echo Built Tools: $(BUILT_TOOLS)
> @echo Introspection: $(BUILD_INTROSPECTION)
>
> all:
> flags:
> dependents: release\Win32\harfbuzz.lib all-build-info
> commands:
>
> release\Win32\hb-ot-shape-closure.exe:
> flags:
> dependents: release\Win32\harfbuzz.lib release\Win32\util
>
> commands: link $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib
> $(HB_UTILS_DEP_LIBS) -out:$@ @<<
> $(hb_ot_shape_closure_OBJS)
> <<
> @-if exist $@.manifest mt /manifest $@.manifest
> /outputresource:$@;1
>
> clean:
> flags:
> dependents:
> commands: @-if exist $(CFG)\$(PLAT)\HarfBuzz-0.0.typelib del
> /f /q $(CFG)\$(PLAT)\HarfBuzz-0.0.typelib
> @-if exist $(CFG)\$(PLAT)\HarfBuzz-0.0.gir del /f
> /q $(CFG)\$(PLAT)\HarfBuzz-0.0.gir
> @-if exist $(CFG)\$(PLAT)\hb_list del /f /q
> $(CFG)\$(PLAT)\hb_list
> @-del /f /q $(CFG)\$(PLAT)\*.pdb
> @-if exist $(CFG)\$(PLAT)\.exe.manifest del /f /q
> $(CFG)\$(PLAT)\*.exe.manifest
> @-if exist $(CFG)\$(PLAT)\.exe del /f /q
> $(CFG)\$(PLAT)\*.exe
> @-del /f /q $(CFG)\$(PLAT)\*.dll.manifest
> @-del /f /q $(CFG)\$(PLAT)\*.dll
> @-del /f /q $(CFG)\$(PLAT)\*.ilk
> @-del /f /q $(CFG)\$(PLAT)\*.obj
> @-if exist $(CFG)\$(PLAT)\util del /f /q
> $(CFG)\$(PLAT)\util\*.obj
> @-if exist $(CFG)\$(PLAT)\harfbuzz-gobject del /f
> /q $(CFG)\$(PLAT)\harfbuzz-gobject\*.obj
> @-if exist $(CFG)\$(PLAT)\harfbuzz-icu del /f /q
> $(CFG)\$(PLAT)\harfbuzz-icu\*.obj
> @-del /f /q $(CFG)\$(PLAT)\harfbuzz\*.obj
> @-rmdir /s /q $(CFG)\$(PLAT)
> @-if exist
> $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.h del
> $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.h
> @-if exist
> $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.cc del
> $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.cc
> @-del vc$(VSVER)0.pdb
> @-del config.h
>
> release\Win32\harfbuzz-gobject-vs11.dll:
> flags:
> dependents: release\Win32\harfbuzz.lib
> release\Win32\harfbuzz-gobject
>
> commands: link /DLL $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib
> $(HB_GOBJECT_DEP_LIBS) /implib:$(CFG)\$(PLAT)\harfbuzz-gobject.lib -out:$@
> @<<
> $(harfbuzz_gobject_OBJS)
> <<
> @-if exist $@.manifest mt /manifest $@.manifest
> /outputresource:$@;2
>
> release\Win32\harfbuzz-gobject\hb-gobject-enums.obj:
> flags:
> dependents: release\Win32\harfbuzz-gobject
> commands: $(CXX) $(CFLAGS) $(HB_DEFINES) $(HB_LIB_CFLAGS)
> /I$(CFG)\$(PLAT)\harfbuzz-gobject /Fo$(CFG)\$(PLAT)\harfbuzz-gobject\ /c @<<
> $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.cc
> <<
>
> release\Win32\harfbuzz:
> flags:
> dependents:
> commands: @-mkdir $@
>
> release\Win32\harfbuzz.lib:
> flags:
> dependents: release\Win32\harfbuzz-vs11.dll
> commands:
>
>
> NMAKE : fatal error U1073: don't know how to make 'config.h.win32'
> Stop.
>
> C:\Libraries-vc11\harfbuzz\win32>
>
> --
> Juha Martikainen
>
> _______________________________________________
> HarfBuzz mailing list
> HarfBuzz at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/harfbuzz
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/harfbuzz/attachments/20160613/0e1fe363/attachment-0001.html>
More information about the HarfBuzz
mailing list