94c5329209bfdf240ebcff89e3234281de4783c2
[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 thorvg_renderer_dep = declare_dependency(
93    include_directories : include_directories(['src/renderer/include']),
94    sources : ['src/renderer/src/thorvg_renderer.cpp'],
95    dependencies : thorvg_dep
96 )
97
98 rive_dep = declare_dependency(
99    include_directories : include_directories(['submodule/include']),
100    sources : rive_src,
101    dependencies : thorvg_renderer_dep
102 )
103
104 rive_tizen_lib = library(
105         'rive_tizen',
106         include_directories : [headers],
107         version             : meson.project_version(),
108         dependencies        : [rive_tizen_dep, rive_dep],
109         install             : true,
110         cpp_args            : ['-fno-exceptions', '-fno-rtti'],
111         gnu_symbol_visibility : 'hidden',
112 )
113
114 rive_tizen_lib_dep = declare_dependency(
115         include_directories : [headers],
116         link_with : rive_tizen_lib
117 )
118
119 pkg_mod = import('pkgconfig')
120
121 pkg_mod.generate(
122         libraries    : rive_tizen_lib,
123         version      : meson.project_version(),
124         name         : 'librive_tizen',
125         filebase     : 'rive_tizen',
126         description  : 'A Rive Animation Tizen Runtime Engine'
127 )
128
129 subdir('example')