diff --git a/.github/workflows/asan_ubsan_build.yml b/.github/workflows/asan_ubsan_build.yml index 8136d8cf4..96893c758 100644 --- a/.github/workflows/asan_ubsan_build.yml +++ b/.github/workflows/asan_ubsan_build.yml @@ -32,11 +32,10 @@ jobs: shell: bash - name: Run ecal_pn config + continue-on-error: true run: | just setenv LDMX_NUM_EVENTS=1500 just setenv LDMX_RUN_NUMBER=1 - export LDMX_NUM_EVENTS=15 - export LDMX_RUN_NUMBER=1 just fire ${GITHUB_WORKSPACE}/.github/validation_samples/ecal_pn/config.py 2> output.log shell: bash diff --git a/justfile b/justfile index 6be250664..a9dbc9251 100644 --- a/justfile +++ b/justfile @@ -59,25 +59,28 @@ install-denv: # configure how ldmx-sw will be built # added ADDITIONAL_WARNINGS and CLANG_TIDY to help improve code quality -configure *CONFIG: - denv cmake -B build -S . -DADDITIONAL_WARNINGS=ON -DENABLE_CLANG_TIDY=ON {{ CONFIG }} +# base configure command defining how cmake is called, private so only experts call it +[private] +configure-base *CONFIG: + denv cmake -B build -S . {{ CONFIG }} + +# default configure of build when developing +configure *CONFIG: (configure-base "-DADDITIONAL_WARNINGS=ON -DENABLE_CLANG_TIDY=ON" CONFIG) # configure minimal option for faster compilation -configure-quick *CONFIG: - denv cmake -B build -S . {{ CONFIG }} +configure-quick: (configure-base) -# Configure with Address Sanitizer (ASAN) and UndefinedBehaviorSanitizer (UBSan) -configure-asan-ubsan: (configure-quick "-DENABLE_SANITIZER_UNDEFINED_BEHAVIOR=ON -DENABLE_SANITIZER_ADDRESS=ON") +# configure with Address Sanitizer (ASAN) and UndefinedBehaviorSanitizer (UBSan) +configure-asan-ubsan: (configure-base "-DENABLE_SANITIZER_UNDEFINED_BEHAVIOR=ON -DENABLE_SANITIZER_ADDRESS=ON") # This is the same as just configure but reports all (non-3rd-party) warnings as errors -configure-force-error *CONFIG: (configure "-DWARNINGS_AS_ERRORS=ON" CONFIG) +configure-force-error: (configure "-DWARNINGS_AS_ERRORS=ON") -# This is an alternative compiler (clang) together with enabling the LTO sanitizer -# This is very helpful but for now it optimizes away our module linking, use for testing only +# Use alternative compiler and enable LTO (test compiling only, won't run properly) configure-clang-lto: (configure "-DENABLE_LTO=ON -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_C_COMPILER=clang") -configure-gdb: (configure-quick "-DCMAKE_BUILD_TYPE=Debug") - +# Keep debug symbols so running with gdb provides more helpful detail +configure-gdb: (configure-base "-DCMAKE_BUILD_TYPE=Debug") # compile and install ldmx-sw build ncpu=num_cpus(): denv cmake --build build --target install -- -j{{ ncpu }}