- 15 Apr, 2016 9 commits
-
-
Brad King authored
Changes during post-3.3/pre-3.4 development refactored storage of most configure-time information, including variable bindings and function scopes. All scopes (even short-lived) were kept persistently for possible future debugging features, causing huge accumulated memory usage. This was mostly addressed by commit v3.4.1~4^2 (cmState: Avoid accumulating snapshot storage for short-lived scopes, 2015-11-24). Since then we still keep short-lived scopes when they are needed for a backtrace. This is because since commit v3.4.0-rc1~378^2 (cmListFileBacktrace: Implement in terms of cmState::Snapshot, 2015-05-29) backtraces have been lightweight objects that simply point into the snapshot tree. While the intention of this approach was to avoid duplicating the call stack file path strings, the cost turned out to be holding on to the entire call stack worth of scope snapshots, which is much worse. Furthermore, since commit v3.4.0-rc2~1^2 (cmIfCommand: Issue CMP0054 warning with appropriate context, 2015-10-20) all conditions used in `if()` commands hold a backtrace for use in diagnostic messages. Even though the backtrace is short-lived it still causes the scope snapshot to be kept. This means that code like function(foo) if(0) endif() endfunction() foreach(i RANGE 1000000) foo() endforeach() accumulates storage for the function call scope snapshots. Fix this by partially reverting commit v3.4.0-rc1~378^2 and saving the entire call stack during cmListFileBacktrace construction. This way we can avoid keeping short-lived scope snapshot storage in all cases.
-
Brad King authored
The bottom of the call stack is always a long-lived snapshot and can be saved for later use with cmOutputConverter.
-
Brad King authored
In commit v2.8.4~32^2~14 (Use cmake::IssueMessage for warnings, 2010-12-07) these warnings became formatted. It is more informative to give the full call stack with such warnings. Also it is easier to implement warnings with a full call stack because we do not have to construct a custom backtrace with only the top.
-
Brad King authored
This method was added by commit v3.4.0-rc1~424^2~6 (cmLocalGenerator: Add IssueMessage method, 2015-06-13) in order to reduce callers' dependency on cmMakefile. Currently the implementation of cmLocalGenerator::IssueMessage is just a copy of the post-configure code path in cmMakefile::IssueMessage. De-duplicate the implementation by simply calling the cmMakefile copy for now. This will simplify upcoming refactoring of backtraces. The dependency on cmMakefile can be removed by future work once that is done.
-
Brad King authored
-
Brad King authored
We unconditionally use information from the snapshot so it must be valid.
-
Brad King authored
-
Brad King authored
-
Brad King authored
-
- 13 Apr, 2016 6 commits
-
-
c54ed781 cmState: Rename CallStack snapshots to IncludeFile
-
87549054 FindMPI: Improve documentation formatting
-
5e62444c Add options to run clang-tidy with the compiler
-
Create a <LANG>_CLANG_TIDY target property (initialized by a CMAKE_<LANG>_CLANG_TIDY variable) to specify a clang-tidy command line to be run along with the compiler.
-
Kitware Robot authored
-
- 12 Apr, 2016 2 commits
-
-
Brad King authored
-
Kitware Robot authored
-
- 11 Apr, 2016 7 commits
-
-
Brad King authored
In the `try_compile` source file signature we propagate the caller's value of `CMAKE_<LANG>_FLAGS` into the test project. Extend this to propagate `CMAKE_<LANG>_FLAGS_<CONFIG>` too instead of always using the default value in the test project. This will be useful, for example, to allow the MSVC runtime library to be changed (e.g. `-MDd` => `-MTd`).
-
Brad King authored
Store the lookup of CMAKE_TRY_COMPILE_CONFIGURATION in a local variable so we can re-use it.
-
-
f5e79004 Tests: Work around filesystem timestamp bugs in RunCMake.BuildDepends
-
aff4a5fa cmConditionEvaluator: Use pre-allocated keywords in more places
-
Kitware Robot authored
-
- 10 Apr, 2016 1 commit
-
-
Kitware Robot authored
-
- 09 Apr, 2016 1 commit
-
-
Kitware Robot authored
-
- 08 Apr, 2016 9 commits
-
-
Brad King authored
The Custom-Symbolic-and-Byproduct case fails strangely on some filesystems used by our nightly testing. Somehow on the first build the `use-byproduct` output ends up with a timestamp older than `gen-byproduct-stamp` even though the build log clearly shows them build in the correct order (and must according to build system dependencies). Work around this problem by adding an extra delay before building `use-byproduct`. Tested-by:
Gerhard Grimm <gerhard.grimm@detec.com>
-
Brad King authored
Inspired-by:
Harry Mallon <Harry@codexdigital.com>
-
Brad King authored
-
e888af97 MSVC: Drop space in `/DNDEBUG` flag for consistency (#16052)
-
Brad King authored
The `VS*COMNTOOLS` environment variables specify locations of VS tools and are set during the VS installation. Use them in addition to the hard-coded default install locations.
-
Kitware Robot authored
-
- 07 Apr, 2016 5 commits
-
-
Brad King authored
We define `NDEBUG` without a space after the `-D` option for most compilers. Remove the space for MSVC (and Intel Fortran) for consistency. The MS compiler technically does not document that the `-D` argument may be separated from its value, though every version to date supports it.
-
-
Update the WriteBuild method to use a negative command line length limit to specify that we should force use of response files.
-
-
c5ff34cc CTestCoverageCollectGCOV: specify base dir for GLOB_RECURSE
-