summaryrefslogtreecommitdiffstats
path: root/Source/cmGccDepfileReader.h
Commit message (Collapse)AuthorAgeFilesLines
* Makefiles: Normalize compiler-generated depfile pathsMarc Chevrier2021-07-021-2/+9
| | | | | | | | | | | | Even though Makefile generators pass source files and include directories by absolute path to the compiler, the compiler may generate depfile paths relative to the current working directory. For example, `ccache` with `CCACHE_BASEDIR` may transform paths this way. When reading a depfile, convert relative dependencies to absolute paths before placing them in `compiler_depend.make`, which is later evaluated in the top-level build directory. Fixes: #22364
* Makefile dependencies: ensure long paths are used on WindowsMarc Chevrier2021-01-091-4/+2
|
* cmGccDepfileReader: Add new function ensuring paths are validMarc Chevrier2020-12-231-0/+8
| | | | And cmTransformDepfile now rely on this new function.
* cmGccDepfileReader: Rework helper codeKyle Edwards2020-10-131-1/+3
| | | | | Fix some of the semantics of the depfile, add error handling, and refactor cmGccDepfileLexerHelper.
* Modernize: Use #pragma once in all header filesKitware Robot2020-09-031-4/+1
| | | | | | | | | | | | | | | | #pragma once is a widely supported compiler pragma, even though it is not part of the C++ standard. Many of the issues keeping #pragma once from being standardized (distributed filesystems, build farms, hard links, etc.) do not apply to CMake - it is easy to build CMake on a single machine. CMake also does not install any header files which can be consumed by other projects (though cmCPluginAPI.h has been deliberately omitted from this conversion in case anyone is still using it.) Finally, #pragma once has been required to build CMake since at least August 2017 (7f29bbe6 enabled server mode unconditionally, which had been using #pragma once since September 2016 (b13d3e0d)). The fact that we now require C++11 filters out old compilers, and it is unlikely that there is a compiler which supports C++11 but does not support #pragma once.
* Add a parser for GCC-style depfilesJoerg Bornemann2020-01-281-0/+10
Introduce the function cmReadGccDepfile that parses a GCC-style depfile and returns its content. The implementation uses a lexer that is modeled after the re2c implementation in Ninja. The sample files of the autotest have been created with gcc 8.3.0. This depfile reader is to be used by the Autogen facility to make use of the depfiles that are generated by Qt's meta object compiler.