gtk-introspection-msvc.mak: Add ability to create introspection filelist

As we split out the source listings, we can now generate the file lists
that we need to build our introspection files for GDK, GDK-Win32 and
GTK.  This will enable us at a later point to clean up our autotools
files as we do not need to rely on 'make dist' to generate the file list
that we need.
This commit is contained in:
Chun-wei Fan
2019-07-30 18:18:53 +08:00
parent 28f30da599
commit bd43764daa

View File

@@ -1,6 +1,11 @@
# NMake Makefile to build Introspection Files for GTK+
!include detectenv-msvc.mak
!include ..\..\gdk\Makefile.inc
!include ..\..\gtk\a11y\Makefile.inc
!include ..\..\gtk\deprecated\Makefile.inc
!include ..\..\gtk\inspector\Makefile.inc
!include ..\..\gtk\Makefile.inc
APIVERSION = 3.0
@@ -34,6 +39,22 @@ setgirbuildenv:
@set PKG_CONFIG_PATH=$(PKG_CONFIG_PATH)
@set LIB=vs$(VSVER)\$(CFG)\$(PLAT)\bin;$(LIB)
gdk-introspect-list: ..\..\gdk\Makefile.inc
@echo Generating $@...
@$(PYTHON) -c "srcs='$(gdk_public_h_sources: =) $(gdk_deprecated_h_sources: =)';filter=['gdkkeysyms-compat.h'];result=[l for l in srcs.replace('/','\\').split() if l not in filter];result[0]='..\\..\\gdk\\' + result[0];f=open('$@', 'a');f.write('\n..\\..\\gdk\\'.join(result));f.close()"
@$(PYTHON) -c "srcs='$(gdk_c_sources: =) $(gdk_built_sources: =)';result=srcs.replace('/','\\').split();result[0]='\n..\\..\\gdk\\' + result[0];f=open('$@', 'a');f.write('\n..\\..\\gdk\\'.join(result));f.close()"
gdk-win32-introspect-list: ..\..\gdk\Makefile.inc
@echo Generating $@...
@$(PYTHON) -c "srcs='$(w32_introspection_files: =)';result=srcs.replace('/','\\').split();result[0]='..\\..\\gdk\\' + result[0];f=open('$@', 'a');f.write('\n..\\..\\gdk\\'.join(result));f.close()"
gtk-introspect-list: ..\..\gtk\Makefile.inc
@echo Generating $@...
@$(PYTHON) -c "srcs='$(gtk_public_h_sources: =) $(gtk_semi_private_h_sources: =) $(gtk_built_public_sources: =) gtkversion.h';filter=['gtktextdisplay.h', 'gtktextlayout.h', 'gtkx.h'];result=[l for l in srcs.replace('/','\\').split() if l not in filter];result[0]='..\\..\\gtk\\' + result[0];f=open('$@', 'a');f.write('\n..\\..\\gtk\\'.join(result));f.close()"
@$(PYTHON) -c "srcs='$(a11y_h_sources: =) $(gtk_deprecated_h_sources: =)';result=srcs.replace('/','\\').split();result[0]='\n..\\..\\gtk\\' + result[0];f=open('$@', 'a');f.write('\n..\\..\\gtk\\'.join(result));f.close()"
@$(PYTHON) -c "import re;srcs='$(a11y_c_sources: =) $(gtk_deprecated_c_sources: =) $(inspector_c_sources: =) $(gtk_base_c_sources_base: =)';filter=re.compile('(.*)win32.c');result=[l for l in srcs.replace('/','\\').split() if not filter.match(l)];result[0]='\n..\\..\\gtk\\' + result[0];f=open('$@', 'a');f.write('\n..\\..\\gtk\\'.join(result));f.close()"
@$(PYTHON) -c "srcs='gtkprintoperation-unix.c gtktypebuiltins.h gtktypebuiltins.c';result=srcs.replace('/','\\').split();result[0]='\n..\\..\\gtk\\' + result[0];f=open('$@', 'a');f.write('\n..\\..\\gtk\\'.join(result));f.close()"
!include introspection.body.mak
install-introspection: all