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', 'utilities', 'eventpp', 'StackFlow'] STATIC_LIB = [] DYNAMIC_LIB = [] DEFINITIONS = [] DEFINITIONS_PRIVATE = [] LDFLAGS = [] LINK_SEARCH_PATH = [] STATIC_FILES = [] if 'CONFIG_AX_620E_MSP_ENABLED' in os.environ: python_venv = check_wget_down("https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/linux/llm/m5stack_llm-vlm-python-venv_v1.8.tar.gz", 'm5stack_llm-vlm-python-venv_v1.8.tar.gz') else: python_venv = check_wget_down("https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/linux/llm/m5stack_llm-vlm-python-venv_v1.7.tar.gz", 'm5stack_llm-vlm-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 += ['ax_engine', 'ax_interpreter', 'ax_sys'] LINK_SEARCH_PATH += [ADir('../static_lib')] INCLUDE += [ADir('src/runner'), ADir('src/runner/utils')] INCLUDE += [ADir('../static_lib/include/sentencepiece'), ADir('../static_lib/include/protobuf-lite'), ADir('../static_lib/include/abseil-cpp'), ADir('../static_lib/include/opencv4'), 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_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/libopencv_core.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/libittnotify.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/liblibjpeg-turbo.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/liblibopenjp2.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/liblibpng.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/liblibtiff.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/liblibwebp.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/libopencv_core.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/libopencv_highgui.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/libopencv_imgcodecs.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/libopencv_imgproc.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/libopencv_videoio.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/libtegra_hal.a')] static_file += [AFile('../static_lib/libopencv-4.6-aarch64-none/lib/libzlib.a')] STATIC_LIB += static_file * 4 STATIC_FILES += [os.path.join(python_venv, 'vlm')] STATIC_FILES += Glob('scripts/tokenizer_*.py') STATIC_FILES += Glob('models/mode_*.json') IGNORE_FILES = [] IGNORE_FILES += ['vlm'] 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_vlm-1.11', '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' })