bu5hm4n pushed a commit to branch feature/meson. http://git.enlightenment.org/core/efl.git/commit/?id=26419ba7b6b76dfc4ba56836de01cac3d6ad10da
commit 26419ba7b6b76dfc4ba56836de01cac3d6ad10da Author: Marcel Hollerbach <[email protected]> Date: Thu Dec 28 13:05:24 2017 +0000 meson: add ector --- meson.build | 1 + meson_options.txt | 6 +++ src/lib/ector/cairo/meson.build | 30 ++++++++++++ src/lib/ector/gl/meson.build | 33 ++++++++++++++ src/lib/ector/meson.build | 78 ++++++++++++++++++++++++++++++++ src/lib/ector/software/meson.build | 32 +++++++++++++ src/static_libs/draw/meson.build | 23 ++++++++++ src/static_libs/freetype/meson.build | 23 ++++++++++ src/static_libs/triangulator/meson.build | 21 +++++++++ src/tests/ector/meson.build | 1 + src/tests/ector/suite/meson.build | 18 ++++++++ 11 files changed, 266 insertions(+) diff --git a/meson.build b/meson.build index 10cec22686..44dcb1689d 100644 --- a/meson.build +++ b/meson.build @@ -106,6 +106,7 @@ subprojects = [ ['ecore_wl2' , false, true, false, false, false, false, ['libdrm']], ['ecore_ipc' , false, true, false, false, false, false, []], ['ecore_buffer' , true, true, true, false, false, false, []], +['ector' , false, true, false, false, true, false, ['draw', 'triangulator', 'freetype']], ] diff --git a/meson_options.txt b/meson_options.txt index 0e93f82bca..518b7bbeda 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -112,6 +112,12 @@ option('ecore_ipc', description : 'build ecore_ipc' ) +option('ector', + type : 'boolean', + value : true, + description : 'build ector' +) + option('build-id', type : 'string', value : 'none', diff --git a/src/lib/ector/cairo/meson.build b/src/lib/ector/cairo/meson.build new file mode 100644 index 0000000000..d4bbca4a90 --- /dev/null +++ b/src/lib/ector/cairo/meson.build @@ -0,0 +1,30 @@ + +ector_src += files([ + 'ector_renderer_cairo_gradient_linear.c', + 'ector_renderer_cairo_gradient_radial.c', + 'ector_renderer_cairo_shape.c', + 'ector_renderer_cairo.c', + 'ector_cairo_software_surface.c', + 'ector_cairo_surface.c' +]) + +pub_eo_files = [ + 'ector_cairo_surface.eo', + 'ector_cairo_software_surface.eo', + 'ector_renderer_cairo.eo', + 'ector_renderer_cairo_shape.eo', + 'ector_renderer_cairo_gradient_linear.eo', + 'ector_renderer_cairo_gradient_radial.eo' +] + +foreach eo_file : pub_eo_files + pub_eo_file_target += custom_target('eolian_gen_' + eo_file, + input : eo_file, + output : [eo_file + '.h'], + install : true, + install_dir : dir_package_include, + command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, + '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), + '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), + '-gch', '@INPUT@']) +endforeach diff --git a/src/lib/ector/gl/meson.build b/src/lib/ector/gl/meson.build new file mode 100644 index 0000000000..bf8e2f690a --- /dev/null +++ b/src/lib/ector/gl/meson.build @@ -0,0 +1,33 @@ + +ector_src += files([ + 'ector_renderer_gl_gradient_linear.c', + 'ector_renderer_gl_gradient_radial.c', + 'ector_renderer_gl_shape.c', + 'ector_renderer_gl.c', + 'ector_gl_buffer.c', + 'ector_gl_surface.c', + 'ector_gl_private.h', + #'shader/ector_gl_shaders.x', + 'ector_gl_shader.c' +]) + +pub_eo_files = [ + 'ector_gl_surface.eo', + 'ector_gl_buffer.eo', + 'ector_renderer_gl.eo', + 'ector_renderer_gl_shape.eo', + 'ector_renderer_gl_gradient_radial.eo', + 'ector_renderer_gl_gradient_linear.eo' +] + +foreach eo_file : pub_eo_files + pub_eo_file_target += custom_target('eolian_gen_' + eo_file, + input : eo_file, + output : [eo_file + '.h'], + install : true, + install_dir : dir_package_include, + command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, + '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), + '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), + '-gch', '@INPUT@']) +endforeach diff --git a/src/lib/ector/meson.build b/src/lib/ector/meson.build new file mode 100644 index 0000000000..f7ebb49e0a --- /dev/null +++ b/src/lib/ector/meson.build @@ -0,0 +1,78 @@ +ector_deps = [eina, emile, eet, eo, efl] +pub_eo_file_target = [] + +ector_header_src = [ + # nothing for now ector stays only intree +] + +ector_src = [ + 'ector_main.c', + 'ector_gl_internal.h', + 'ector_buffer.c', + 'ector_renderer_shape.c', + 'ector_renderer.c', + 'ector_renderer_gradient.c', + 'ector_renderer_gradient_radial.c', + 'ector_renderer_gradient_linear.c' +] + +pub_eo_files = [ + 'ector_surface.eo', + 'ector_buffer.eo', + 'ector_renderer.eo', + 'ector_renderer_shape.eo', + 'ector_renderer_gradient.eo', + 'ector_renderer_gradient_radial.eo', + 'ector_renderer_gradient_linear.eo' +] + +foreach eo_file : pub_eo_files + pub_eo_file_target += custom_target('eolian_gen_' + eo_file, + input : eo_file, + output : [eo_file + '.h'], + install : true, + install_dir : dir_package_include, + command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, + '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), + '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), + '-gch', '@INPUT@']) +endforeach + +eolian_include_directories += ['-I', meson.current_source_dir()] + +subdir('cairo') +subdir('gl') +subdir('software') + +pub_eo_types_files = [ + 'ector_types.eot' +] + +foreach eo_file : pub_eo_types_files + pub_eo_file_target += custom_target('eolian_gen_' + eo_file, + input : eo_file, + output : [eo_file + '.h'], + install : true, + install_dir : dir_package_include, + command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, + '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), + '-gh', '@INPUT@']) +endforeach + +ector_lib = library('ector', + ector_src, pub_eo_file_target, + dependencies: [triangulator, freetype, draw, m, ector_deps], + include_directories : config_dir, + install: true, +) + +ector = declare_dependency( + include_directories: [include_directories('.')], + link_with: ector_lib, + sources : pub_eo_file_target, + dependencies: [eina, efl], +) + +install_headers(ector_header_src, + install_dir : dir_package_include, +) \ No newline at end of file diff --git a/src/lib/ector/software/meson.build b/src/lib/ector/software/meson.build new file mode 100644 index 0000000000..c0c81cfe3b --- /dev/null +++ b/src/lib/ector/software/meson.build @@ -0,0 +1,32 @@ + +ector_src += files([ + 'ector_renderer_software_gradient_linear.c', + 'ector_renderer_software_gradient_radial.c', + 'ector_renderer_software_shape.c', + 'ector_software_gradient.c', + 'ector_software_rasterizer.c', + 'ector_software_surface.c', + 'ector_software_buffer.c', +]) + +pub_eo_files = [ + 'ector_software_surface.eo', + 'ector_software_buffer.eo', + 'ector_software_buffer_base.eo', + 'ector_renderer_software.eo', + 'ector_renderer_software_shape.eo', + 'ector_renderer_software_gradient_radial.eo', + 'ector_renderer_software_gradient_linear.eo', +] + +foreach eo_file : pub_eo_files + pub_eo_file_target += custom_target('eolian_gen_' + eo_file, + input : eo_file, + output : [eo_file + '.h'], + install : true, + install_dir : dir_package_include, + command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, + '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), + '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), + '-gch', '@INPUT@']) +endforeach diff --git a/src/static_libs/draw/meson.build b/src/static_libs/draw/meson.build new file mode 100644 index 0000000000..1fcc6b1ba8 --- /dev/null +++ b/src/static_libs/draw/meson.build @@ -0,0 +1,23 @@ + +draw_src = [ + 'draw_main_sse2.c', + 'draw_main.c', + 'draw_main_neon.c', + 'draw_main.c', + 'draw_convert.c', + 'draw_alpha_main.c' +] + + +draw_lib = static_library('draw', + draw_src, + dependencies : [eina, efl], + include_directories : config_dir + [include_directories(join_paths('..', '..', 'lib'))], + install: false, +) + +draw = declare_dependency( + include_directories: [include_directories('.'), include_directories(join_paths('..', '..', 'lib'))], + link_with: draw_lib, + dependencies: [eina], +) diff --git a/src/static_libs/freetype/meson.build b/src/static_libs/freetype/meson.build new file mode 100644 index 0000000000..bfa685b78e --- /dev/null +++ b/src/static_libs/freetype/meson.build @@ -0,0 +1,23 @@ + +freetype_src = [ + 'sw_ft_math.c', + 'sw_ft_math.h', + 'sw_ft_raster.c', + 'sw_ft_raster.h', + 'sw_ft_stroker.c', + 'sw_ft_stroker.h', + 'sw_ft_types.h', +] + + +freetype_lib = static_library('freetype', + freetype_src, + include_directories : config_dir, + install: false, +) + +freetype = declare_dependency( + include_directories: [include_directories('.')], + link_with: freetype_lib, + dependencies: [eina], +) diff --git a/src/static_libs/triangulator/meson.build b/src/static_libs/triangulator/meson.build new file mode 100644 index 0000000000..1a1af2ac0e --- /dev/null +++ b/src/static_libs/triangulator/meson.build @@ -0,0 +1,21 @@ + +triangulator_src = [ + 'triangulator_simple.c', + 'triangulator_simple.h', + 'triangulator_stroker.c', + 'triangulator_stroker.h', +] + + +triangulator_lib = static_library('triangulator', + triangulator_src, + dependencies : [eina, efl], + include_directories : config_dir + [include_directories(join_paths('..', '..', 'lib'))], + install: false, +) + +triangulator = declare_dependency( + include_directories: [include_directories('.')], + link_with: triangulator_lib, + dependencies: [eina], +) diff --git a/src/tests/ector/meson.build b/src/tests/ector/meson.build new file mode 100644 index 0000000000..3bc3d6ef47 --- /dev/null +++ b/src/tests/ector/meson.build @@ -0,0 +1 @@ +subdir('suite') \ No newline at end of file diff --git a/src/tests/ector/suite/meson.build b/src/tests/ector/suite/meson.build new file mode 100644 index 0000000000..82d1acbc0a --- /dev/null +++ b/src/tests/ector/suite/meson.build @@ -0,0 +1,18 @@ +ector_suite_src = [ + 'ector_suite.c', + 'ector_suite.h', + 'ector_test_init.c', +] + +ector_suite = executable('ector_suite', + ector_suite_src, + include_directories : include_directories('..'), + dependencies: [eo, ector, check], + c_args : [ + '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"', + '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'] +) + +test('ector-suite', ector_suite, + is_parallel: true, +) \ No newline at end of file --
