aboutsummaryrefslogtreecommitdiff
path: root/build/root.build
diff options
context:
space:
mode:
Diffstat (limited to 'build/root.build')
-rw-r--r--build/root.build43
1 files changed, 40 insertions, 3 deletions
diff --git a/build/root.build b/build/root.build
index ce8ca41..3dbc0cf 100644
--- a/build/root.build
+++ b/build/root.build
@@ -1,7 +1,10 @@
# file : build/root.build
-# copyright : Copyright (c) 2014-2019 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
+config [bool] config.brep.develop ?= false
+
+develop = $config.brep.develop
+
cxx.std = latest
using cxx
@@ -11,12 +14,22 @@ ixx{*}: extension = ixx
txx{*}: extension = txx
cxx{*}: extension = cxx
-cxx.poptions =+ "-I$out_root" "-I$src_root"
-
# Disable "unknown pragma" warnings.
#
cxx.coptions += -Wno-unknown-pragmas
+if ($cxx.id == 'gcc')
+{
+ cxx.coptions += -Wno-maybe-uninitialized -Wno-free-nonheap-object # libbutl
+
+ if ($cxx.version.major >= 13)
+ cxx.coptions += -Wno-dangling-reference
+}
+elif ($cxx.id.type == 'clang' && $cxx.version.major >= 15)
+ cxx.coptions += -Wno-unqualified-std-cast-call
+
+cxx.poptions =+ "-I$out_root" "-I$src_root"
+
# Load the cli module but only if it's available. This way a distribution
# that includes pre-generated files can be built without installing cli.
# This is also the reason why we need to explicitly spell out individual
@@ -51,3 +64,27 @@ tests/{libue libul}{*}: bin.whole = false
# Specify the test target for cross-testing.
#
test.target = $cxx.target
+
+# Omit the rest during the skeleton load.
+#
+if ($build.mode != 'skeleton')
+{
+ # Unless we are in the develop mode, detect the Apache2 headers location
+ # automatically and add the respective preprocessor option.
+ #
+ if! $develop
+ {
+ apache2_includedir = [dir_path] $process.run(apxs -q 'INCLUDEDIR')
+
+ config [config.report] apache2_includedir
+
+ cxx.poptions += "-I$apache2_includedir"
+ }
+
+ # Extract the copyright notice from the LICENSE file.
+ #
+ copyright = $process.run_regex( \
+ cat $src_root/LICENSE, \
+ 'Copyright \(c\) (.+) \(see the AUTHORS and LEGAL files\)\.', \
+ '\1')
+}