summaryrefslogtreecommitdiffstats
path: root/src/disk_interface.cc
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* windows: handle ERROR_PATH_NOT_FOUNDEvan Martin2011-12-231-1/+2
| | | | From Frances <frances.buontempo@gmail.com>.
* windows: use GetFileAttributesEx instead of statEvan Martin2011-12-201-6/+27
| | | | | | | | | From a Hacker News comment: "Recent finding, that sped up our systems from 15->3sec on 300,000+ files filestamp check was to move from _stat to GetFileAttributesEx." I do recall reading that calls to stat() on Windows were one of the potential reasons Subversion is so slow on Windows...
* remove weird accidental double-returnEvan Martin2011-12-201-1/+0
| | | | Surprised this isn't a compiler warning.
* Move RealDiskInterface class to disk_interface.h.Thiago Farina2011-08-251-0/+59
| | | | | | This is a TODO in src/ninja_jumble.cc Signed-off-by: Thiago Farina <tfarina@chromium.org>
* Factor out DiskInterface class into its own source/header files.Thiago Farina2011-08-101-0/+51
This is a TODO in src/ninja_jumble.cc Signed-off-by: Thiago Farina <tfarina@chromium.org>