summaryrefslogtreecommitdiffstats
path: root/src/disk_interface.cc
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Fix stat when subdirectory is a file"Fredrik Medley2018-04-091-2/+1
| | | | | This reverts commit 6c864097ef11da366fb4070e6ab9f34d6a293766 and fixes the broken Appveyor builds on GitHub.
* Merge pull request #1348 from ngg/winunicodeNico Weber2018-04-051-1/+1
|\ | | | | Fix building on Windows in UNICODE mode
| * Fix building on Windows in UNICODE modeGergely Nagy2017-10-311-1/+1
| |
* | Merge pull request #1365 from moroten/fix-disk-interface-tests-64-bit-timestampNico Weber2018-04-051-1/+12
|\ \ | | | | | | Fix disk_interface_test.cc on Windows for 64-bit timestamp
| * | Fix stat when subdirectory is a fileFredrik Medley2017-12-191-1/+2
| | | | | | | | | | | | | | | | | | Make sure that stat on Windows, both with and without cache, returns "missing file" when running stat on notadir/foo where notadir is a file.
| * | Fix disk_interface_test.cc on Windows for 64-bit timestampFredrik Medley2017-12-191-0/+10
| |/ | | | | | | | | subdir/subsubdir/.. seems to get the time of subdir/subsubdir on NTFS (Windows 7), not the time of subdir.
* | Fix build on Solaris.alekseyshl2018-03-051-1/+2
|/ | | | Solaris also does not define struct stat's st_mtimensec field.
* Fix some Windows troubles.Elliott Sales de Andrade2017-09-161-1/+1
| | | | | Add parentheses so that constant does not overflow; include inttypes.h when using MinGW to get the proper macros.
* Update checks for new stat fields.Elliott Sales de Andrade2017-09-161-4/+6
| | | | | This uses the macros as defined by the man page, which, as noted in the comments, are defined correctly on as many libc's that I could check.
* Read file timestamps in higher resolution.Elliott Sales de Andrade2017-09-161-5/+14
| | | | | | | | This uses nanoseconds on POSIX (±~292 years) and 100-ns increments on Windows (±~29247 years). The fallbacks to different structure fields is the only thing grabbed from #337, with a slight modification in implementation.
* Work around mtime being set to 0 sometimesPatrick Griffis2017-06-181-0/+5
|
* Move stat metric to DiskInterfaceColin Cross2017-05-221-0/+2
| | | | | | | Stat is not always used through Node::Stat, it is often used directly through DiskInterface. THe next patches will cause it to be called even more often through DiskInterface, so move the metrics to DiskInterface.
* windows: replace deprecated GetVersionEx with recommended replacementNico Weber2016-11-081-12/+7
| | | | | | | | The recommended replacement VerifyVersionInfo should work with the same SDKs that GetVersionEx worked with (while the wrappers in VersionHelpers.h require a recent SDK). This patch should not change behavior, and it's not supposed to increase build requirements. If this makes things harder to build, please let me know.
* Expose more details in FileReader::ReadFile signatureBrad King2016-02-031-7/+7
| | | | | | Return a status so callers can distinguish a missing file from an empty file. This allows our VirtualFileSystem test infrastructure to report as missing any file for which it has no entry.
* Let Stat() have an err outparam instead of writing to stderr.Nico Weber2015-03-311-27/+23
| | | | | | | | | Also check for Stat() failure in a few more places. This way, ninja doesn't print two "ninja: error: " lines if stat() fails during a build. It also makes it easier to keep the stat tests quiet. Every caller of Stat() needs to explicitly log the error string if that's desired.
* Fix unknown pragma warningsDanny2014-09-281-0/+4
|
* add some parens to silence a gcc warningEvan Martin2014-08-041-1/+1
|
* try to fix stat()ing directories on windowsNico Weber2014-06-271-2/+0
|
* make Stat() a const methodNico Weber2014-06-191-1/+1
|
* use local definition of FindExInfoBasic for earlier sdksScott Graham2014-06-191-1/+4
|
* suppress warning on win8.1 sdkScott Graham2014-06-161-0/+3
|
* simplify statcache code moreNico Weber2014-06-161-15/+6
|
* only use FindExInfoBasic on win7+Nico Weber2014-06-161-2/+13
|
* s/hFind/find_handle/Nico Weber2014-06-151-5/+5
|
* add missing _WIN32 checksNico Weber2014-06-151-0/+2
|
* add some statcache testsNico Weber2014-06-151-5/+11
|
* Free cache memory once it's no longer used.Nico Weber2014-06-151-0/+16
| | | | | Doesn't slow down empty build times measurably, and saves some memory on non-empty builds.
* error checkingNico Weber2014-06-151-8/+11
|
* simplify more, move behind flagNico Weber2014-06-151-3/+1
|
* more minor cleanupsNico Weber2014-06-151-10/+6
|
* more minor cleanupsNico Weber2014-06-151-20/+7
|
* minor cleanupsNico Weber2014-06-151-56/+40
|
* Add a stat cache. Demo-quality, and disabled atm.Nico Weber2014-06-151-19/+100
|
* Merge pull request #699 from mostynb/avoid_useless_mkdir_failureNico Weber2014-04-071-0/+3
|\ | | | | don't Fail if trying to mkdir when the dir already exists
| * don't Fail if trying to mkdir when the dir already existsMostyn Bramley-Moore2014-01-071-0/+3
| |
* | Support both slashes on Windows when making output dirsScott Graham2014-04-031-5/+8
|/
* Minor style fixes, no behavior change.Nico Weber2013-08-231-1/+1
|
* make DiskInterfaceTest.StatBadPath quietEvan Martin2013-04-191-5/+11
| | | | | | Add a flag to temporarily suppress error output. Fixes issue #281.
* wrap some overlong linesEvan Martin2012-12-291-4/+8
|
* use DiskInterface to create the build directoryEvan Martin2012-08-071-0/+10
| | | | | | | | | | Fixes issue #392 (didn't handle creating nested build dirs right). Moves MakeDir out of util.h; all code should go through DiskInterface to simplify testing. Moves ownership of the DiskInterface into the client of the Builder, which also allows removing some code that reached inside the object as well as a minor leak.
* Put & operator with the type rather than the variable name.Thiago Farina2012-04-281-1/+1
| | | | Signed-off-by: Thiago Farina <tfarina@chromium.org>
* Fix resources leaksPierre Schweitzer2012-03-131-1/+2
|
* Treat paths of the form "existing-file/something" as non-existentPeter Collingbourne2012-03-071-1/+1
| | | | | | | | Some people like to construct phony target names by appending a "/something" suffix to an existing target "foo". But if "foo" is an existing file, stat will report ENOTDIR for this path, causing ninja to spew errors. Fix this by treating ENOTDIR in the same way as we do ENOENT -- as a non-existent path.
* Response filesunknown2012-02-091-0/+20
|
* fix search&replace error on struct namePeter Kuemmel2012-01-231-1/+1
|
* no error code about too long file names on WindowsPeter Kuemmel2012-01-231-0/+6
|
* windows: use _WIN32 define everywhereEvan Martin2012-01-221-4/+4
| | | | Rather than mixing use of WIN32 and _WIN32.
* drop some std:: prefixesEvan Martin2012-01-051-12/+11
|
* convert all time_t to a new TimeStamp typeEvan Martin2012-01-051-3/+3
|
* windows: make bootstrap.py/configure.py work with MSVCScott Graham2012-01-041-1/+1
|