Implements rive-cpp submodule full build
[platform/core/uifw/rive-tizen.git] / meson.build
1 project('rive_tizen',
2         'cpp',
3         default_options : ['cpp_std=c++17'],
4         version : '0.1.0',
5         license : 'MIT')
6
7 #thorvg_dep = dependency('thorvg', required : true)
8
9 run_command('script/install.sh')
10
11 headers = [include_directories('inc')]
12
13 rive_tizen_src = [
14    'src/rive_tizen.cpp',
15 ]
16
17 install_headers([
18                  'inc/rive_tizen.hpp',
19                 ])
20
21 rive_tizen_dep = declare_dependency(
22    include_directories : include_directories('.'),
23    sources : rive_tizen_src
24 )
25
26 rive_src = [
27    'submodule/src/math/aabb.cpp',
28    'submodule/src/math/vec2d.cpp',
29    'submodule/src/math/mat2d.cpp',
30    'submodule/src/animation/cubic_interpolator.cpp',
31    'submodule/src/animation/keyed_object.cpp',
32    'submodule/src/animation/keyed_property.cpp',
33    'submodule/src/animation/keyframe.cpp',
34    'submodule/src/animation/keyframe_color.cpp',
35    'submodule/src/animation/keyframe_double.cpp',
36    'submodule/src/animation/keyframe_id.cpp',
37    'submodule/src/animation/linear_animation.cpp',
38    'submodule/src/animation/linear_animation_instance.cpp',
39    'submodule/src/core/binary_reader.cpp',
40    'submodule/src/core/field_types/core_bool_type.cpp',
41    'submodule/src/core/field_types/core_color_type.cpp',
42    'submodule/src/core/field_types/core_double_type.cpp',
43    'submodule/src/core/field_types/core_string_type.cpp',
44    'submodule/src/core/field_types/core_uint_type.cpp',
45    'submodule/src/shapes/clipping_shape.cpp',
46    'submodule/src/shapes/cubic_mirrored_vertex.cpp',
47    'submodule/src/shapes/metrics_path.cpp',
48    'submodule/src/shapes/path.cpp',
49    'submodule/src/shapes/points_path.cpp',
50    'submodule/src/shapes/shape.cpp',
51    'submodule/src/shapes/straight_vertex.cpp',
52    'submodule/src/shapes/cubic_asymmetric_vertex.cpp',
53    'submodule/src/shapes/cubic_vertex.cpp',
54    'submodule/src/shapes/path_composer.cpp',
55    'submodule/src/shapes/polygon.cpp',
56    'submodule/src/shapes/shape_paint_container.cpp',
57    'submodule/src/shapes/triangle.cpp',
58    'submodule/src/shapes/cubic_detached_vertex.cpp',
59    'submodule/src/shapes/ellipse.cpp',
60    'submodule/src/shapes/parametric_path.cpp',
61    'submodule/src/shapes/path_vertex.cpp',
62    'submodule/src/shapes/rectangle.cpp',
63    'submodule/src/shapes/star.cpp',
64    'submodule/src/shapes/paint/color.cpp',
65    'submodule/src/shapes/paint/fill.cpp',
66    'submodule/src/shapes/paint/gradient_stop.cpp',
67    'submodule/src/shapes/paint/linear_gradient.cpp',
68    'submodule/src/shapes/paint/radial_gradient.cpp',
69    'submodule/src/shapes/paint/shape_paint.cpp',
70    'submodule/src/shapes/paint/shape_paint_mutator.cpp',
71    'submodule/src/shapes/paint/solid_color.cpp',
72    'submodule/src/shapes/paint/stroke.cpp',
73    'submodule/src/shapes/paint/trim_path.cpp',
74    'submodule/src/bones/bone.cpp',
75    'submodule/src/bones/root_bone.cpp',
76    'submodule/src/bones/skin.cpp',
77    'submodule/src/bones/skinnable.cpp',
78    'submodule/src/bones/tendon.cpp',
79    'submodule/src/bones/weight.cpp',
80    'submodule/src/artboard.cpp',
81    'submodule/src/component.cpp',
82    'submodule/src/dependency_sorter.cpp',
83    'submodule/src/draw_rules.cpp',
84    'submodule/src/draw_target.cpp',
85    'submodule/src/drawable.cpp',
86    'submodule/src/file.cpp',
87    'submodule/src/layout.cpp',
88    'submodule/src/node.cpp',
89    'submodule/src/transform_component.cpp',
90 ]
91
92 rive_dep = declare_dependency(
93    include_directories : include_directories(['submodule/include']),
94    sources : rive_src
95 )
96
97 rive_tizen_lib = library(
98         'rive_tizen',
99         include_directories : [headers],
100         version             : meson.project_version(),
101         dependencies        : [rive_tizen_dep, rive_dep],
102         install             : true,
103         cpp_args            : ['-fno-exceptions', '-fno-rtti'],
104         gnu_symbol_visibility : 'hidden',
105 )
106
107 rive_tizen_lib_dep = declare_dependency(
108         include_directories : [headers],
109         link_with : rive_tizen_lib
110 )
111
112 pkg_mod = import('pkgconfig')
113
114 pkg_mod.generate(
115         libraries    : rive_tizen_lib,
116         version      : meson.project_version(),
117         name         : 'librive_tizen',
118         filebase     : 'rive_tizen',
119         description  : 'A Rive Animation Tizen Runtime Engine'
120 )
121
122 subdir('example')