Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ export CPLUS_INCLUDE_PATH="$CPLUS_INCLUDE_PATH:/usr/include/python3.9/"
cores=`grep -c ^processor /proc/cpuinfo`
export build_type="debug"
install_dir=""
sanitizer="OFF"
sanitizer="false"
enable_debug_exceptions="true"

TEMP=`getopt -o hj:rsie --long help,jobs:,release,sanitize,install,debug_exceptions -n 'build.sh' -- "$@"`
Expand All @@ -31,7 +31,7 @@ eval set -- "$TEMP"
while true ; do
case "$1" in
-h|--help) show_help ; shift ;;
-s|--sanitize) sanitizer="ON" ; shift ;;
-s|--sanitize) sanitizer="true" ; shift ;;
-r|--release) build_type="release" ; shift ;;
-e|--disable_debug_exceptions) enable_debug_exceptions="false" ; shift ;;
-j|--jobs)
Expand Down Expand Up @@ -60,10 +60,10 @@ python3 scripts/generate_meson_dbzero.py dbzero/
mkdir -p build

if [ "$build_type" == "debug" ]; then
meson setup --buildtype="debug" -Denable_debug_exceptions=$enable_debug_exceptions build/debug
meson setup --buildtype="debug" -Denable_debug_exceptions=$enable_debug_exceptions -Denable_sanitizers=$sanitizer build/debug
cd build/debug
else
meson setup --buildtype="release" -Denable_debug_exceptions=$enable_debug_exceptions build/release
meson setup --buildtype="release" -Denable_debug_exceptions=$enable_debug_exceptions -Denable_sanitizers=$sanitizer build/release
cd build/release
fi

Expand Down
10 changes: 10 additions & 0 deletions meson.build
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,16 @@ else
add_project_arguments('-DENABLE_DEBUG_EXCEPTIONS=0', language: 'c')
endif

enable_sanitizers = get_option('enable_sanitizers')

if enable_sanitizers
message('Enabling address and undefined behavior sanitizers')
add_project_arguments('-fsanitize=address', language: 'cpp')
add_project_link_arguments('-fsanitize=address', language: 'cpp')
else
message('Disabling address and undefined behavior sanitizers')
endif

buildtype = get_option('buildtype')
build_suffix = ''
if buildtype.startswith('release')
Expand Down
6 changes: 6 additions & 0 deletions meson_options.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,10 @@ option('enable_debug_exceptions',
type: 'boolean',
value: false,
description: 'Enable debug exceptions (exceptions and stack traces from c++ code).'
)

option('enable_sanitizers',
type: 'boolean',
value: false,
description: 'Enable address and undefined behavior sanitizers.'
)