summaryrefslogtreecommitdiff
path: root/Source/cmGeneratorExpressionEvaluationFile.cxx
Commit message (Collapse)AuthorAgeFilesLines
* cmGeneratorExpressionEvaluationFile: Require generator context.Stephen Kelly2015-08-011-19/+21
| | | | | Avoid storing a cmMakefile as a member, and evaluate in the context of a cmLocalGenerator instead.
* Genex: Store a backtrace, not a pointer to one.Stephen Kelly2015-07-171-1/+1
| | | | | | | | | | The storage of a pointer means that the ownership and lifetime are externally determined, which is harder to reason about. It also imposes API constraints, requiring APIs to return references to backtraces. This pointer storage was introduced in commit v3.1.0-rc1~425^2~3 (genex: remove the need for backtraces, 2014-05-23). As backtraces are now cheap to copy around, just do that instead.
* Port to cmMakefile::GetGlobalGenerator.Stephen Kelly2015-05-031-4/+2
|
* File(GENERATE): Process genex evaluation files for each language.Stephen Kelly2015-03-091-14/+37
|
* Port all cmOStringStream to std::ostringstream.Stephen Kelly2015-01-111-3/+3
| | | | All compilers hosting CMake support the std class.
* file(GENERATE): Re-run cmake when appropriate.Stephen Kelly2014-11-191-0/+2
| | | | | | | | | | Re-run if the input file changes or if the output file is removed. This only works with the Makefile generators currently. The limitation of the Ninja generator is tracked as issue #15256. The IDE generators will need larger refactoring as they currently rely on being able to determine the depends and output files at the start of generate-time, which is too early for the file(GENERATE) case.
* file(GENERATE): Evaluate early to allow generating source filesStephen Kelly2014-11-121-0/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | The evaluation files must be known before cmTargetTraceDependencies attempts to find them, but we must actually generate the files after cmTargetTraceDependencies, as that can add to target SOURCES. The limitation is that the generated output name must not depend on the SOURCES of a target if the generated file is used by that target. Mark the output files as GENERATED so that trace dependencies does not expect them to already exist in the filesystem. Move the invokation of ForceLinkerLanguage in the Generate logic to after the generated file names are known. ForceLinkerLanguage tries to determine the sources of a target (in order to determine an already-known language) and otherwise fails to get information about the generated file. Test that the output of file(GENERATE) can be used as a target source file and that accessing the target SOURCES in the name of the output file is an error. Accessing the TARGET_OBJECTS would be a similar error if it was legal to use that generator expression in this context. That is not currently possible and is a different error condition, so test the current error output as a reminder to change the expected output if that becomes possible in the future. Test that generated rule files resulting from cmTargetTraceDependencies appear in the SOURCES generated in the output file.
* file(GENERATE): Use permissions of input file if present.Stephen Kelly2014-11-041-2/+8
|
* genex: remove the need for backtracesBen Boeckel2014-06-051-1/+1
| | | | | Rather than making dummy backtraces and passing them around, just make backtraces optional.
* file(GENERATE): Only write the file if content is different.Stephen Kelly2014-04-301-12/+3
| | | | No policy is used to control this behavior for now.
* Simplify multiple config handling.Stephen Kelly2014-04-021-9/+6
| | | | | Use conventional pattern of not repeating the loop body for empty config.
* Remove some c_str() calls.Stephen Kelly2014-03-111-5/+5
| | | | | | Use the clang RemoveCStrCalls tool to automatically migrate the code. This was only run on linux, so does not have any positive or negative effect on other platforms.
* stringapi: Pass configuration names as stringsBen Boeckel2014-03-081-2/+2
|
* Use cmsys::[io]fstream instead of cmsys_ios::[io]fstream.Clinton Stimpson2014-01-071-2/+3
| | | | | Also use SystemTools::Fopen() instead of fopen(). This is to eventually support utf-8 filenames.
* file: Add GENERATE command to produce files at generate timeStephen Kelly2013-05-241-0/+151
The idea is to write to a temp file which contains generator expressions, and at generate time, evaluate the generator expressions, and write the result to a file. Because executables on Windows are limited in the length of command line it is possible to use, it is common to write command line arguments to a file instead and specify the file as a source of arguments. This new FILE(GENERATE) subcommand allows the use of generator expressions to create such files so that they can be used with add_custom_command for example.