# Copyright (c) Huawei Technologies Co., Ltd. 2025. All rights reserved.
# This source file is part of the Cangjie project, licensed under Apache-2.0
# with Runtime Library Exception.
#
# See https://cangjie-lang.cn/pages/LICENSE for license information.
# The Cangjie API is in Beta. For details on its capabilities and limitations, please refer to the README file.
# Defining dependencies for all backends, BACKEND_TYPE is defined outside where this file is included
# Build stdlib only when cross-compiling.
list(APPEND STD_CORE_DEPENDENCIES boundscheck)
set(BINARY_DEPENDENCIES ${STD_CORE_DEPENDENCIES} cangjie${BACKEND_TYPE}Core)
set(STD_NET_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Math
cangjie${BACKEND_TYPE}Convert
cangjie${BACKEND_TYPE}Binary
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Time
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Overflow)
set(SYNC_DEPENDENCIES ${STD_CORE_DEPENDENCIES} cangjie${BACKEND_TYPE}Core cangjie${BACKEND_TYPE}Time)
set(MATH_DEPENDENCIES ${STD_CORE_DEPENDENCIES} cangjie${BACKEND_TYPE}Core)
set(SORT_DEPENDENCIES ${STD_CORE_DEPENDENCIES} cangjie${BACKEND_TYPE}Core cangjie${BACKEND_TYPE}Math cangjie${BACKEND_TYPE}Collection)
set(OVERFLOW_DEPENDENCIES ${STD_CORE_DEPENDENCIES} cangjie${BACKEND_TYPE}Core)
set(ENCODING_DEPENDENCIES ${STD_CORE_DEPENDENCIES} cangjie${BACKEND_TYPE}Core)
set(ENCODING_BASE64_DEPENDENCIES ${STD_CORE_DEPENDENCIES} cangjie${BACKEND_TYPE}Core)
set(ENCODING_HEX_DEPENDENCIES ${STD_CORE_DEPENDENCIES} cangjie${BACKEND_TYPE}Core)
set(STD_CONVERT_DEPENDENCIES ${STD_CORE_DEPENDENCIES} cangjie${BACKEND_TYPE}Core cangjie${BACKEND_TYPE}Math)
set(RUNTIME_DEPENDENCIES ${STD_CORE_DEPENDENCIES} cangjie${BACKEND_TYPE}Core)
if(CANGJIE_CODEGEN_CJNATIVE_BACKEND)
list(APPEND RUNTIME_DEPENDENCIES
cangjie${BACKEND_TYPE}Fs
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}PROCESS
cangjie${BACKEND_TYPE}ENV
cangjie${BACKEND_TYPE}Collection)
endif()
set(STD_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(COLLECTION_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Math)
set(CONCURRENT_COLLECTION_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Time)
set(STD_AST_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sort
FLATC_OUTPUTS)
set(IO_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(MATH_NUMERIC_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Math
cangjie${BACKEND_TYPE}Random
cangjie${BACKEND_TYPE}Convert)
set(TIME_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Convert)
set(FS_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Time
cangjie${BACKEND_TYPE}Collection)
set(CONSOLE_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Sort)
set(POSIX_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(PROCESS_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Fs
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Time)
set(ENV_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Fs
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Sync)
set(OS_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Fs
cangjie${BACKEND_TYPE}Sync)
set(INTEROP_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(REF_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(OBJECTPOOL_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}ConcurrentCollection)
set(LOG_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Time
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}Sync)
set(LOGGER_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}ConcurrentCollection
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Log
cangjie${BACKEND_TYPE}Time
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}JsonStream)
set(REGEX_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sync)
set(SERIALIZATIONBASE_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(SERIALIZATION_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection)
set(ENCODING_JSON_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Serialization
cangjie${BACKEND_TYPE}Convert)
set(ENCODING_JSON_STREAM_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Time
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Convert
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Math
cangjie${BACKEND_TYPE}MathNumeric)
set(ENCODING_XML_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sync)
set(RANDOM_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Math)
set(REFLECT_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Fs
cangjie${BACKEND_TYPE}Sync)
set(ARGOPT_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection)
set(COMPRESS_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(COMPRESS_ZLIB_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Io)
set(CRYPTOBASE_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(CRYPTO_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Math
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Digest
cangjie${BACKEND_TYPE}CryptoDigest
cangjie${BACKEND_TYPE}Cipher)
set(CRYPTO_DIGEST_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Hex
cangjie${BACKEND_TYPE}Digest)
set(CRYPTO_KEYS_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}X509
cangjie${BACKEND_TYPE}Digest
cangjie${BACKEND_TYPE}MathNumeric
cangjie${BACKEND_TYPE}Sync)
set(X509_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Convert
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}Time
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Hex
cangjie${BACKEND_TYPE}Base64
cangjie${BACKEND_TYPE}Fs
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Crypto)
set(STD_DIGEST_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Io)
set(STD_CIPHER_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(STD_DERIVING_API_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Unicode
cangjie${BACKEND_TYPE}AST
)
set(STD_DERIVING_RESOLVE_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Unicode
cangjie${BACKEND_TYPE}Convert
cangjie${BACKEND_TYPE}AST
cangjie${BACKEND_TYPE}DerivingApi
)
set(STD_DERIVING_IMPL_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Unicode
cangjie${BACKEND_TYPE}AST
cangjie${BACKEND_TYPE}DerivingApi
cangjie${BACKEND_TYPE}DerivingResolve
)
set(STD_DERIVING_BUILTINS_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Unicode
cangjie${BACKEND_TYPE}AST
cangjie${BACKEND_TYPE}DerivingApi
cangjie${BACKEND_TYPE}DerivingResolve
)
set(STD_DERIVING_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Unicode
cangjie${BACKEND_TYPE}AST
cangjie${BACKEND_TYPE}DerivingApi
cangjie${BACKEND_TYPE}DerivingImpl
cangjie${BACKEND_TYPE}DerivingBuiltins
cangjie${BACKEND_TYPE}DerivingResolve
)
set(UNITTEST_COMMON_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Unicode
cangjie${BACKEND_TYPE}Math
cangjie${BACKEND_TYPE}Convert
cangjie${BACKEND_TYPE}Sync)
set(UNITTEST_DEPENDENCIES
${UNITTEST_COMMON_DEPENDENCIES}
cangjie${BACKEND_TYPE}ConcurrentCollection
cangjie${BACKEND_TYPE}Runtime
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Argopt
cangjie${BACKEND_TYPE}Time
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Fs
cangjie${BACKEND_TYPE}UnittestPropTest
cangjie${BACKEND_TYPE}UnittestCommon
cangjie${BACKEND_TYPE}UnittestDiff
cangjie${BACKEND_TYPE}UnittestMock
cangjie${BACKEND_TYPE}Convert
cangjie${BACKEND_TYPE}Regex
cangjie${BACKEND_TYPE}PROCESS
cangjie${BACKEND_TYPE}ENV
cangjie${BACKEND_TYPE}Binary
cangjie${BACKEND_TYPE}Net)
set(UNITTEST_PROPTEST_DEPENDENCIES
${UNITTEST_COMMON_DEPENDENCIES}
cangjie${BACKEND_TYPE}Random
cangjie${BACKEND_TYPE}UnittestCommon)
set(UNITTEST_DIFF_DEPENDENCIES
${UNITTEST_COMMON_DEPENDENCIES}
cangjie${BACKEND_TYPE}UnittestCommon)
set(TESTMACRO_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
${UNITTEST_COMMON_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}UnittestCommon
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}AST
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Unicode
cangjie${BACKEND_TYPE}ConcurrentCollection)
set(UNITTEST_MOCK_INTERNAL_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection)
set(UNITTEST_MOCK_DEPENDENCIES
${UNITTEST_COMMON_DEPENDENCIES}
cangjie${BACKEND_TYPE}UnittestCommon
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Fs
cangjie${BACKEND_TYPE}UnittestMockInternal)
set(UNITTEST_MOCKMACRO_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}AST
cangjie${BACKEND_TYPE}Collection)
set(UNICODE_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection)
set(ENCODING_URL_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection)
set(NETBASE_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(NET_TLS_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Hex
cangjie${BACKEND_TYPE}Base64
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Net
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}ConcurrentCollection
cangjie${BACKEND_TYPE}Time
cangjie${BACKEND_TYPE}Fs
cangjie${BACKEND_TYPE}X509
cangjie${BACKEND_TYPE}CryptoDigest)
set(NET_HTTP_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Time
cangjie${BACKEND_TYPE}Fs
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}ConcurrentCollection
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Convert
cangjie${BACKEND_TYPE}Console
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}Base64
cangjie${BACKEND_TYPE}Unicode
cangjie${BACKEND_TYPE}Net
cangjie${BACKEND_TYPE}Url
cangjie${BACKEND_TYPE}Log
cangjie${BACKEND_TYPE}Logger
cangjie${BACKEND_TYPE}Tls
cangjie${BACKEND_TYPE}PROCESS
cangjie${BACKEND_TYPE}Crypto
cangjie${BACKEND_TYPE}X509)
set(STD_DATABASE_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(STD_SQL_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Time
cangjie${BACKEND_TYPE}Io
cangjie${BACKEND_TYPE}Sync
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}ConcurrentCollection
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}Math
cangjie${BACKEND_TYPE}MathNumeric
cangjie${BACKEND_TYPE}Random)
set(FUZZBASE_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(FUZZ_FUZZ_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Collection
cangjie${BACKEND_TYPE}Sort
cangjie${BACKEND_TYPE}PROCESS
cangjie${BACKEND_TYPE}Convert)
set(JAVA8_JAVA_LANG_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core)
set(STD_FFIJAVA_DEPENDENCIES
${STD_CORE_DEPENDENCIES}
cangjie${BACKEND_TYPE}Core
cangjie${BACKEND_TYPE}Java8_java.lang)