mirror of
https://github.com/infiniteCable2/panda.git
synced 2026-02-19 09:43:51 +08:00
* coverage report * test script * not needed * option * options * re-build if file missing * rename * rename flag * just always build * cmt * fix rebuild, panda.c is what does gens gcno * clean up * check coverage * rename * add skip flag * Revert "add skip flag" This reverts commit 6991c174cebb8529b67199033e017155eff917b0. * both do same thing * clean up script * don't test here * Revert "don't test here" This reverts commit 43fe4c961fcc1693d5efc33cabb8162be56a1b88. * try running in CI * nproc * move * Revert "try running in CI" This reverts commit 912017c7fa93ba3faf31267b9b144cc9faee591b. * don't test here * fix path * re-compiling does this
43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
import platform
|
|
|
|
CC = 'gcc'
|
|
system = platform.system()
|
|
if system == 'Darwin':
|
|
# gcc installed by homebrew has version suffix (e.g. gcc-12) in order to be
|
|
# distinguishable from system one - which acts as a symlink to clang
|
|
CC += '-13'
|
|
|
|
env = Environment(
|
|
CC=CC,
|
|
CFLAGS=[
|
|
'-nostdlib',
|
|
'-fno-builtin',
|
|
'-std=gnu11',
|
|
'-Wfatal-errors',
|
|
'-Wno-pointer-to-int-cast',
|
|
],
|
|
CPPPATH=[".", "../../board/"],
|
|
)
|
|
if system == "Darwin":
|
|
env.PrependENVPath('PATH', '/opt/homebrew/bin')
|
|
|
|
if GetOption('ubsan'):
|
|
flags = [
|
|
"-fsanitize=undefined",
|
|
"-fno-sanitize-recover=undefined",
|
|
]
|
|
env['CFLAGS'] += flags
|
|
env['LINKFLAGS'] += flags
|
|
|
|
panda = env.SharedObject("panda.os", "panda.c")
|
|
libpanda = env.SharedLibrary("libpanda.so", [panda])
|
|
|
|
if GetOption('safety_coverage'):
|
|
env.Append(
|
|
CFLAGS=["-fprofile-arcs", "-ftest-coverage", "-fprofile-abs-path",],
|
|
LIBS=["gcov"],
|
|
)
|
|
# GCC note file is generated by compiler, ensure we build it, and allow scons to clean it up
|
|
AlwaysBuild(panda)
|
|
env.SideEffect("panda.gcno", panda)
|