mirror of
https://github.com/Ryujinx/GtkSharp.git
synced 2024-09-08 07:53:17 +02:00
![Bertrand Lorentz](/assets/img/avatar_default.png)
The structure of a GAPI XML file is now defined by the XML schema in gapi.xsd. This XSD is now used by the generator to do a first sanity check on an XML file before trying to generate code from it. Each generatable object still does its own validation. The XSD can also be seen as a documentation of the GAPI XML format, and can be used by third-parties that produce GAPI XML to validate their output.
83 lines
3.4 KiB
Makefile
83 lines
3.4 KiB
Makefile
SNK = $(top_srcdir)/gtk-sharp.snk
|
|
API = $(pkg)-api.xml
|
|
RAW_API = $(pkg)-api.raw
|
|
|
|
ASSEMBLY_NAME = $(pkg)-sharp
|
|
ASSEMBLY_NAME_VERSION = $(ASSEMBLY_NAME),Version=$(API_VERSION)
|
|
ASSEMBLY = $(ASSEMBLY_NAME).dll
|
|
|
|
GAPI_XSD=$(top_srcdir)/gapi.xsd
|
|
|
|
TARGET = $(pkg:=-sharp.dll) $(pkg:=-sharp.dll.config) $(POLICY_ASSEMBLIES)
|
|
noinst_DATA = $(TARGET)
|
|
TARGET_API = $(pkg:=-api.xml)
|
|
gapidir = $(datadir)/gapi-3.0
|
|
gapi_DATA = $(TARGET_API) $(GAPI_XSD)
|
|
CLEANFILES = $(ASSEMBLY) $(ASSEMBLY).mdb $(POLICY_ASSEMBLIES) generated-stamp generated/*.cs $(API) glue/generated.c $(POLICY_CONFIGS)
|
|
DISTCLEANFILES = $(ASSEMBLY).config
|
|
|
|
POLICY_ASSEMBLIES = $(addsuffix .$(ASSEMBLY), $(addprefix policy., $(POLICY_VERSIONS)))
|
|
POLICY_CONFIGS = $(addsuffix .config, $(addprefix policy., $(POLICY_VERSIONS)))
|
|
|
|
EXTRA_DIST = $(RAW_API) $(SYMBOLS) $(ASSEMBLY).config.in $(METADATA) $(sources) $(add_dist)
|
|
|
|
build_symbols = $(addprefix --symbols=$(srcdir)/, $(SYMBOLS))
|
|
|
|
$(API): $(METADATA) $(RAW_API) $(SYMBOLS) $(top_builddir)/parser/gapi-fixup.exe
|
|
cp $(srcdir)/$(RAW_API) $(API)
|
|
chmod u+w $(API)
|
|
@if test -n '$(METADATA)'; then \
|
|
echo "$(RUNTIME) $(top_builddir)/parser/gapi-fixup.exe --api=$(API) --metadata=$(srcdir)/$(METADATA) $(build_symbols)"; \
|
|
$(RUNTIME) $(top_builddir)/parser/gapi-fixup.exe --api=$(API) --metadata=$(srcdir)/$(METADATA) $(build_symbols); \
|
|
fi
|
|
|
|
api_includes = $(addprefix -I:, $(INCLUDE_API))
|
|
|
|
generated-stamp: $(API) $(INCLUDE_API) $(top_builddir)/generator/gapi_codegen.exe $(GAPI_XSD)
|
|
rm -f generated/* && \
|
|
$(RUNTIME) $(top_builddir)/generator/gapi_codegen.exe --generate $(API) \
|
|
$(api_includes) \
|
|
--outdir=generated --assembly-name=$(ASSEMBLY_NAME) \
|
|
--gluelib-name=$(pkg)sharpglue-3 --glue-filename=glue/generated.c \
|
|
--glue-includes=$(glue_includes) \
|
|
--schema=$(GAPI_XSD) \
|
|
&& touch generated-stamp
|
|
|
|
policy.%.config: $(top_builddir)/policy.config
|
|
sed -e "s/@ASSEMBLY_NAME@/$(ASSEMBLY_NAME)/" -e "s/@POLICY@/$*/" $(top_builddir)/policy.config > $@
|
|
|
|
$(POLICY_ASSEMBLIES) : policy.%.$(ASSEMBLY): policy.%.config $(SNK)
|
|
$(AL) -link:policy.$*.config -out:$@ -keyfile:$(SNK)
|
|
|
|
build_sources = $(addprefix $(srcdir)/, $(sources)) $(top_builddir)/AssemblyInfo.cs
|
|
build_references = $(addprefix -r:, $(references)) $(MONO_CAIRO_LIBS)
|
|
|
|
$(ASSEMBLY): generated-stamp $(SNK) $(build_sources) $(references)
|
|
@rm -f $(ASSEMBLY).mdb
|
|
$(CSC) $(CSFLAGS) -keyfile:$(SNK) -nowarn:0169,0612,0618 -unsafe -out:$(ASSEMBLY) -target:library $(build_references) $(GENERATED_SOURCES) $(build_sources)
|
|
|
|
install-data-local:
|
|
@if test -n '$(pkg)'; then \
|
|
echo "$(GACUTIL) -i $(ASSEMBLY) -f $(GACUTIL_FLAGS)"; \
|
|
$(GACUTIL) -i $(ASSEMBLY) -f $(GACUTIL_FLAGS) || exit 1; \
|
|
if test -n '$(POLICY_VERSIONS)'; then \
|
|
for i in $(POLICY_VERSIONS); do \
|
|
echo "$(GACUTIL) -i policy.$$i.$(ASSEMBLY) -f $(GACUTIL_FLAGS)"; \
|
|
$(GACUTIL) -i policy.$$i.$(ASSEMBLY) -f $(GACUTIL_FLAGS) || exit 1; \
|
|
done \
|
|
fi \
|
|
fi
|
|
|
|
uninstall-local:
|
|
@if test -n '$(pkg)'; then \
|
|
echo "$(GACUTIL) -u $(ASSEMBLY_NAME_VERSION) $(GACUTIL_FLAGS)"; \
|
|
$(GACUTIL) -u $(ASSEMBLY_NAME_VERSION) $(GACUTIL_FLAGS) || exit 1; \
|
|
if test -n '$(POLICY_VERSIONS)'; then \
|
|
for i in $(POLICY_VERSIONS); do \
|
|
echo "$(GACUTIL) -u policy.$$i.$(ASSEMBLY_NAME) $(GACUTIL_FLAGS)"; \
|
|
$(GACUTIL) -u policy.$$i.$(ASSEMBLY_NAME) $(GACUTIL_FLAGS) || exit 1; \
|
|
done \
|
|
fi \
|
|
fi
|
|
|