mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-02-19 06:34:00 +08:00
12aad06e no more c capnp 0050e0ac stockFcw event 2c325ed3 gasPressed event 8573a24d don't duplicate ordinals 3f384efa add carState.steerWarning and carState.steerError 8b347b0a add repeated warning2 3adb8991 add sharpness metric 65af4368 Add relayMalfunction alert 442e914d add preview driver flag c8e5db83 Add comment to faulttype 975a633b Add all panda fault types to health 93ccbcb7 UiLayoutState: add mockEngaged for onboarding 9dbbb545 UiLayoutState: add 'none' app c820f83d Add offroadLayout service e370f795 Add the laneChangeBlocked Event (#40) 35040fe6 Update service documentation (#39) 8f13dfca Additional car params auto-detection in support of VW (#38) 22986de4 add speedTooHigh alert f515e4db Add invalid lkas setting alert 59087620 gnustl_shared is only for android b0c746b1 solve by renaming event name instead of service df82a53c the service is called androidLogEntry git-subtree-dir: cereal git-subtree-split: 12aad06e12f249e57abda1664fb0c85e484a0c5d
63 lines
2.3 KiB
Python
63 lines
2.3 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/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/cpp/car.capnp.c++',
|
|
'gen/cpp/log.capnp.c++',
|
|
])
|
|
|
|
env.Library('cereal', cereal_objects)
|
|
env.SharedLibrary('cereal_shared', cereal_objects)
|
|
|
|
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])
|