Visual Studio builds: Fix Introspection when UCDN enabled
The sources in src/hb-ucdn and not included correctly into the NMake
Makefiles, as we need their explicit relative location as we pass all the
sources we used into the introspection scanner. This was not an issue
before as we excluded the UCDN sources in the build when we enabled
introspection (meaning GLib is enabled), but since we default on using
UCDN on all builds unless explicitly disabled, we need to deal with this.
This did not affect builds using UCDN without introspection due to the use
of NMake batch rules.
Fix this by creating a NMake Makefile module on-the-fly with the correct
subdir info, and using that list in there instead.
diff --git a/win32/Makefile.vc b/win32/Makefile.vc
index fdde7a7..05778ae 100644
--- a/win32/Makefile.vc
+++ b/win32/Makefile.vc
@@ -14,6 +14,21 @@
!include ..\src\hb-ucdn\Makefile.sources
!include ..\util\Makefile.sources
+# 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
+
# Include the Makefile portion that enables features based on user input
!include config-msvc.mak
diff --git a/win32/config-msvc.mak b/win32/config-msvc.mak
index 285ad14..dffdcb2 100644
--- a/win32/config-msvc.mak
+++ b/win32/config-msvc.mak
@@ -136,7 +136,7 @@
$(HB_CFLAGS) \
$(HB_UCDN_CFLAGS)
-HB_SOURCES = $(HB_SOURCES) $(LIBHB_UCDN_sources) $(HB_UCDN_sources)
+HB_SOURCES = $(HB_SOURCES) $(hb_ucdn_SRCS) $(HB_UCDN_sources)
!endif
# Enable GLib if desired