Files
dianjixz 7b3db295a4 [update]
- add smidjson_component
- SConstruct_tool add new api
2024-11-25 11:13:59 +08:00

190 lines
6.9 KiB
Python

# component2/SConscript
Import("env")
import os
with open(env["PROJECT_TOOL_S"]) as f:
exec(f.read())
def get_opencv_from_axera():
opencv_path = check_wget_down(
"https://github.com/AXERA-TECH/ax-samples/releases/download/v0.1/opencv-arm-linux-gnueabihf-gcc-7.5.0.zip",
"opencv-arm-linux-gnueabihf-gcc-7.5.0.zip",
)
INCLUDE = [os.path.join(opencv_path, "opencv-arm-linux/include/opencv4")]
STATIC_LIB = AGlob(os.path.join(opencv_path, "opencv-arm-linux/lib/*.a"))
STATIC_LIB += AGlob(
os.path.join(opencv_path, "opencv-arm-linux/lib/opencv4/3rdparty/*.a")
)
return INCLUDE, STATIC_LIB
def get_opencv_from_ncnn():
opencv_path = str(ADir("../../github_source/opencv-mobile-2.4.13.7-armlinux"))
opencv_path = check_wget_down(
"https://github.com/nihui/opencv-mobile/releases/download/v26/opencv-mobile-2.4.13.7-armlinux.zip",
"opencv-mobile-2.4.13.7-armlinux.zip",
)
gcc_dumpmachine = env["GCC_DUMPMACHINE"]
INCLUDE = [os.path.join(opencv_path, gcc_dumpmachine, "include")]
STATIC_LIB = AGlob(
os.path.join(
"../../github_source/opencv-mobile-2.4.13.7-armlinux",
gcc_dumpmachine,
"lib/*.a",
)
)
return INCLUDE, STATIC_LIB
def get_grpc_from_m5stack():
grpc_path = check_wget_down(
"https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/linux/linux_static_packages/grpc-1.65.0-pre1.zip",
"grpc-1.65.0-pre1.zip",
)
return grpc_path
if "CONFIG_STATIC_PACKAGE_ENABLED" in os.environ:
SRCS = []
INCLUDE = []
PRIVATE_INCLUDE = []
REQUIREMENTS = []
STATIC_LIB = []
DYNAMIC_LIB = []
DEFINITIONS = []
DEFINITIONS_PRIVATE = []
LDFLAGS = []
LINK_SEARCH_PATH = []
if "CONFIG_OPENCV_LIB_AXERA_ENABLED" in os.environ:
inc, slib = get_opencv_from_axera()
INCLUDE += inc
STATIC_LIB += slib + slib
if "CONFIG_OPENCV_LIB_NCNN_ENABLED" in os.environ:
inc, slib = get_opencv_from_ncnn()
INCLUDE += inc
STATIC_LIB += slib + slib
if "CONFIG_GRPC_LIB_ENABLED" in os.environ:
grpc_path = get_grpc_from_m5stack()
gcc_dumpmachine = env["GCC_DUMPMACHINE"]
DEFINITIONS = ["-DEFINITIONS", "-DNOMINMAX"]
INCLUDE = [os.path.join(grpc_path, gcc_dumpmachine, "include")]
LINK_SEARCH_PATH = [os.path.join(grpc_path, gcc_dumpmachine, "lib")]
LDFLAGS = [
"-l:libgrpc++.a",
"-l:libgrpc.a",
"-l:libgpr.a",
"-l:libabsl_random_distributions.a",
"-l:libabsl_random_seed_sequences.a",
"-l:libabsl_random_internal_pool_urbg.a",
"-l:libabsl_random_internal_randen.a",
"-l:libabsl_random_internal_randen_hwaes.a",
"-l:libabsl_random_internal_randen_hwaes_impl.a",
"-l:libabsl_random_internal_randen_slow.a",
"-l:libabsl_random_internal_platform.a",
"-l:libabsl_random_internal_seed_material.a",
"-l:libabsl_random_seed_gen_exception.a",
"-l:libprotobuf.a",
"-l:libabsl_log_internal_check_op.a",
"-l:libabsl_leak_check.a",
"-l:libabsl_die_if_null.a",
"-l:libabsl_log_internal_conditions.a",
"-l:libabsl_log_internal_message.a",
"-l:libabsl_examine_stack.a",
"-l:libabsl_log_internal_format.a",
"-l:libabsl_log_internal_proto.a",
"-l:libabsl_log_internal_nullguard.a",
"-l:libabsl_log_internal_log_sink_set.a",
"-l:libabsl_log_sink.a",
"-l:libabsl_log_entry.a",
"-l:libabsl_flags_internal.a",
"-l:libabsl_flags_marshalling.a",
"-l:libabsl_flags_reflection.a",
"-l:libabsl_flags_private_handle_accessor.a",
"-l:libabsl_flags_commandlineflag.a",
"-l:libabsl_flags_commandlineflag_internal.a",
"-l:libabsl_flags_config.a",
"-l:libabsl_flags_program_name.a",
"-l:libabsl_log_initialize.a",
"-l:libabsl_log_globals.a",
"-l:libabsl_vlog_config_internal.a",
"-l:libabsl_log_internal_fnmatch.a",
"-l:libabsl_log_internal_globals.a",
"-l:libabsl_raw_hash_set.a",
"-l:libabsl_hash.a",
"-l:libabsl_city.a",
"-l:libabsl_low_level_hash.a",
"-l:libabsl_hashtablez_sampler.a",
"-l:libabsl_statusor.a",
"-l:libabsl_status.a",
"-l:libabsl_cord.a",
"-l:libabsl_cordz_info.a",
"-l:libabsl_cord_internal.a",
"-l:libabsl_cordz_functions.a",
"-l:libabsl_exponential_biased.a",
"-l:libabsl_cordz_handle.a",
"-l:libabsl_crc_cord_state.a",
"-l:libabsl_crc32c.a",
"-l:libabsl_crc_internal.a",
"-l:libabsl_crc_cpu_detect.a",
"-l:libabsl_bad_optional_access.a",
"-l:libabsl_strerror.a",
"-l:libabsl_str_format_internal.a",
"-l:libabsl_synchronization.a",
"-l:libabsl_graphcycles_internal.a",
"-l:libabsl_kernel_timeout_internal.a",
"-l:libabsl_stacktrace.a",
"-l:libabsl_symbolize.a",
"-l:libabsl_debugging_internal.a",
"-l:libabsl_demangle_internal.a",
"-l:libabsl_malloc_internal.a",
"-l:libabsl_time.a",
"-l:libabsl_civil_time.a",
"-l:libabsl_time_zone.a",
"-l:libabsl_bad_variant_access.a",
"-l:libutf8_validity.a",
"-l:libutf8_range.a",
"-l:libabsl_strings.a",
"-l:libabsl_strings_internal.a",
"-l:libabsl_string_view.a",
"-l:libabsl_base.a",
"-l:librt.a",
"-l:libabsl_spinlock_wait.a",
"-l:libabsl_int128.a",
"-l:libabsl_throw_delegate.a",
"-l:libabsl_raw_logging_internal.a",
"-l:libabsl_log_severity.a",
"-l:libssl.a",
"-l:libcrypto.a",
"-l:libre2.a",
"-l:libgrpc_authorization_provider.a",
"-l:libupb_message_lib.a",
"-l:libupb_mem_lib.a",
"-l:libcares.a",
"-l:libaddress_sorting.a",
"-l:libupb_json_lib.a",
"-l:libupb_base_lib.a",
"-l:libupb_textformat_lib.a",
"-l:libz.a",
]
env["COMPONENTS"].append(
{
"target": os.path.basename(env["component_dir"]),
"SRCS": SRCS,
"INCLUDE": INCLUDE,
"PRIVATE_INCLUDE": PRIVATE_INCLUDE,
"REQUIREMENTS": REQUIREMENTS,
"STATIC_LIB": STATIC_LIB,
"DYNAMIC_LIB": DYNAMIC_LIB,
"DEFINITIONS": DEFINITIONS,
"DEFINITIONS_PRIVATE": DEFINITIONS_PRIVATE,
"LDFLAGS": LDFLAGS,
"LINK_SEARCH_PATH": LINK_SEARCH_PATH,
"REGISTER": "static",
}
)