Files
2025-09-17 16:34:53 +08:00

54 lines
1.7 KiB
Python

# 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",
}
)