import glob Import('env', 'envCython', 'arch', 'cereal', 'messaging', 'common', 'gpucommon', 'visionipc', 'transformations') lenv = env.Clone() lenvCython = envCython.Clone() libs = [cereal, messaging, visionipc, gpucommon, common, 'capnp', 'kj', 'pthread'] frameworks = [] common_src = [ "models/commonmodel.cc", "transforms/loadyuv.cc", "transforms/transform.cc", ] # OpenCL is a framework on Mac if arch == "Darwin": frameworks += ['OpenCL'] else: libs += ['OpenCL'] # Set path definitions for pathdef, fn in {'TRANSFORM': 'transforms/transform.cl', 'LOADYUV': 'transforms/loadyuv.cl'}.items(): for xenv in (lenv, lenvCython): xenv['CXXFLAGS'].append(f'-D{pathdef}_PATH=\\"{File(fn).abspath}\\"') # Compile cython cython_libs = envCython["LIBS"] + libs commonmodel_lib = lenv.Library('commonmodel', common_src) lenvCython.Program('models/commonmodel_pyx.so', 'models/commonmodel_pyx.pyx', LIBS=[commonmodel_lib, *cython_libs], FRAMEWORKS=frameworks)