summaryrefslogtreecommitdiff
path: root/ninja/src/includes_normalize.h
diff options
context:
space:
mode:
authorZeno Albisser <zeno.albisser@digia.com>2013-08-15 21:46:11 +0200
committerZeno Albisser <zeno.albisser@digia.com>2013-08-15 21:46:11 +0200
commit679147eead574d186ebf3069647b4c23e8ccace6 (patch)
treefc247a0ac8ff119f7c8550879ebb6d3dd8d1ff69 /ninja/src/includes_normalize.h
downloadqtwebengine-chromium-679147eead574d186ebf3069647b4c23e8ccace6.tar.gz
Initial import.
Diffstat (limited to 'ninja/src/includes_normalize.h')
-rw-r--r--ninja/src/includes_normalize.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/ninja/src/includes_normalize.h b/ninja/src/includes_normalize.h
new file mode 100644
index 00000000000..43527af9412
--- /dev/null
+++ b/ninja/src/includes_normalize.h
@@ -0,0 +1,35 @@
+// Copyright 2012 Google Inc. All Rights Reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include <string>
+#include <vector>
+using namespace std;
+
+struct StringPiece;
+
+/// Utility functions for normalizing include paths on Windows.
+/// TODO: this likely duplicates functionality of CanonicalizePath; refactor.
+struct IncludesNormalize {
+ // Internal utilities made available for testing, maybe useful otherwise.
+ static string Join(const vector<string>& list, char sep);
+ static vector<string> Split(const string& input, char sep);
+ static string ToLower(const string& s);
+ static string AbsPath(StringPiece s);
+ static string Relativize(StringPiece path, const string& start);
+
+ /// Normalize by fixing slashes style, fixing redundant .. and . and makes the
+ /// path relative to |relative_to|. Case is normalized to lowercase on
+ /// Windows too.
+ static string Normalize(const string& input, const char* relative_to);
+};