# -----------------------------------------------------------------------------------------------------------
# Copyright (c) 2025 Huawei Technologies Co., Ltd.
# This program is free software, you can redistribute it and/or modify it under the terms and conditions of
# CANN Open Software License Agreement Version 2.0 (the "License").
# Please refer to the License for details. You may not use this file except in compliance with the License.
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
# See LICENSE in the root of the software repository for the full text of the License.
# -----------------------------------------------------------------------------------------------------------

add_custom_target(copy_acl_headers_and_libs)
if (ENABLE_OPEN_SRC AND NOT EXISTS "${CMAKE_BINARY_DIR}/include_acl")
    include(ExternalProject)
    set(ACL_DOWNLOAD_DIR "${CMAKE_BINARY_DIR}/download")
    set(ACL_SOURCE_DIR "${CMAKE_BINARY_DIR}/acl_compat")

    file(GLOB LOCAL_TAR_FILE "${CANN_3RD_LIB_PATH}/acl-compat_*_linux-${CMAKE_HOST_SYSTEM_PROCESSOR}.tar.gz")
    if (LOCAL_TAR_FILE)
        list(GET LOCAL_TAR_FILE -1 REQ_URL)
    else()
        set(REQ_URL "https://cann-3rd.obs.cn-north-4.myhuaweicloud.com/cann/acl-compat/acl-compat_9.1.0_linux-${TARGET_ARCH}.tar.gz")
    endif()
    include(ExternalProject)
    ExternalProject_Add(acl_compat_tar
            URL ${REQ_URL}
            TLS_VERIFY OFF
            DOWNLOAD_DIR ${ACL_DOWNLOAD_DIR}
            SOURCE_DIR ${ACL_SOURCE_DIR}
            CONFIGURE_COMMAND ""
            BUILD_COMMAND ""
            INSTALL_COMMAND ""
            UPDATE_COMMAND ""
            EXCLUDE_FROM_ALL TRUE
    )
    set(DST_LIB_DIR "${CMAKE_BINARY_DIR}/lib_acl")
    set(DST_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include_acl")
    add_custom_target(_copy_acl_headers_and_libs
        COMMAND ${CMAKE_COMMAND} -E make_directory "${DST_LIB_DIR}"
        COMMAND ${CMAKE_COMMAND} -E copy_directory "${ACL_SOURCE_DIR}/lib64" "${DST_LIB_DIR}"
        COMMAND ${CMAKE_COMMAND} -E make_directory "${DST_INCLUDE_DIR}"
        COMMAND ${CMAKE_COMMAND} -E copy_directory "${ACL_SOURCE_DIR}/include" "${DST_INCLUDE_DIR}"
        DEPENDS acl_compat_tar 
        COMMENT "Copying ACL lib/include to lib_acl and include_acl"
        VERBATIM
    )
    add_dependencies(copy_acl_headers_and_libs _copy_acl_headers_and_libs)
endif()