This commit is contained in:
Yassine Yousfi
2025-06-28 17:11:54 -07:00
parent 74caff53fd
commit 2c8f3c38ab

View File

@@ -1,23 +1,30 @@
Import('env', 'envCython', 'common', 'arch')
Import('env','envCython','common','arch')
from SCons.Subst import Literal # ← add this
envDBC = env.Clone()
dbc_file_path = '-DDBC_FILE_PATH=\'"%s"\'' % (envDBC.Dir("../dbc").abspath)
envDBC['CXXFLAGS'] += [dbc_file_path]
src = ["dbc.cc", "parser.cc", "packer.cc", "common.cc"]
envDBC['CXXFLAGS'] += ['-DDBC_FILE_PATH=\\"%s\\"' % envDBC.Dir('../dbc').abspath]
src = ['dbc.cc','parser.cc','packer.cc','common.cc']
linkflags = envDBC['LINKFLAGS']
if arch == 'Darwin':
linkflags += ['-Wl,-install_name,@loader_path/../..//libdbc.dylib']
libdbc = envDBC.SharedLibrary('libdbc',src,LIBS=[common],LINKFLAGS=linkflags)
# shared library for openpilot
LINKFLAGS = envDBC["LINKFLAGS"]
if arch == "Darwin":
LINKFLAGS += ["-Wl,-install_name,@loader_path/libdbc.dylib"]
libdbc = envDBC.SharedLibrary('libdbc', src, LIBS=[common, ], LINKFLAGS=LINKFLAGS)
# Build packer and parser
lenv = envCython.Clone()
lenv["LIBPATH"].append(Dir("."))
lenv["RPATH"] = [libdbc[0].dir.abspath, ]
parser = lenv.Program('parser_pyx.so', 'parser_pyx.pyx', LIBS=[common, libdbc[0].name])
packer = lenv.Program('packer_pyx.so', 'packer_pyx.pyx', LIBS=[common, libdbc[0].name])
dbc_dir = libdbc[0].dir.abspath
lenv.Append(LIBPATH=[dbc_dir])
opendbc_python = Alias("opendbc_python", [parser, packer])
if arch == 'Darwin':
rpath_flags = [
'-Wl,-rpath,@loader_path',
'-Wl,-rpath,@loader_path/../..',
]
else:
rpath_flags = [
Literal('-Wl,-rpath,$ORIGIN'),
Literal('-Wl,-rpath,$ORIGIN/../..'),
]
lenv.Append(LINKFLAGS=rpath_flags)
parser = lenv.SharedLibrary('parser_pyx','parser_pyx.pyx',SHLIBPREFIX='',SHLIBSUFFIX='.so',LIBS=[common,'dbc'])
packer = lenv.SharedLibrary('packer_pyx','packer_pyx.pyx',SHLIBPREFIX='',SHLIBSUFFIX='.so',LIBS=[common,'dbc'])
opendbc_python = Alias('opendbc_python',[parser,packer,libdbc])
Export('opendbc_python')