aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build2/c/init.cxx3
-rw-r--r--build2/cc/common.hxx3
-rw-r--r--build2/cc/compile.cxx4
-rw-r--r--build2/cc/init.cxx11
-rw-r--r--build2/cxx/init.cxx12
-rw-r--r--tests/cc/preprocessed/buildfile2
-rw-r--r--tests/cc/preprocessed/testscript14
7 files changed, 25 insertions, 24 deletions
diff --git a/build2/c/init.cxx b/build2/c/init.cxx
index 159c0b8..0ca9aae 100644
--- a/build2/c/init.cxx
+++ b/build2/c/init.cxx
@@ -176,7 +176,8 @@ namespace build2
v["cc.system"],
v["cc.module_name"],
v["cc.reprocess"],
- v["cc.preprocessed"],
+
+ v.insert<string> ("c.preprocessed"), // See cxx.preprocessed.
v.insert<string> ("c.std", variable_visibility::project),
diff --git a/build2/cc/common.hxx b/build2/cc/common.hxx
index 66c226c..05877ad 100644
--- a/build2/cc/common.hxx
+++ b/build2/cc/common.hxx
@@ -68,7 +68,8 @@ namespace build2
const variable& c_system; // cc.system
const variable& c_module_name; // cc.module_name
const variable& c_reprocess; // cc.reprocess
- const variable& c_preprocessed; // cc.preprocessed
+
+ const variable& x_preprocessed; // x.preprocessed
const variable& x_std;
diff --git a/build2/cc/compile.cxx b/build2/cc/compile.cxx
index 9f36e8b..1db827d 100644
--- a/build2/cc/compile.cxx
+++ b/build2/cc/compile.cxx
@@ -802,14 +802,14 @@ namespace build2
// This determines which of the following steps we perform and on
// what source (original or preprocessed).
//
- if (const string* v = cast_null<string> (t[c_preprocessed]))
+ if (const string* v = cast_null<string> (t[x_preprocessed]))
try
{
md.pp = to_preprocessed (*v);
}
catch (const invalid_argument& e)
{
- fail << "invalid " << c_preprocessed.name << " variable value "
+ fail << "invalid " << x_preprocessed.name << " variable value "
<< "for target " << t << ": " << e;
}
diff --git a/build2/cc/init.cxx b/build2/cc/init.cxx
index 8dceda7..733280a 100644
--- a/build2/cc/init.cxx
+++ b/build2/cc/init.cxx
@@ -88,17 +88,6 @@ namespace build2
v.insert<bool> ("config.cc.reprocess", true);
v.insert<bool> ("cc.reprocess");
- // Ability to indicate that source is already (partially) preprocessed.
- // Valid values are 'none' (not preprocessed), 'includes' (no #include
- // directives in source), 'modules' (as above plus no module declaration
- // depends on preprocessor, e.g., #ifdef, etc), and 'all' (the source is
- // fully preprocessed). Note that for 'all' the source can still contain
- // comments and line continuations. Note also that for some compilers
- // (e.g., VC) there is no way to signal that the source is already
- // preprocessed.
- //
- v.insert<string> ("cc.preprocessed");
-
return true;
}
diff --git a/build2/cxx/init.cxx b/build2/cxx/init.cxx
index 7f099cf..6c8cbad 100644
--- a/build2/cxx/init.cxx
+++ b/build2/cxx/init.cxx
@@ -355,7 +355,17 @@ namespace build2
v["cc.system"],
v["cc.module_name"],
v["cc.reprocess"],
- v["cc.preprocessed"],
+
+ // Ability to indicate that source is already (partially)
+ // preprocessed. Valid values are 'none' (not preprocessed),
+ // 'includes' (no #include directives in source), 'modules' (as above
+ // plus no module declaration depends on preprocessor, e.g., #ifdef,
+ // etc), and 'all' (the source is fully preprocessed). Note that for
+ // 'all' the source can still contain comments and line
+ // continuations. Note also that for some compilers (e.g., VC) there
+ // is no way to signal that the source is already preprocessed.
+ //
+ v.insert<string> ("cxx.preprocessed"),
v.insert<string> ("cxx.std", variable_visibility::project),
diff --git a/tests/cc/preprocessed/buildfile b/tests/cc/preprocessed/buildfile
index d812867..ac6bcdf 100644
--- a/tests/cc/preprocessed/buildfile
+++ b/tests/cc/preprocessed/buildfile
@@ -2,7 +2,7 @@
# copyright : Copyright (c) 2014-2017 Code Synthesis Ltd
# license : MIT; see accompanying LICENSE file
-# Test cc.preprocessed logic.
+# Test {c, cxx}.preprocessed logic.
#
./: test{testscript} $b
diff --git a/tests/cc/preprocessed/testscript b/tests/cc/preprocessed/testscript
index b429853..fb69e65 100644
--- a/tests/cc/preprocessed/testscript
+++ b/tests/cc/preprocessed/testscript
@@ -61,8 +61,8 @@ cat <<EOI >=test.cxx &!test.cxx;
int main () {return TEST_VALUE;}
EOI
$* --verbose 5 &test* <<EOI 2>&1 | $filter >>EOO
- cc.preprocessed = includes
- cc.poptions += -DTEST_VALUE=0
+ cxx.preprocessed = includes
+ cxx.poptions += -DTEST_VALUE=0
exe{test}: cxx{test}
EOI
modules test
@@ -76,8 +76,8 @@ cat <<EOI >=test.cxx &!test.cxx;
int main () {return TEST_VALUE;}
EOI
$* --verbose 5 &test* <<EOI 2>&1 | $filter >>EOO
- cc.preprocessed = modules
- cc.poptions += -DTEST_VALUE=0
+ cxx.preprocessed = modules
+ cxx.poptions += -DTEST_VALUE=0
exe{test}: cxx{test}
EOI
modules test
@@ -95,7 +95,7 @@ cat <<EOI >=test.cxx &!test.cxx;
#endif
EOI
$* &test* <<EOI 2>>EOE != 0
- cc.preprocessed = modules
+ cxx.preprocessed = modules
exe{test}: cxx{test}
EOI
test.cxx: error: modules support not enabled/available
@@ -116,8 +116,8 @@ cat <<EOI >=test.cxx &!test.cxx;
in () {}
EOI
$* --verbose &test* 5 <<EOI 2>&1 | $filter >>EOO
- cc.preprocessed = all
- cc.poptions += -Dmain=foo
+ cxx.preprocessed = all
+ cxx.poptions += -Dmain=foo
exe{test}: cxx{test}
EOI
modules test