Files

88 lines
3.5 KiB
Python

import os
Import('env')
with open(env['PROJECT_TOOL_S']) as f:
exec(f.read())
SRCS = append_srcs_dir(ADir('src'))
INCLUDE = [ADir('include'), ADir('.')]
PRIVATE_INCLUDE = []
REQUIREMENTS = ['pthread','atomic','rt', 'dl', 'm', 'ax_msp', 'axcl', 'utilities', 'eventpp', 'StackFlow']
STATIC_LIB = []
DYNAMIC_LIB = []
DEFINITIONS = []
DEFINITIONS_PRIVATE = []
LDFLAGS = []
LINK_SEARCH_PATH = []
STATIC_FILES = []
if "CONFIG_AXCL_ENABLED" in os.environ:
if "CONFIG_RASPBERRYPI_ENV" in os.environ:
if "CONFIG_RPI_ENV_BOOKWORM" in os.environ:
python_venv = check_wget_down(
"https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/linux/llm/m5stack_llm-llm-python-axcl-rsp-bookworm-venv_v1.10.tar.gz",
"m5stack_llm-llm-python-axcl-rsp-bookworm-venv_v1.10.tar.gz",
)
elif "CONFIG_RPI_ENV_TRIXIE" in os.environ:
python_venv = check_wget_down(
"https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/linux/llm/m5stack_llm-llm-python-axcl-rsp-trixie-venv_v1.10.tar.gz",
"m5stack_llm-llm-python-axcl-rsp-trixie-venv_v1.10.tar.gz",
)
else:
python_venv = check_wget_down("https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/linux/llm/m5stack_llm-llm-python-venv_v1.7.tar.gz", 'm5stack_llm-llm-python-venv_v1.7.tar.gz')
DEFINITIONS += ['-O2']
DEFINITIONS += ['-std=c++17']
LDFLAGS+=['-Wl,-rpath=/opt/m5stack/lib', '-Wl,-rpath=/usr/local/m5stack/lib', '-Wl,-rpath=/usr/local/m5stack/lib/gcc-10.3', '-Wl,-rpath=/opt/lib', '-Wl,-rpath=/opt/usr/lib', '-Wl,-rpath=./']
REQUIREMENTS += ['spdlog', 'axcl_pcie_dma', 'axcl_pcie_msg', 'axcl_token', 'axcl_comm', 'axcl_pkg', 'axcl_rt', 'utilities']
LINK_SEARCH_PATH += [ADir('../static_lib')]
INCLUDE += [ADir('src/runner'), ADir('src/runner/utils'), ADir('src/runner/ax_model_runner')]
INCLUDE += [ADir('../static_lib/include/abseil-cpp'),
ADir('../static_lib/include/re2')]
static_file = Glob('../static_lib/module-llm/libabsl_*')
static_file += [AFile('../static_lib/module-llm/libre2.a'), AFile('../static_lib/module-llm/libsentencepiece.a'), AFile('../static_lib/module-llm/libsentencepiece_train.a')]
STATIC_LIB += static_file * 4
STATIC_FILES += [os.path.join(python_venv, 'llm')]
STATIC_FILES += Glob('scripts/tokenizer_*.py')
STATIC_FILES += Glob('models/mode_*.json')
STATIC_FILES += [AFile('scripts/llm-llm_tokenizer_auto.py')]
IGNORE_FILES = []
IGNORE_FILES += ['llm']
import json
if not os.path.exists('../dist'):
os.makedirs('../dist')
ignore = {'ignore':[]}
try:
with open('../dist/fileignore', 'a+') as f:
f.seek(0)
ignore = json.load(f)
except:
pass
ignore['ignore'] += IGNORE_FILES
ignore['ignore'] = list(set(ignore['ignore']))
with open('../dist/fileignore', 'w') as f:
json.dump(ignore, f, indent=4)
env['COMPONENTS'].append({'target':'llm_llm-1.12',
'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,
'STATIC_FILES':STATIC_FILES,
'REGISTER':'project'
})