• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Copyright (C) 2022 Huawei Technologies Co, Ltd.
3#
4
5project(LumeSceneAPI LANGUAGES CXX)
6
7#
8# API
9#
10set(PLUGIN_NAME LumeScene)
11add_library(${PLUGIN_NAME}API INTERFACE)
12add_library(${PLUGIN_NAME}::API ALIAS ${PLUGIN_NAME}API)
13
14target_sources(${PLUGIN_NAME}API PUBLIC
15    scene/api/ecs_scene.h
16    scene/api/external_node.h
17    scene/api/node.h
18    scene/api/post_process.h
19    scene/api/resource.h
20    scene/api/scene.h
21    scene/base/namespace.h
22    scene/base/types.h
23    scene/ext/component.h
24    scene/ext/component_util.h
25    scene/ext/intf_component.h
26    scene/ext/intf_component_factory.h
27    scene/ext/intf_create_entity.h
28    scene/ext/intf_ecs_context.h
29    scene/ext/intf_ecs_event_listener.h
30    scene/ext/intf_ecs_object.h
31    scene/ext/intf_ecs_object_access.h
32    scene/ext/intf_internal_camera.h
33    scene/ext/intf_internal_scene.h
34    scene/ext/util.h
35    scene/interface/intf_camera.h
36    scene/interface/intf_environment.h
37    scene/interface/intf_image.h
38    scene/interface/intf_input_receiver.h
39    scene/interface/intf_layer.h
40    scene/interface/intf_light.h
41    scene/interface/intf_material.h
42    scene/interface/intf_mesh.h
43    scene/interface/intf_mesh_resource.h
44    scene/interface/intf_node.h
45    scene/interface/intf_node_import.h
46    scene/interface/intf_postprocess.h
47    scene/interface/intf_raycast.h
48    scene/interface/intf_scene.h
49    scene/interface/intf_scene_manager.h
50    scene/interface/intf_shader.h
51    scene/interface/intf_text.h
52    scene/interface/intf_texture.h
53    scene/interface/intf_transform.h
54    scene/interface/postprocess/intf_bloom.h
55    scene/interface/postprocess/intf_postprocess_effect.h
56    scene/interface/postprocess/intf_tonemap.h
57    scene/interface/resource/image_info.h
58    scene/interface/resource/intf_render_resource_manager.h
59    scene/interface/resource/types.h
60)
61
62target_include_directories(${PLUGIN_NAME}API INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/)
63
64set_target_properties(${PLUGIN_NAME}API PROPERTIES
65    CXX_STANDARD 17
66    CXX_EXTENSIONS off
67    CXX_VISIBILITY_PRESET hidden
68    VISIBILITY_INLINES_HIDDEN 1
69)
70
71#
72# IDE project tree
73#
74get_target_property(API_PATH ${PLUGIN_NAME}API INTERFACE_INCLUDE_DIRECTORIES)
75get_target_property(API_SOURCES ${PLUGIN_NAME}API INTERFACE_SOURCES)
76source_group(TREE ${API_PATH} FILES ${API_SOURCES})
77