The am part looks good to me, although probably you want a second opinion: Reviewed-by: Alejandro Piñeiro <apinhe...@igalia.com>
On 27/03/18 04:00, Ian Romanick wrote: > From: Ian Romanick <ian.d.roman...@intel.com> > > Future changes will add generated files used only from > src/compiler/glsl. These can't be built from Makefile.nir.am, and we > can't move all the rules from Makefile.nir.am to Makefile.spirv.am (and > it would be silly anyway). > > v2: Do it for meson too. > > Signed-off-by: Ian Romanick <ian.d.roman...@intel.com> > Reviewed-by: Eric Engestrom <eric.engest...@imgtec.com> (the meson bits) > --- > src/compiler/Makefile.am | 2 ++ > src/compiler/Makefile.nir.am | 36 ++-------------------------- > src/compiler/Makefile.spirv.am | 54 > ++++++++++++++++++++++++++++++++++++++++++ > src/compiler/meson.build | 5 ++++ > src/compiler/nir/meson.build | 15 ------------ > src/compiler/spirv/meson.build | 26 ++++++++++++++++++++ > 6 files changed, 89 insertions(+), 49 deletions(-) > create mode 100644 src/compiler/Makefile.spirv.am > create mode 100644 src/compiler/spirv/meson.build > > diff --git a/src/compiler/Makefile.am b/src/compiler/Makefile.am > index 18c062019f0..8ec9b0449ca 100644 > --- a/src/compiler/Makefile.am > +++ b/src/compiler/Makefile.am > @@ -69,6 +69,8 @@ EXTRA_DIST = \ > MKDIR_GEN = $(AM_V_at)$(MKDIR_P) $(@D) > PYTHON_GEN = $(AM_V_GEN)$(PYTHON2) $(PYTHON_FLAGS) > > +include Makefile.spirv.am > + > include Makefile.glsl.am > > include Makefile.nir.am > diff --git a/src/compiler/Makefile.nir.am b/src/compiler/Makefile.nir.am > index 28033256762..0b9d419c6a6 100644 > --- a/src/compiler/Makefile.nir.am > +++ b/src/compiler/Makefile.nir.am > @@ -52,33 +52,6 @@ nir/nir_opt_algebraic.c: nir/nir_opt_algebraic.py > nir/nir_algebraic.py > $(MKDIR_GEN) > $(PYTHON_GEN) $(srcdir)/nir/nir_opt_algebraic.py > $@ || ($(RM) $@; > false) > > -spirv/spirv_info.c: spirv/spirv_info_c.py spirv/spirv.core.grammar.json > - $(MKDIR_GEN) > - $(PYTHON_GEN) $(srcdir)/spirv/spirv_info_c.py > $(srcdir)/spirv/spirv.core.grammar.json $@ || ($(RM) $@; false) > - > -spirv/vtn_gather_types.c: spirv/vtn_gather_types_c.py > spirv/spirv.core.grammar.json > - $(MKDIR_GEN) > - $(PYTHON_GEN) $(srcdir)/spirv/vtn_gather_types_c.py > $(srcdir)/spirv/spirv.core.grammar.json $@ || ($(RM) $@; false) > - > -noinst_PROGRAMS += spirv2nir > - > -spirv2nir_SOURCES = \ > - spirv/spirv2nir.c > - > -spirv2nir_CPPFLAGS = \ > - $(AM_CPPFLAGS) \ > - -I$(top_builddir)/src/compiler/nir \ > - -I$(top_srcdir)/src/compiler/nir \ > - -I$(top_srcdir)/src/compiler/spirv > - > -spirv2nir_LDADD = \ > - nir/libnir.la \ > - $(top_builddir)/src/util/libmesautil.la \ > - -lm \ > - $(PTHREAD_LIBS) > - > -nodist_EXTRA_spirv2nir_SOURCES = dummy.cpp > - > check_PROGRAMS += nir/tests/control_flow_tests > > nir_tests_control_flow_tests_CPPFLAGS = \ > @@ -101,12 +74,10 @@ TESTS += nir/tests/control_flow_tests > > > BUILT_SOURCES += \ > - $(NIR_GENERATED_FILES) \ > - $(SPIRV_GENERATED_FILES) > + $(NIR_GENERATED_FILES) > > CLEANFILES += \ > - $(NIR_GENERATED_FILES) \ > - $(SPIRV_GENERATED_FILES) > + $(NIR_GENERATED_FILES) > > EXTRA_DIST += \ > nir/nir_algebraic.py \ > @@ -118,7 +89,4 @@ EXTRA_DIST += \ > nir/nir_opt_algebraic.py \ > nir/tests \ > nir/README \ > - spirv/spirv_info_c.py \ > - spirv/spirv.core.grammar.json \ > - spirv/vtn_gather_types_c.py \ > SConscript.nir > diff --git a/src/compiler/Makefile.spirv.am b/src/compiler/Makefile.spirv.am > new file mode 100644 > index 00000000000..9841004d540 > --- /dev/null > +++ b/src/compiler/Makefile.spirv.am > @@ -0,0 +1,54 @@ > +# > +# Copyright (C) 2017 Intel Corporation > +# > +# Permission is hereby granted, free of charge, to any person obtaining a > +# copy of this software and associated documentation files (the "Software"), > +# to deal in the Software without restriction, including without limitation > +# the rights to use, copy, modify, merge, publish, distribute, sublicense, > +# and/or sell copies of the Software, and to permit persons to whom the > +# Software is furnished to do so, subject to the following conditions: > +# > +# The above copyright notice and this permission notice (including the next > +# paragraph) shall be included in all copies or substantial portions of the > +# Software. > +# > +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL > +# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > DEALINGS > +# IN THE SOFTWARE. > + > +spirv/spirv_info.c: spirv/spirv_info_c.py spirv/spirv.core.grammar.json > + $(MKDIR_GEN) > + $(PYTHON_GEN) $(srcdir)/spirv/spirv_info_c.py > $(srcdir)/spirv/spirv.core.grammar.json $@ || ($(RM) $@; false) > + > +noinst_PROGRAMS += spirv2nir > + > +spirv2nir_SOURCES = \ > + spirv/spirv2nir.c > + > +spirv2nir_CPPFLAGS = \ > + $(AM_CPPFLAGS) \ > + -I$(top_builddir)/src/compiler/nir \ > + -I$(top_srcdir)/src/compiler/nir \ > + -I$(top_srcdir)/src/compiler/spirv > + > +spirv2nir_LDADD = \ > + nir/libnir.la \ > + $(top_builddir)/src/util/libmesautil.la \ > + -lm \ > + $(PTHREAD_LIBS) > + > +nodist_EXTRA_spirv2nir_SOURCES = dummy.cpp > + > +BUILT_SOURCES += \ > + $(SPIRV_GENERATED_FILES) > + > +CLEANFILES += \ > + $(SPIRV_GENERATED_FILES) > + > +EXTRA_DIST += \ > + spirv/spirv_info_c.py \ > + spirv/spirv.core.grammar.json > diff --git a/src/compiler/meson.build b/src/compiler/meson.build > index e955e66f811..da2464d7b8c 100644 > --- a/src/compiler/meson.build > +++ b/src/compiler/meson.build > @@ -21,6 +21,7 @@ > inc_compiler = include_directories('.') > inc_nir = include_directories('nir') > inc_glsl = include_directories('glsl') > +inc_spirv = include_directories('spirv') > > files_libcompiler = files( > 'blob.c', > @@ -53,8 +54,12 @@ libcompiler = static_library( > build_by_default : false, > ) > > +subdir('spirv') > + > subdir('nir') > > +# This is here because putting it in spirv/meson.build would create a > circular > +# dependency with nir/meson.build. > spirv2nir = executable( > 'spirv2nir', > [files('spirv/spirv2nir.c'), dummy_cpp], > diff --git a/src/compiler/nir/meson.build b/src/compiler/nir/meson.build > index 887035d7595..187e6f8d0df 100644 > --- a/src/compiler/nir/meson.build > +++ b/src/compiler/nir/meson.build > @@ -65,21 +65,6 @@ nir_opt_algebraic_c = custom_target( > depend_files : files('nir_algebraic.py'), > ) > > -spirv_info_c = custom_target( > - 'spirv_info.c', > - input : files('../spirv/spirv_info_c.py', > '../spirv/spirv.core.grammar.json'), > - output : 'spirv_info.c', > - command : [prog_python2, '@INPUT0@', '@INPUT1@', '@OUTPUT@'], > -) > - > -vtn_gather_types_c = custom_target( > - 'vtn_gather_types.c', > - input : files('../spirv/vtn_gather_types_c.py', > - '../spirv/spirv.core.grammar.json'), > - output : 'vtn_gather_types.c', > - command : [prog_python2, '@INPUT0@', '@INPUT1@', '@OUTPUT@'], > -) > - > files_libnir = files( > 'nir.c', > 'nir.h', > diff --git a/src/compiler/spirv/meson.build b/src/compiler/spirv/meson.build > new file mode 100644 > index 00000000000..8f1a02e73b4 > --- /dev/null > +++ b/src/compiler/spirv/meson.build > @@ -0,0 +1,26 @@ > +# Copyright © 2017 Intel Corporation > +# > +# Permission is hereby granted, free of charge, to any person obtaining a > copy > +# of this software and associated documentation files (the "Software"), to > deal > +# in the Software without restriction, including without limitation the > rights > +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell > +# copies of the Software, and to permit persons to whom the Software is > +# furnished to do so, subject to the following conditions: > +# > +# The above copyright notice and this permission notice shall be included in > +# all copies or substantial portions of the Software. > +# > +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR > +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, > +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE > +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER > +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING > FROM, > +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN > THE > +# SOFTWARE. > + > +spirv_info_c = custom_target( > + 'spirv_info.c', > + input : files('spirv_info_c.py', 'spirv.core.grammar.json'), > + output : 'spirv_info.c', > + command : [prog_python2, '@INPUT0@', '@INPUT1@', '@OUTPUT@'], > +) _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev