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

-- 


Reply via email to