example: add user interaction sample(animation speed).
[platform/core/uifw/rive-tizen.git] / meson.build
index 94c5329..42de241 100644 (file)
@@ -4,26 +4,229 @@ project('rive_tizen',
         version : '0.1.0',
         license : 'MIT')
 
+run_command('script/install.sh')
+add_project_arguments('-DRIVE_FILE_DIR="@0@/example/resources/"'.format(meson.current_source_dir()), language : 'cpp')
+
 thorvg_dep = dependency('thorvg', required : true)
 
-run_command('script/install.sh')
+install_headers([
+   'submodule/include/artboard.hpp',
+   'submodule/include/backboard.hpp',
+   'submodule/include/command_path.hpp',
+   'submodule/include/component.hpp',
+   'submodule/include/component_dirt.hpp',
+   'submodule/include/container_component.hpp',
+   'submodule/include/core.hpp',
+   'submodule/include/core_context.hpp',
+   'submodule/include/dependency_sorter.hpp',
+   'submodule/include/draw_rules.hpp',
+   'submodule/include/draw_target.hpp',
+   'submodule/include/draw_target_placement.hpp',
+   'submodule/include/drawable.hpp',
+   'submodule/include/file.hpp',
+   'submodule/include/layout.hpp',
+   'submodule/include/node.hpp',
+   'submodule/include/renderer.hpp',
+   'submodule/include/runtime_header.hpp',
+   'submodule/include/status_code.hpp',
+   'submodule/include/transform_component.hpp',
+   'src/renderer/tvg_renderer.hpp'
+], subdir: 'rive')
 
-headers = [include_directories('inc')]
+install_headers([
+   'submodule/include/animation/animation.hpp',
+   'submodule/include/animation/animation_state.hpp',
+   'submodule/include/animation/any_state.hpp',
+   'submodule/include/animation/cubic_interpolator.hpp',
+   'submodule/include/animation/entry_state.hpp',
+   'submodule/include/animation/exit_state.hpp',
+   'submodule/include/animation/keyed_object.hpp',
+   'submodule/include/animation/keyed_property.hpp',
+   'submodule/include/animation/keyframe.hpp',
+   'submodule/include/animation/keyframe_color.hpp',
+   'submodule/include/animation/keyframe_double.hpp',
+   'submodule/include/animation/keyframe_id.hpp',
+   'submodule/include/animation/layer_state.hpp',
+   'submodule/include/animation/linear_animation.hpp',
+   'submodule/include/animation/linear_animation_instance.hpp',
+   'submodule/include/animation/loop.hpp',
+   'submodule/include/animation/state_machine.hpp',
+   'submodule/include/animation/state_machine_bool.hpp',
+   'submodule/include/animation/state_machine_component.hpp',
+   'submodule/include/animation/state_machine_input.hpp',
+   'submodule/include/animation/state_machine_layer.hpp',
+   'submodule/include/animation/state_machine_layer_component.hpp',
+   'submodule/include/animation/state_machine_trigger.hpp',
+   'submodule/include/animation/state_transition.hpp',
+   'submodule/include/animation/transition_bool_condition.hpp',
+   'submodule/include/animation/transition_condition.hpp',
+   'submodule/include/animation/transition_trigger_condition.hpp',
+   'submodule/include/animation/transition_value_condition.hpp'
+], subdir: 'rive/animation')
 
-rive_tizen_src = [
-   'src/rive_tizen.cpp',
-]
+install_headers([
+   'submodule/include/bones/bone.hpp',
+   'submodule/include/bones/cubic_weight.hpp',
+   'submodule/include/bones/root_bone.hpp',
+   'submodule/include/bones/skeletal_component.hpp',
+   'submodule/include/bones/skin.hpp',
+   'submodule/include/bones/skinnable.hpp',
+   'submodule/include/bones/tendon.hpp',
+   'submodule/include/bones/weight.hpp'
+], subdir: 'rive/bones')
 
 install_headers([
-                 'inc/rive_tizen.hpp',
-                ])
+   'submodule/include/math/aabb.hpp',
+   'submodule/include/math/circle_constant.hpp',
+   'submodule/include/math/color.hpp',
+   'submodule/include/math/mat2d.hpp',
+   'submodule/include/math/transform_components.hpp',
+   'submodule/include/math/vec2d.hpp'
+], subdir: 'rive/math')
 
-rive_tizen_dep = declare_dependency(
-   include_directories : include_directories('.'),
-   sources : rive_tizen_src
-)
+install_headers([
+   'submodule/include/core/binary_reader.hpp',
+   'submodule/include/core/reader.h'
+], subdir: 'rive/core')
+
+install_headers([
+   'submodule/include/core/field_types/core_bool_type.hpp',
+   'submodule/include/core/field_types/core_color_type.hpp',
+   'submodule/include/core/field_types/core_double_type.hpp',
+   'submodule/include/core/field_types/core_string_type.hpp',
+   'submodule/include/core/field_types/core_uint_type.hpp'
+], subdir: 'rive/core/field_types')
+
+install_headers([
+   'submodule/include/generated/artboard_base.hpp',
+   'submodule/include/generated/backboard_base.hpp',
+   'submodule/include/generated/component_base.hpp',
+   'submodule/include/generated/container_component_base.hpp',
+   'submodule/include/generated/core_registry.hpp',
+   'submodule/include/generated/draw_rules_base.hpp',
+   'submodule/include/generated/draw_target_base.hpp',
+   'submodule/include/generated/drawable_base.hpp',
+   'submodule/include/generated/node_base.hpp',
+   'submodule/include/generated/transform_component_base.hpp'
+], subdir: 'rive/generated')
+
+install_headers([
+   'submodule/include/generated/animation/animation_base.hpp',
+   'submodule/include/generated/animation/animation_state_base.hpp',
+   'submodule/include/generated/animation/any_state_base.hpp',
+   'submodule/include/generated/animation/cubic_interpolator_base.hpp',
+   'submodule/include/generated/animation/entry_state_base.hpp',
+   'submodule/include/generated/animation/exit_state_base.hpp',
+   'submodule/include/generated/animation/keyed_object_base.hpp',
+   'submodule/include/generated/animation/keyed_property_base.hpp',
+   'submodule/include/generated/animation/keyframe_base.hpp',
+   'submodule/include/generated/animation/keyframe_color_base.hpp',
+   'submodule/include/generated/animation/keyframe_double_base.hpp',
+   'submodule/include/generated/animation/keyframe_id_base.hpp',
+   'submodule/include/generated/animation/layer_state_base.hpp',
+   'submodule/include/generated/animation/linear_animation_base.hpp',
+   'submodule/include/generated/animation/state_machine_base.hpp',
+   'submodule/include/generated/animation/state_machine_bool_base.hpp',
+   'submodule/include/generated/animation/state_machine_component_base.hpp',
+   'submodule/include/generated/animation/state_machine_input_base.hpp',
+   'submodule/include/generated/animation/state_machine_layer_base.hpp',
+   'submodule/include/generated/animation/state_machine_layer_component_base.hpp',
+   'submodule/include/generated/animation/state_machine_trigger_base.hpp',
+   'submodule/include/generated/animation/state_transition_base.hpp',
+   'submodule/include/generated/animation/transition_bool_condition_base.hpp',
+   'submodule/include/generated/animation/transition_condition_base.hpp',
+   'submodule/include/generated/animation/transition_trigger_condition_base.hpp',
+   'submodule/include/generated/animation/transition_value_condition_base.hpp'
+], subdir: 'rive/generated/animation')
+
+install_headers([
+   'submodule/include/generated/bones/bone_base.hpp',
+   'submodule/include/generated/bones/cubic_weight_base.hpp',
+   'submodule/include/generated/bones/root_bone_base.hpp',
+   'submodule/include/generated/bones/skeletal_component_base.hpp',
+   'submodule/include/generated/bones/skin_base.hpp',
+   'submodule/include/generated/bones/tendon_base.hpp',
+   'submodule/include/generated/bones/weight_base.hpp'
+], subdir: 'rive/generated/bones')
 
-rive_src = [
+install_headers([
+   'submodule/include/generated/shapes/clipping_shape_base.hpp',
+   'submodule/include/generated/shapes/cubic_asymmetric_vertex_base.hpp',
+   'submodule/include/generated/shapes/cubic_detached_vertex_base.hpp',
+   'submodule/include/generated/shapes/cubic_mirrored_vertex_base.hpp',
+   'submodule/include/generated/shapes/cubic_vertex_base.hpp',
+   'submodule/include/generated/shapes/ellipse_base.hpp',
+   'submodule/include/generated/shapes/parametric_path_base.hpp',
+   'submodule/include/generated/shapes/path_base.hpp',
+   'submodule/include/generated/shapes/path_vertex_base.hpp',
+   'submodule/include/generated/shapes/points_path_base.hpp',
+   'submodule/include/generated/shapes/polygon_base.hpp',
+   'submodule/include/generated/shapes/rectangle_base.hpp',
+   'submodule/include/generated/shapes/shape_base.hpp',
+   'submodule/include/generated/shapes/star_base.hpp',
+   'submodule/include/generated/shapes/straight_vertex_base.hpp',
+   'submodule/include/generated/shapes/triangle_base.hpp'
+], subdir: 'rive/generated/shapes')
+
+install_headers([
+   'submodule/include/generated/shapes/paint/fill_base.hpp',
+   'submodule/include/generated/shapes/paint/gradient_stop_base.hpp',
+   'submodule/include/generated/shapes/paint/linear_gradient_base.hpp',
+   'submodule/include/generated/shapes/paint/radial_gradient_base.hpp',
+   'submodule/include/generated/shapes/paint/shape_paint_base.hpp',
+   'submodule/include/generated/shapes/paint/solid_color_base.hpp',
+   'submodule/include/generated/shapes/paint/stroke_base.hpp',
+   'submodule/include/generated/shapes/paint/trim_path_base.hpp',
+], subdir: 'rive/generated/shapes/paint')
+
+install_headers([
+   'submodule/include/shapes/clipping_shape.hpp',
+   'submodule/include/shapes/cubic_asymmetric_vertex.hpp',
+   'submodule/include/shapes/cubic_detached_vertex.hpp',
+   'submodule/include/shapes/cubic_mirrored_vertex.hpp',
+   'submodule/include/shapes/cubic_vertex.hpp',
+   'submodule/include/shapes/ellipse.hpp',
+   'submodule/include/shapes/metrics_path.hpp',
+   'submodule/include/shapes/parametric_path.hpp',
+   'submodule/include/shapes/path.hpp',
+   'submodule/include/shapes/path_space.hpp',
+   'submodule/include/shapes/path_vertex.hpp',
+   'submodule/include/shapes/points_path.hpp',
+   'submodule/include/shapes/polygon.hpp',
+   'submodule/include/shapes/rectangle.hpp',
+   'submodule/include/shapes/shape.hpp',
+   'submodule/include/shapes/shape_paint_container.hpp',
+   'submodule/include/shapes/star.hpp',
+   'submodule/include/shapes/straight_vertex.hpp',
+   'submodule/include/shapes/triangle.hpp'
+], subdir: 'rive/shapes')
+
+install_headers([
+   'submodule/include/shapes/paint/blend_mode.hpp',
+   'submodule/include/shapes/paint/color.hpp',
+   'submodule/include/shapes/paint/fill.hpp',
+   'submodule/include/shapes/paint/gradient_stop.hpp',
+   'submodule/include/shapes/paint/linear_gradient.hpp',
+   'submodule/include/shapes/paint/radial_gradient.hpp',
+   'submodule/include/shapes/paint/shape_paint.hpp',
+   'submodule/include/shapes/paint/shape_paint_mutator.hpp',
+   'submodule/include/shapes/paint/solid_color.hpp',
+   'submodule/include/shapes/paint/stroke.hpp',
+   'submodule/include/shapes/paint/stroke_cap.hpp',
+   'submodule/include/shapes/paint/stroke_effect.hpp',
+   'submodule/include/shapes/paint/stroke_join.hpp',
+   'submodule/include/shapes/paint/trim_path.hpp'
+], subdir: 'rive/shapes/paint')
+
+install_headers([
+   'submodule/include/importers/artboard_importer.hpp',
+   'submodule/include/importers/import_stack.hpp',
+   'submodule/include/importers/keyed_object_importer.hpp',
+   'submodule/include/importers/keyed_property_importer.hpp',
+   'submodule/include/importers/linear_animation_importer.hpp'
+], subdir: 'rive/importers')
+
+rive_cpp_src = [
    'submodule/src/math/aabb.cpp',
    'submodule/src/math/vec2d.cpp',
    'submodule/src/math/mat2d.cpp',
@@ -36,12 +239,31 @@ rive_src = [
    'submodule/src/animation/keyframe_id.cpp',
    'submodule/src/animation/linear_animation.cpp',
    'submodule/src/animation/linear_animation_instance.cpp',
+   'submodule/src/animation/layer_state.cpp',
+   'submodule/src/animation/state_machine.cpp',
+   'submodule/src/animation/state_machine_input.cpp',
+   'submodule/src/animation/state_machine_input_instance.cpp',
+   'submodule/src/animation/state_machine_instance.cpp',
+   'submodule/src/animation/state_machine_layer.cpp',
+   'submodule/src/animation/state_transition.cpp',
+   'submodule/src/animation/transition_bool_condition.cpp',
+   'submodule/src/animation/transition_condition.cpp',
+   'submodule/src/animation/transition_number_condition.cpp',
+   'submodule/src/animation/transition_trigger_condition.cpp',
    'submodule/src/core/binary_reader.cpp',
    'submodule/src/core/field_types/core_bool_type.cpp',
    'submodule/src/core/field_types/core_color_type.cpp',
    'submodule/src/core/field_types/core_double_type.cpp',
    'submodule/src/core/field_types/core_string_type.cpp',
    'submodule/src/core/field_types/core_uint_type.cpp',
+   'submodule/src/importers/artboard_importer.cpp',
+   'submodule/src/importers/keyed_object_importer.cpp',
+   'submodule/src/importers/keyed_property_importer.cpp',
+   'submodule/src/importers/layer_state_importer.cpp',
+   'submodule/src/importers/linear_animation_importer.cpp',
+   'submodule/src/importers/state_machine_importer.cpp',
+   'submodule/src/importers/state_machine_layer_importer.cpp',
+   'submodule/src/importers/state_transition_importer.cpp',
    'submodule/src/shapes/clipping_shape.cpp',
    'submodule/src/shapes/cubic_mirrored_vertex.cpp',
    'submodule/src/shapes/metrics_path.cpp',
@@ -89,41 +311,17 @@ rive_src = [
    'submodule/src/transform_component.cpp',
 ]
 
-thorvg_renderer_dep = declare_dependency(
-   include_directories : include_directories(['src/renderer/include']),
-   sources : ['src/renderer/src/thorvg_renderer.cpp'],
-   dependencies : thorvg_dep
-)
-
-rive_dep = declare_dependency(
-   include_directories : include_directories(['submodule/include']),
-   sources : rive_src,
-   dependencies : thorvg_renderer_dep
-)
-
-rive_tizen_lib = library(
-       'rive_tizen',
-       include_directories : [headers],
-       version             : meson.project_version(),
-       dependencies        : [rive_tizen_dep, rive_dep],
-       install             : true,
-       cpp_args            : ['-fno-exceptions', '-fno-rtti'],
-       gnu_symbol_visibility : 'hidden',
-)
-
-rive_tizen_lib_dep = declare_dependency(
-       include_directories : [headers],
-       link_with : rive_tizen_lib
+rive_cpp_dep = declare_dependency(
+   include_directories : include_directories('submodule/include'),
+   sources : rive_cpp_src,
 )
 
-pkg_mod = import('pkgconfig')
+headers = [include_directories('inc'), include_directories('submodule/include'), include_directories('src/renderer')]
 
-pkg_mod.generate(
-        libraries    : rive_tizen_lib,
-        version      : meson.project_version(),
-        name         : 'librive_tizen',
-        filebase     : 'rive_tizen',
-        description  : 'A Rive Animation Tizen Runtime Engine'
-)
+subdir('inc')
+subdir('src')
 
-subdir('example')
+if get_option('example') == true
+       message('Enable Examples')
+       subdir('example')
+endif