summaryrefslogtreecommitdiffstats
path: root/src/includes_normalize-win32.cc
Commit message (Collapse)AuthorAgeFilesLines
* Verify GetFullPathName return valueFredrik Medley2018-11-081-11/+44
| | | | | | | GetFullPathName previously failed silently on long path names resulting in uninitialized path result. Signed-off-by: Fredrik Medley <fredrik.medley@autoliv.com>
* Fix building on Windows in UNICODE modeGergely Nagy2017-10-311-3/+3
|
* Reduce GetFullPathName callsTakuto Ikuta2017-05-091-2/+4
|
* Fix for reviewTakuto Ikuta2017-05-091-15/+12
|
* Make clparser fastertikuta2017-05-081-36/+91
| | | | | | | | | | This patch improves perfromance of clparser. * Reduce the number of calling GetFullPathName. * Use StringPiece for Split and Join. * Add EqualsCaseInsensitive for StringPiece not to generate new string instance. * Add some utility member in StringPiece class.
* Allow more path componentsDaniel Weber2016-08-221-1/+1
| | | | | | | - 60 instead of 30 path components - 64 instead of 32 backslashes in a path (windows only) Issue: 1161
* push error to caller and abort on failureScott Graham2015-06-091-10/+12
|
* Fix crash in attempting to canonicalize paths longer than _MAX_PATHScott Graham2015-06-081-1/+5
|
* fix order of args to CanonicalizePathScott Graham2014-11-091-1/+1
|
* remove CanonicalizePath overloads, test for toplevel behaviourScott Graham2014-11-091-1/+2
|
* CanonicalizePath handles \ on WindowsScott Graham2014-10-301-10/+10
|
* Stop `-t msvc -o` from lowercasing paths from /showIncludes output.Nico Weber2013-05-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | /showIncludes prints absolute paths. If a source file says `#include <WiNdOwS.h>`, /showIncludes will use that spelling in its output for the basename and use the on-disk cache for the directory names in the rest for its output. This makes the .d files created by `-t msvc -o` consistent with the .d files written by gcc and clang. Before this change, `-t msvc -o` would convert this output to lower case. This is a problem if a build step produces a header file with mixed case, such as "RuntimeFeatures.h". Due to the lowercasing, the .d file would contain "runtimefeatures.h", while the build step will create "RuntimeFeatures.h". Due to the case difference, ninja would not realize that regeneration of the .h file would require a rebuild of all source files having the header in the .d file. (On the next build, ninja would rebuild them since stat()ing is not case-sensitive on Windows.) One possible fix for this is to make sure that generators always write generated header files in lower case too, but on Mac gcc doesn't do lower-casing and .d files end up with the case-as-written, so generators would have to be different on Mac and Windows, which is undesirable. If case-insensitve path comparisons are useful, they should be done somewhere else (e.g. in CanonicalizePath()) where they affect both paths read from .d files and paths read from .ninja files. This should then be controlled by a top-level variable. This patch changes behavior, but it only has an effect on generated header files, which aren't common, and it only affects -t msvc, which is still marked as experimental. (cmake doesn't use it yet.) (If a file has both `#include <windows.h>` and `<Windows.h>`, this will now take 2 stat() calls instead of just one, but that should have a negligible cost.)
* scoping workaround for gcc on WindowsEvan Martin2012-09-071-1/+1
| | | | From https://github.com/martine/ninja/issues/410.
* includes_normalize: also lowercase cross-drive includesEvan Martin2012-08-121-6/+5
| | | | It seems to me inconsistent to normalize one but not the other.
* add functions for normalizing win32 include pathsScott Graham2012-08-121-0/+116
(Note from Evan: this is landing Scott's code more or less verbatim without a lot of analysis; it could maybe be simplified and reduced, but it's only intended to be used in the MSVC helper so it's fine to be experimental.)