Page MenuHomePhabricator

Use `files` for file references.
Open, Incoming QueuePublic

Description

Meson has a nice feature to handle file references that prevents bugs such as, for example, trying to use the _src variable from another directory and then messing up with relative paths by holding a list of filename strings.

There are a lot of meson.builds in EFL tree that make good usage of it, but some don't (e.g. src/bin/elementary/meson.build). This should be fixed.

jptiz created this task.Aug 5 2020, 10:10 AM
lucas added a subscriber: lucas.Aug 5 2020, 10:31 AM

For a little reference:

$ grep "_src = \[" -nR src/**/meson.build  
src/benchmarks/eo/meson.build:1:eo_benchmark_src = [
src/bindings/cxx/eolian_cxx/meson.build:54:cxx_header_src = []
src/bindings/cxx/meson.build:35:  cxx_header_src = []
src/bin/edje/epp/meson.build:1:epp_src = [
src/bin/edje/meson.build:13:edje_cc_src = [
src/bin/edje/meson.build:54:edje_decc_src = [
src/bin/efreet/meson.build:1:efreetd_src = [
src/bin/eldbus/meson.build:1:eldbus_codegen_src = [
src/bin/elementary/meson.build:1:elementary_test_src = [
src/bin/elementary/meson.build:191:elementary_config_src = [
src/bin/elementary/meson.build:204:  elementary_quicklaunch_src = [
src/bin/elementary/meson.build:217:elementary_codegen_src = [
src/bin/elementary/meson.build:241:elm_prefs_cc_src = [
src/bin/elementary/meson.build:268:  elementary_run_src = [
src/bin/elementary/meson.build:281:elementary_perf_src = [
src/bin/embryo/meson.build:1:embryo_cc_src = [
src/bin/eolian/meson.build:1:eolian_gen_src = [
src/generic/evas/meson.build:7:generic_src = []
src/generic/evas/meson.build:24:  generic_src = []
src/lib/ecore_audio/meson.build:32:ecore_audio_header_src = [
src/lib/ecore_avahi/meson.build:4:ecore_avahi_src = ['ecore_avahi.c']
src/lib/ecore_avahi/meson.build:5:ecore_avahi_header_src = ['Ecore_Avahi.h']
src/lib/ecore_buffer/meson.build:5:ecore_buffer_header_src = [
src/lib/ecore_cocoa/meson.build:11:ecore_cocoa_header_src = [
src/lib/ecore_con/meson.build:99:ecore_con_header_src = [
src/lib/ecore_drm2/meson.build:5:ecore_drm2_header_src = [
src/lib/ecore_drm/meson.build:4:ecore_drm_src = [
src/lib/ecore_drm/meson.build:18:ecore_drm_header_src = [
src/lib/ecore_evas/meson.build:6:ecore_evas_header_src = [
src/lib/ecore_fb/meson.build:9:ecore_fb_header_src = [
src/lib/ecore_file/meson.build:21:ecore_file_header_src = ['Ecore_File.h']
src/lib/ecore_imf_evas/meson.build:1:ecore_imf_evas_header_src = [
src/lib/ecore_imf/meson.build:5:ecore_imf_header_src = [
src/lib/ecore_input_evas/meson.build:6:ecore_input_evas_header_src = [
src/lib/ecore_input/meson.build:5:ecore_input_header_src = [
src/lib/ecore_ipc/meson.build:4:ecore_ipc_header_src = [
src/lib/ecore/meson.build:93:ecore_header_src = [
src/lib/ecore_sdl/meson.build:9:ecore_sdl_header_src = [
src/lib/ecore_wayland/meson.build:4:ecore_wayland_src = [
src/lib/ecore_wayland/meson.build:21:ecore_wayland_header_src = [
src/lib/ecore_win32/meson.build:4:ecore_win32_src = []
src/lib/ecore_win32/meson.build:25:  ecore_win32_header_src = [
src/lib/ecore_wl2/meson.build:6:ecore_wl2_header_src = [
src/lib/ecore_x/meson.build:5:ecore_x_header_src = [
src/lib/ector/meson.build:9:ector_header_src = [
src/lib/edje/meson.build:94:edje_header_src = [
src/lib/eet/meson.build:5:eet_header_src = [
src/lib/eeze/meson.build:6:eeze_header_src = [
src/lib/efl_canvas_wl/meson.build:34:efl_canvas_wl_header_src = ['Efl_Canvas_Wl.h']
src/lib/efl/meson.build:5:efl_header_src = [
src/lib/efl/meson.build:10:efl_src = []
src/lib/efreet/meson.build:1:efreet_header_src = [
src/lib/eio/meson.build:28:eio_header_src = [
src/lib/eldbus/meson.build:49:eldbus_header_src = [
src/lib/elementary/meson.build:710:elementary_header_src = [
src/lib/elput/meson.build:5:elput_header_src = [
src/lib/elua/meson.build:4:elua_src = ['elua.c', 'io.c', 'cache.c']
src/lib/elua/meson.build:5:elua_header_src = ['Elua.h']
src/lib/embryo/meson.build:5:embryo_header_src = [
src/lib/emotion/meson.build:24:emotion_header_src = [
src/lib/eolian/meson.build:4:eolian_src = [
src/lib/eolian/meson.build:54:eolian_header_src = [
src/lib/ephysics/meson.build:6:ephysics_header_src = [
src/lib/ethumb_client/meson.build:1:ethumb_client_header_src = [
src/lib/ethumb/meson.build:1:ethumb_header_src = [
src/lib/evas/meson.build:69:evas_src = []
src/lib/evas/meson.build:123:evas_header_src = [
src/lib/evas/software_generic/filters/meson.build:3:raw_evas_src = [
src/lib/evas/software_generic/meson.build:1:raw_evas_src = [
src/lib/evas/software_generic/meson.build:12:gen_src = []
src/lib/evil/meson.build:4:evil_src = []
src/modules/ecore_evas/meson.build:28:    engine_src = []
src/modules/ecore_imf/meson.build:14:  mod_src = []
src/modules/emotion/meson.build:4:  generic_src = []
src/modules/ethumb/emotion/meson.build:23:generic_src = [files(['emotion.c']) + themes]
src/modules/ethumb/meson.build:6:  generic_src = []
src/modules/evas/engines/gl_generic/meson.build:18:common_engine_src = [
src/modules/evas/engines/meson.build:48:    engine_src = []
src/static_libs/buildsystem/meson.build:2:buildsystem_src = [
src/static_libs/draw/meson.build:2:draw_src = [
src/static_libs/freetype/meson.build:2:freetype_src = [
src/static_libs/libunibreak/meson.build:2:libunibreak_src = [
src/static_libs/lz4/meson.build:2:  lz4_src = [
src/static_libs/rg_etc/meson.build:1:rg_etc_src = [
src/static_libs/triangulator/meson.build:2:triangulator_src = [
src/tests/ecore_con/meson.build:1:ecore_con_suite_src = [
src/tests/ecore_cxx/meson.build:3:ecore_cxx_suite_src = [
src/tests/ecore/meson.build:2:ecore_suite_src = [
src/tests/ecore/meson.build:73:efl_app_suite_src = [
src/tests/ecore_wl2/meson.build:1:ecore_wl2_suite_src = [
src/tests/ector/suite/meson.build:1:ector_suite_src = [
src/tests/edje/meson.build:4:edje_suite_src = [
src/tests/eet_cxx/meson.build:3:eet_cxx_suite_src = [
src/tests/eet/meson.build:1:eet_suite_src = [
src/tests/eeze/meson.build:1:eeze_suite_src = [
src/tests/efl/meson.build:1:efl_suite_src = [
src/tests/efl_mono/meson.build:60:efl_mono_src = [
src/tests/efreet/meson.build:1:efreet_suite_src = [
src/tests/efreet/meson.build:21:efreet_test_src = [
src/tests/eina_cxx/meson.build:3:eina_cxx_suite_src = [
src/tests/eio/meson.build:1:eio_suite_src = [
src/tests/eldbus_cxx/meson.build:3:eldbus_cxx_suite_src = [
src/tests/eldbus/meson.build:1:eldbus_suite_src = [
src/tests/elementary/meson.build:24:elementary_suite_src = [
src/tests/elementary/meson.build:121:efl_ui_suite_src = [
src/tests/elput/meson.build:1:elput_suite_src = [
src/tests/elua/meson.build:3:elua_suite_src = [
src/tests/emile/meson.build:1:emile_suite_src = [
src/tests/eo/access/meson.build:1:eo_access_src = [
src/tests/eo/children/meson.build:1:eo_children_src = [
src/tests/eo/composite_objects/meson.build:1:eo_composite_objects_src = [
src/tests/eo/constructors/meson.build:1:eo_constructors_src = [
src/tests/eo_cxx/meson.build:3:eo_cxx_suite_src = [
src/tests/eo/function_overrides/meson.build:1:eo_function_overrides_src = [
src/tests/eo/interface/meson.build:1:eo_interface_src = [
src/tests/eolian/meson.build:5:eolian_test_src = [
src/tests/eo/mixin/meson.build:1:eo_mixin_src = [
src/tests/eo/signals/meson.build:1:eo_signals_src = [
src/tests/eo/suite/meson.build:1:eo_suite_src = [
src/tests/evas/meson.build:1:evas_suite_src = [

At first glance, all of those seem to need changes.