aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShinichiro Hamaji <hamaji@google.com>2016-01-05 07:44:49 +0000
committerShinichiro Hamaji <hamaji@google.com>2016-01-05 07:44:49 +0000
commit70f882d297edc5156e8d709d81a19361de13fcd9 (patch)
treeb7c0bf7cc72e67f7c0c3a9dc662dd6821ea27f67
parent07c44e0ab88177cbc9192886d306903075b1d38a (diff)
downloadandroid_build_kati-70f882d297edc5156e8d709d81a19361de13fcd9.tar.gz
android_build_kati-70f882d297edc5156e8d709d81a19361de13fcd9.tar.bz2
android_build_kati-70f882d297edc5156e8d709d81a19361de13fcd9.zip
Revert "Merge remote-tracking branch 'aosp/upstream'"
This reverts commit 07c44e0ab88177cbc9192886d306903075b1d38a. Change-Id: Ie46c46cfb44857034036679ea1620ebb75df3104
-rw-r--r--command.cc10
-rw-r--r--eval.cc5
-rw-r--r--func.cc7
-rw-r--r--ninja.cc34
-rw-r--r--testcase/err_semicolon.mk1
-rw-r--r--testcase/err_semicolon2.mk2
-rw-r--r--testcase/err_semicolon3.mk3
-rw-r--r--testcase/err_semicolon4.mk1
-rw-r--r--testcase/expanded_nl.mk8
-rwxr-xr-xtestcase/ninja_regen.sh21
-rwxr-xr-xtestcase/ninja_regen_find_link.sh7
11 files changed, 22 insertions, 77 deletions
diff --git a/command.cc b/command.cc
index ac7fadd..99984c2 100644
--- a/command.cc
+++ b/command.cc
@@ -70,7 +70,6 @@ DECLARE_AUTO_VAR_CLASS(AutoLessVar);
DECLARE_AUTO_VAR_CLASS(AutoHatVar);
DECLARE_AUTO_VAR_CLASS(AutoPlusVar);
DECLARE_AUTO_VAR_CLASS(AutoStarVar);
-DECLARE_AUTO_VAR_CLASS(AutoNotImplementedVar);
class AutoSuffixDVar : public AutoVar {
public:
@@ -129,11 +128,6 @@ void AutoStarVar::Eval(Evaluator*, string* s) const {
pat.Stem(n->output.str()).AppendToString(s);
}
-void AutoNotImplementedVar::Eval(Evaluator* ev, string*) const {
- ev->Error(StringPrintf(
- "Automatic variable `$%s' isn't supported yet", sym_));
-}
-
void AutoSuffixDVar::Eval(Evaluator* ev, string* s) const {
string buf;
wrapped_->Eval(ev, &buf);
@@ -183,10 +177,6 @@ CommandEvaluator::CommandEvaluator(Evaluator* ev)
INSERT_AUTO_VAR(AutoHatVar, "^");
INSERT_AUTO_VAR(AutoPlusVar, "+");
INSERT_AUTO_VAR(AutoStarVar, "*");
- // TODO: Implement them.
- INSERT_AUTO_VAR(AutoNotImplementedVar, "%");
- INSERT_AUTO_VAR(AutoNotImplementedVar, "?");
- INSERT_AUTO_VAR(AutoNotImplementedVar, "|");
}
void CommandEvaluator::Eval(DepNode* n, vector<Command*>* commands) {
diff --git a/eval.cc b/eval.cc
index ae41567..3c0eae2 100644
--- a/eval.cc
+++ b/eval.cc
@@ -115,11 +115,8 @@ void Evaluator::EvalRule(const RuleStmt* stmt) {
const string&& expr = stmt->expr->Eval(this);
// See semicolon.mk.
- if (expr.find_first_not_of(" \t;") == string::npos) {
- if (stmt->term == ';')
- Error("*** missing rule before commands.");
+ if (expr.find_first_not_of(" \t\n;") == string::npos)
return;
- }
Rule* rule;
RuleVarAssignment rule_var;
diff --git a/func.cc b/func.cc
index 39af0e9..2e6eb99 100644
--- a/func.cc
+++ b/func.cc
@@ -547,9 +547,10 @@ void ShellFunc(const vector<Value*>& args, Evaluator* ev, string* s) {
string cmd = args[0]->Eval(ev);
if (ev->avoid_io() && !HasNoIoInShellScript(cmd)) {
if (ev->eval_depth() > 1) {
- ERROR("%s:%d: kati doesn't support passing results of $(shell) "
- "to other make constructs: %s",
- LOCF(ev->loc()), cmd.c_str());
+ // TODO: Make this an error.
+ WARN("%s:%d: kati doesn't support passing results of $(shell) "
+ "to other make constructs: %s",
+ LOCF(ev->loc()), cmd.c_str());
}
StripShellComment(&cmd);
*s += "$(";
diff --git a/ninja.cc b/ninja.cc
index c638267..15f938c 100644
--- a/ninja.cc
+++ b/ninja.cc
@@ -191,14 +191,6 @@ class NinjaGenerator {
GenerateStamp(orig_args);
}
- static string GetNinjaFilename() {
- return GetFilename("build%s.ninja");
- }
-
- static string GetShellScriptFilename() {
- return GetFilename("ninja%s.sh");
- }
-
static string GetStampFilename() {
return GetFilename(".kati_stamp%s");
}
@@ -562,7 +554,15 @@ class NinjaGenerator {
fprintf(fp_, "\n\n");
}
- static string GetEnvScriptFilename() {
+ string GetNinjaFilename() const {
+ return GetFilename("build%s.ninja");
+ }
+
+ string GetShellScriptFilename() const {
+ return GetFilename("ninja%s.sh");
+ }
+
+ string GetEnvScriptFilename() const {
return GetFilename("env%s.sh");
}
@@ -605,10 +605,7 @@ class NinjaGenerator {
EmitNode(node);
}
- unordered_set<Symbol> used_env_vars(Vars::used_env_vars());
- // PATH changes $(shell).
- used_env_vars.insert(Intern("PATH"));
- for (Symbol e : used_env_vars) {
+ for (Symbol e : Vars::used_env_vars()) {
StringPiece val(getenv(e.c_str()));
used_envs_.emplace(e.str(), val.as_string());
}
@@ -808,17 +805,6 @@ bool NeedsRegen(double start_time, const string& orig_args) {
} \
})
- if (!Exists(NinjaGenerator::GetNinjaFilename())) {
- fprintf(stderr, "%s is missing, regenerating...\n",
- NinjaGenerator::GetNinjaFilename().c_str());
- return true;
- }
- if (!Exists(NinjaGenerator::GetShellScriptFilename())) {
- fprintf(stderr, "%s is missing, regenerating...\n",
- NinjaGenerator::GetShellScriptFilename().c_str());
- return true;
- }
-
const string& stamp_filename = NinjaGenerator::GetStampFilename();
FILE* fp = fopen(stamp_filename.c_str(), "rb+");
if (!fp) {
diff --git a/testcase/err_semicolon.mk b/testcase/err_semicolon.mk
index f85826a..2e244ce 100644
--- a/testcase/err_semicolon.mk
+++ b/testcase/err_semicolon.mk
@@ -1,2 +1,3 @@
+# TODO(c): fix error message
# This is an error. See also semicolon.mk
;
diff --git a/testcase/err_semicolon2.mk b/testcase/err_semicolon2.mk
deleted file mode 100644
index 9b3bde1..0000000
--- a/testcase/err_semicolon2.mk
+++ /dev/null
@@ -1,2 +0,0 @@
-a;
-
diff --git a/testcase/err_semicolon3.mk b/testcase/err_semicolon3.mk
deleted file mode 100644
index ba3f501..0000000
--- a/testcase/err_semicolon3.mk
+++ /dev/null
@@ -1,3 +0,0 @@
-# TODO(go): Fix
-
- ;
diff --git a/testcase/err_semicolon4.mk b/testcase/err_semicolon4.mk
deleted file mode 100644
index 2dd21f2..0000000
--- a/testcase/err_semicolon4.mk
+++ /dev/null
@@ -1 +0,0 @@
-;
diff --git a/testcase/expanded_nl.mk b/testcase/expanded_nl.mk
deleted file mode 100644
index b5ff7c4..0000000
--- a/testcase/expanded_nl.mk
+++ /dev/null
@@ -1,8 +0,0 @@
-# TODO(go): Fix
-
-define nl
-
-
-endef
-
-$(nl)
diff --git a/testcase/ninja_regen.sh b/testcase/ninja_regen.sh
index 7f9b35e..1755eb2 100755
--- a/testcase/ninja_regen.sh
+++ b/testcase/ninja_regen.sh
@@ -20,7 +20,7 @@ log=/tmp/log
mk="$@"
sleep_if_necessary() {
- if [ x$(uname) != x"Linux" -o x"${TRAVIS}" != x"" ]; then
+ if [ x$(uname) != x"Linux" ]; then
sleep "$@"
fi
}
@@ -51,7 +51,7 @@ EOF
${mk} 2> ${log}
if [ -e ninja.sh ]; then
if ! grep regenerating ${log} > /dev/null; then
- echo 'Should be regenerated (Makefile)'
+ echo 'Should be regenerated'
fi
./ninja.sh
fi
@@ -60,7 +60,7 @@ export VAR=fuga
${mk} 2> ${log}
if [ -e ninja.sh ]; then
if ! grep regenerating ${log} > /dev/null; then
- echo 'Should be regenerated (env changed)'
+ echo 'Should be regenerated'
fi
./ninja.sh
fi
@@ -69,16 +69,7 @@ export VAR2=OK
${mk} 2> ${log}
if [ -e ninja.sh ]; then
if ! grep regenerating ${log} > /dev/null; then
- echo 'Should be regenerated (env added)'
- fi
- ./ninja.sh
-fi
-
-export PATH=/random_path:$PATH
-${mk} 2> ${log}
-if [ -e ninja.sh ]; then
- if ! grep regenerating ${log} > /dev/null; then
- echo 'Should be regenerated (PATH changed)'
+ echo 'Should be regenerated'
fi
./ninja.sh
fi
@@ -88,7 +79,7 @@ touch PASS.mk
${mk} 2> ${log}
if [ -e ninja.sh ]; then
if ! grep regenerating ${log} > /dev/null; then
- echo 'Should be regenerated (wildcard)'
+ echo 'Should be regenerated'
fi
./ninja.sh
fi
@@ -106,7 +97,7 @@ fi
${mk} other 2> ${log}
if [ -e ninja.sh ]; then
if ! grep regenerating ${log} >/dev/null; then
- echo 'Should be regenerated (argument)'
+ echo 'Should be regenerated'
fi
./ninja.sh other
fi
diff --git a/testcase/ninja_regen_find_link.sh b/testcase/ninja_regen_find_link.sh
index 657f8ae..94a6bb1 100755
--- a/testcase/ninja_regen_find_link.sh
+++ b/testcase/ninja_regen_find_link.sh
@@ -16,12 +16,6 @@
set -e
-sleep_if_necessary() {
- if [ x"${TRAVIS}" != x"" ]; then
- sleep "$@"
- fi
-}
-
mk="$@"
if echo "${mk}" | grep kati > /dev/null; then
mk="${mk} --use_find_emulator"
@@ -42,7 +36,6 @@ touch dir1/file1 dir2/file2
ln -s ../../dir1 linkdir/d/link
build
-sleep_if_necessary 1
touch dir1/file1_2
build