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