• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2021-2024 Huawei Device Co., Ltd.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14enable_language(ASM)
15
16if(PANDA_WITH_TESTS)
17    get_target_property(ALL_ARK_SOURCES_VAR_STATIC arkruntime_interpreter_static SOURCES)
18    get_target_property(ALL_ARK_SOURCES_VAR_OBJ arkruntime_obj SOURCES)
19    set(ALL_ARK_SOURCES_VAR ${ALL_ARK_SOURCES_VAR_STATIC} ${ALL_ARK_SOURCES_VAR_OBJ})
20    get_target_property(ALL_ARK_INCLUDE_DIRECTORIES_VAR arkruntime_obj INCLUDE_DIRECTORIES)
21    get_target_property(ALL_ARK_LINK_LIBRARIES_VAR arkruntime_obj LINK_LIBRARIES)
22
23    set(ARK_ABSOLUTE_PATH_SOURCE)
24    foreach(SRC ${ALL_ARK_SOURCES_VAR})
25        string(FIND ${SRC} "TARGET_OBJECTS" RESULT)
26        if("${RESULT}" STREQUAL "-1" AND NOT IS_ABSOLUTE ${SRC})
27            set(SRC ${CMAKE_CURRENT_SOURCE_DIR}/runtime/${SRC})
28        endif()
29        string(FIND ${SRC} "irtoc" RESULT)
30        if(NOT "${RESULT}" STREQUAL "-1")
31            SET_SOURCE_FILES_PROPERTIES(${SRC} PROPERTIES
32                EXTERNAL_OBJECT true
33                GENERATED true
34            )
35        endif()
36        list(APPEND ARK_ABSOLUTE_PATH_SOURCE ${SRC})
37    endforeach()
38
39    panda_add_library(arkruntime_for_relayout_static STATIC ${ARK_ABSOLUTE_PATH_SOURCE})
40    panda_target_include_directories(arkruntime_for_relayout_static PUBLIC ${ALL_ARK_INCLUDE_DIRECTORIES_VAR})
41    panda_target_compile_definitions(arkruntime_for_relayout_static PUBLIC PANDA_ENABLE_RELAYOUT_PROFILE)
42    set_source_files_properties(${ARK_ABSOLUTE_PATH_SOURCE} PROPERTIES COMPILE_FLAGS "-Wno-shadow -Wno-unused-parameter")
43
44    add_dependencies(arkruntime_for_relayout_static
45        intrinsics_gen_arkruntime
46        runtime_intrinsics_inl
47        isa_gen_pandaverification
48        messages_data_pandaverification
49        messages_gen_pandaverification
50        verifier_plugin_gen
51        arkstdlib
52        asm_defines_generator
53        entrypoints_gen
54        irtoc_fastpath
55        irtoc_interpreter
56        ${irtoc_target}
57    )
58
59    foreach(plugin ${PLUGINS})
60        string(TOUPPER ${plugin} plugin_name_upper)
61        string(CONCAT PANDA_WITH_PLUGIN "PANDA_WITH_" ${plugin_name_upper})
62
63        if(${${PANDA_WITH_PLUGIN}})
64            string(CONCAT PLUGIN_SOURCE "PANDA_" ${plugin_name_upper} "_PLUGIN_SOURCE")
65            if(EXISTS ${${PLUGIN_SOURCE}}/RuntimeEnableRelayoutPostPlugins.cmake)
66                include(${${PLUGIN_SOURCE}}/RuntimeEnableRelayoutPostPlugins.cmake)
67            endif()
68        endif()
69    endforeach()
70
71    if(PANDA_TARGET_ARM32_ABI_SOFT OR PANDA_TARGET_ARM32_ABI_SOFTFP)
72        add_dependencies(arkruntime_for_relayout_static bridge_dispatch_arm bridge_dispatch_dyn_arm)
73    elseif (PANDA_TARGET_ARM32_ABI_HARD)
74        add_dependencies(arkruntime_for_relayout_static bridge_dispatch_armhf bridge_dispatch_dyn_arm)
75    elseif(PANDA_TARGET_ARM64)
76        add_dependencies(arkruntime_for_relayout_static bridge_dispatch_aarch64 bridge_dispatch_dyn_aarch64)
77        panda_target_compile_options(arkruntime_for_relayout_static PUBLIC "-march=armv8-a+crc")
78    elseif(PANDA_TARGET_X86)
79        add_dependencies(arkruntime_for_relayout_static bridge_dispatch_x86)
80    elseif(PANDA_TARGET_AMD64)
81        add_dependencies(arkruntime_for_relayout_static bridge_dispatch_amd64 bridge_dispatch_dyn_amd64)
82    endif()
83
84    panda_target_link_libraries(arkruntime_for_relayout_static ${ALL_ARK_LINK_LIBRARIES_VAR})
85    set_property(TARGET arkruntime_for_relayout_static PROPERTY POSITION_INDEPENDENT_CODE ON)
86endif()
87