# component2/SConscript Import("env") import os with open(env["PROJECT_TOOL_S"]) as f: exec(f.read()) if "CONFIG_SIMDJSON_COMPENENT_ENABLED" in os.environ: check_component("simdjson") SRCS = [] INCLUDE = [] PRIVATE_INCLUDE = [] REQUIREMENTS = [] STATIC_LIB = [] DYNAMIC_LIB = [] DEFINITIONS = [] DEFINITIONS_PRIVATE = ['-O2'] LDFLAGS = [] LINK_SEARCH_PATH = [] DEFINITIONS += ['-std=c++17'] COMPONENT_PATH = os.path.join(os.environ["GIT_REPO_PATH"], "simdjson") SRCS += [os.path.join(COMPONENT_PATH, "src/simdjson.cpp")] gcc_dumpmachine = env["GCC_DUMPMACHINE"].split("-") if "x86_64" in gcc_dumpmachine and "linux" in gcc_dumpmachine: DEFINITIONS_PRIVATE += [ "-mno-avx256-split-unaligned-load", "-mno-avx256-split-unaligned-store", ] DEFINITIONS_PRIVATE += [ "-DSIMDJSON_AVX512_ALLOWED=1", "-DSIMDJSON_THREADS_ENABLED=1", "-DSIMDJSON_UTF8VALIDATION=1", ] INCLUDE.append(os.path.join(COMPONENT_PATH, "include")) PRIVATE_INCLUDE.append(os.path.join(COMPONENT_PATH, "src")) 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": "shared" if "CONFIG_LNNG_DYNAMIC" in os.environ else "static", } )