mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-06-28 01:52:06 +08:00
4359ba84ed
01942b89 add TODO
b74a456a don't hardcode the lists
ed5a4bf5 add face stds
396a2bb5 add can error counter to controlsState
c6b5c73b Switch default to msgq (#21)
a457ffa0 Fix indentation in readme.md
a1fc8c75 explicitly mention Python for syntax colouring (#20)
19e23931 Fix expected for cameraOdometry and liveCalibration
e7d2f978 Add radar comm issue error
db64cd43 Reserve safety #21 for VAG PQ35/PQ46/NMS (#19)
79d638d5 separate honda safety models between Bosch Giraffe and Bosch Nidec
2614a650 better name
b6b84cda add longitudinal
78f5934a Add canRxErrs to health
67588993 qlog liveCalibration
df80b870 add more stuff to fw log in CarParams
a87805ad fix doxs
4746b208 got doxed
21cf3f55 build on mac
31ac47c2 Add carUnrecognized event
git-subtree-dir: cereal
git-subtree-split: 01942b890d7acf19aecc09432fe5048ba21c0fc9
old-commit-hash: 9504037aa7
69 lines
2.6 KiB
Python
69 lines
2.6 KiB
Python
Import('env', 'arch', 'zmq')
|
|
|
|
gen_dir = Dir('gen')
|
|
messaging_dir = Dir('messaging')
|
|
|
|
# TODO: remove src-prefix and cereal from command string. can we set working directory?
|
|
env.Command(["gen/c/include/c++.capnp.h", "gen/c/include/java.capnp.h"], [], "mkdir -p " + gen_dir.path + "/c/include && touch $TARGETS")
|
|
env.Command(
|
|
['gen/c/car.capnp.c', 'gen/c/log.capnp.c', 'gen/c/car.capnp.h', 'gen/c/log.capnp.h'],
|
|
['car.capnp', 'log.capnp'],
|
|
'capnpc $SOURCES --src-prefix=cereal -o c:' + gen_dir.path + '/c/')
|
|
env.Command(
|
|
['gen/cpp/car.capnp.c++', 'gen/cpp/log.capnp.c++', 'gen/cpp/car.capnp.h', 'gen/cpp/log.capnp.h'],
|
|
['car.capnp', 'log.capnp'],
|
|
'capnpc $SOURCES --src-prefix=cereal -o c++:' + gen_dir.path + '/cpp/')
|
|
import shutil
|
|
if shutil.which('capnpc-java'):
|
|
env.Command(
|
|
['gen/java/Car.java', 'gen/java/Log.java'],
|
|
['car.capnp', 'log.capnp'],
|
|
'capnpc $SOURCES --src-prefix=cereal -o java:' + gen_dir.path + '/java/')
|
|
|
|
# TODO: remove non shared cereal and messaging
|
|
cereal_objects = env.SharedObject([
|
|
'gen/c/car.capnp.c',
|
|
'gen/c/log.capnp.c',
|
|
'gen/cpp/car.capnp.c++',
|
|
'gen/cpp/log.capnp.c++',
|
|
])
|
|
|
|
env.Library('cereal', cereal_objects)
|
|
env.SharedLibrary('cereal_shared', cereal_objects, LIBS=["capnp_c"])
|
|
|
|
cereal_dir = Dir('.')
|
|
services_h = env.Command(
|
|
['services.h'],
|
|
['service_list.yaml', 'services.py'],
|
|
'python3 ' + cereal_dir.path + '/services.py > $TARGET')
|
|
|
|
messaging_objects = env.SharedObject([
|
|
'messaging/messaging.cc',
|
|
'messaging/impl_zmq.cc',
|
|
'messaging/impl_msgq.cc',
|
|
'messaging/msgq.cc',
|
|
])
|
|
|
|
messaging_lib = env.Library('messaging', messaging_objects)
|
|
Depends('messaging/impl_zmq.cc', services_h)
|
|
|
|
# note, this rebuilds the deps shared, zmq is statically linked to make APK happy
|
|
# TODO: get APK to load system zmq to remove the static link
|
|
shared_lib_shared_lib = [zmq, 'm', 'stdc++'] + ["gnustl_shared"] if arch == "aarch64" else [zmq]
|
|
env.SharedLibrary('messaging_shared', messaging_objects, LIBS=shared_lib_shared_lib)
|
|
|
|
env.Program('messaging/bridge', ['messaging/bridge.cc'], LIBS=[messaging_lib, 'zmq'])
|
|
Depends('messaging/bridge.cc', services_h)
|
|
|
|
# different target?
|
|
#env.Program('messaging/demo', ['messaging/demo.cc'], LIBS=[messaging_lib, 'zmq'])
|
|
|
|
|
|
env.Command(['messaging/messaging_pyx.so'],
|
|
[messaging_lib, 'messaging/messaging_pyx_setup.py', 'messaging/messaging_pyx.pyx', 'messaging/messaging.pxd'],
|
|
"cd " + messaging_dir.path + " && python3 messaging_pyx_setup.py build_ext --inplace")
|
|
|
|
|
|
if GetOption('test'):
|
|
env.Program('messaging/test_runner', ['messaging/test_runner.cc', 'messaging/msgq_tests.cc'], LIBS=[messaging_lib])
|