Commit Graph

31526 Commits

Author SHA1 Message Date
Brad King 0f6a8f7a46 Merge topic 'cmake-gui-osx-install-mkdir'
32d569af cmake-gui: Teach --install make destination directory (#16064)
2016-04-18 08:57:27 -04:00
Brad King 21fb50d512 Merge topic 'FindMPI-intel-compiler'
2a99fae1 FindMPI: Recognize `.lib` file names for specification of link libraries
c4417b09 FindMPI: Recognize /LIBPATH for specification of linker paths.
2016-04-18 08:57:25 -04:00
Brad King 942e9d5019 Merge topic 'FindGit-update-github-location'
19e8752b FindGit: Add new 'GitHub for Windows' user directory
2016-04-18 08:57:23 -04:00
Alex Neundorf 7b3a1069bf Help: Document Eclipse-generator related variables (#15827) 2016-04-18 08:56:19 -04:00
Kitware Robot 49c4d665dc CMake Nightly Date Stamp 2016-04-18 00:01:05 -04:00
Kitware Robot 6f139d31ca CMake Nightly Date Stamp 2016-04-17 00:01:05 -04:00
Kitware Robot 94179ecf22 CMake Nightly Date Stamp 2016-04-16 00:01:08 -04:00
Frank Park 19e8752b86 FindGit: Add new 'GitHub for Windows' user directory
GitHub for Windows now installs in

    $ENV{LOCALAPPDATA}/Github/PortableGit*/cmd

instead of

    $ENV{LOCALAPPDATA}/Github/PortableGit*/bin

Search the new location first but keep the old one in case people have
older versions installed.
2016-04-15 14:59:06 -04:00
Brad King cc684857c2 cmPolicies.cxx: Add missing include <ctype.h> for isdigit (#16066) 2016-04-15 13:46:15 -04:00
Dominic Meiser 2a99fae1cc FindMPI: Recognize `.lib` file names for specification of link libraries
The Intel MPI compiler wrappers link against static MPI libraries simply
by listing the libraries (no `-l`).
2016-04-15 13:42:05 -04:00
Dominic Meiser c4417b0927 FindMPI: Recognize /LIBPATH for specification of linker paths.
The Intel MPI wrappers use this form of -L to specify library locations.
2016-04-15 13:42:05 -04:00
Stafen Teleman 5dc6cfd6ea Solaris: Add a CMAKE_HOST_SOLARIS variable (#16061) 2016-04-15 13:25:45 -04:00
Brad King 32d569af9a cmake-gui: Teach --install make destination directory (#16064)
Ensure the destination directory exists before creating symlinks in it.
2016-04-15 13:23:41 -04:00
Brad King 52dddefcbb Merge branch 'release' 2016-04-15 12:51:56 -04:00
Brad King 1f6bd8a93f cmState: Avoid accumulating snapshot storage for backtraces
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.
2016-04-15 10:31:39 -04:00
Brad King 18b6676bff cmState: Add Snapshot method to get bottom of call stack
The bottom of the call stack is always a long-lived snapshot and can be
saved for later use with cmOutputConverter.
2016-04-15 10:31:39 -04:00
Brad King 2faa8b3620 Add call stack to unused/uninitialized variable warnings
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.
2016-04-15 10:13:12 -04:00
Brad King da07c506b9 cmLocalGenerator: Simplify IssueMessage implementation
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.
2016-04-15 10:13:08 -04:00
Brad King 80bcbe2d85 CMake 3.5.2 2016-04-15 08:48:23 -04:00
Brad King cc7aed77a8 cmLocalGenerator: Use own IssueMessage method 2016-04-15 08:34:05 -04:00
Brad King c50285dee6 cmOutputConverter: Assert construction with a valid snapshot
We unconditionally use information from the snapshot so it must be
valid.
2016-04-15 08:34:05 -04:00
Brad King b6ed71b17c cmMakefile: Move cmMakefileCall to .cxx file 2016-04-15 08:32:15 -04:00
Brad King a559f0f6b0 cmWhileCommand: Simplify context construction 2016-04-15 08:31:59 -04:00
Brad King 7503deb2c5 cmIfCommand: Simplify execution context construction 2016-04-15 08:29:42 -04:00
Kitware Robot c42aa3ed8b CMake Nightly Date Stamp 2016-04-15 00:01:05 -04:00
Kitware Robot 003d4e5752 CMake Nightly Date Stamp 2016-04-14 00:01:06 -04:00
Brad King f5da19edd0 Merge topic 'cmState-rename-include-snapshot'
c54ed781 cmState: Rename CallStack snapshots to IncludeFile
2016-04-13 09:58:21 -04:00
Brad King eae4cee0b5 Merge topic 'try_compile-config-flags'
bd581a37 try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes (#16054)
82ef90fc cmCoreTryCompile: Factor out config lookup for re-use
2016-04-13 09:58:18 -04:00
Brad King 6f2cc120f0 Merge topic 'FindMPI-docs'
87549054 FindMPI: Improve documentation formatting
2016-04-13 09:58:14 -04:00
Brad King 1dc78fecc7 Merge topic 'clang-tidy'
5e62444c Add options to run clang-tidy with the compiler
2016-04-13 09:58:08 -04:00
Daniel Pfeifer 5e62444cff 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.
2016-04-13 09:56:10 -04:00
Kitware Robot d0b2ec3e71 CMake Nightly Date Stamp 2016-04-13 00:01:05 -04:00
Brad King c54ed7813f cmState: Rename CallStack snapshots to IncludeFile 2016-04-12 16:08:24 -04:00
Kitware Robot a2ce4e81d5 CMake Nightly Date Stamp 2016-04-12 00:01:07 -04:00
Brad King bd581a3733 try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes (#16054)
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`).
2016-04-11 11:25:08 -04:00
Brad King 82ef90fcfc cmCoreTryCompile: Factor out config lookup for re-use
Store the lookup of CMAKE_TRY_COMPILE_CONFIGURATION in a local variable
so we can re-use it.
2016-04-11 10:39:04 -04:00
Christoph Grüninger 875490545d FindMPI: Improve documentation formatting 2016-04-11 09:43:22 -04:00
Brad King 9ac11bc25d Merge topic 'test-RunCMake.BuildDepends-filesystem-workaround'
f5e79004 Tests: Work around filesystem timestamp bugs in RunCMake.BuildDepends
2016-04-11 09:39:00 -04:00
Brad King 3a556f005d Merge topic 'preallocate-condition-keywords'
aff4a5fa cmConditionEvaluator: Use pre-allocated keywords in more places
2016-04-11 09:38:58 -04:00
Brad King 335b5430bf Merge topic 'GetPrerequisites-more-dumpbin-paths'
a1c40291 GetPrerequisites: Look for VS tools using environment variables
c79f88b0 GetPrerequisites: add path of VS 10,11,12,14 in order to find dumpbin.exe
2016-04-11 09:38:55 -04:00
Kitware Robot 7c3fe7e45f CMake Nightly Date Stamp 2016-04-11 00:01:05 -04:00
Kitware Robot 0547e4d509 CMake Nightly Date Stamp 2016-04-10 00:01:04 -04:00
Kitware Robot e2e2461a0d CMake Nightly Date Stamp 2016-04-09 00:01:15 -04:00
Brad King f5e79004e2 Tests: Work around filesystem timestamp bugs in RunCMake.BuildDepends
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>
2016-04-08 10:51:01 -04:00
Brad King aff4a5fab5 cmConditionEvaluator: Use pre-allocated keywords in more places
Inspired-by: Harry Mallon <Harry@codexdigital.com>
2016-04-08 10:45:43 -04:00
Brad King 2b58cf8e86 Merge branch 'release' 2016-04-08 09:05:33 -04:00
Brad King f6c5958047 Merge topic 'ninja-restat-custom-command-byproducts'
add7abc8 Ninja: Restat custom command byproducts even with a SYMBOLIC output (#16049)
ff805113 Ninja: Fix detection of custom command symbolic outputs
2016-04-08 09:03:59 -04:00
Brad King 1baf2cbd3d Merge topic 'drop-DNDEBUG-space'
e888af97 MSVC: Drop space in `/DNDEBUG` flag for consistency (#16052)
2016-04-08 09:01:53 -04:00
Brad King 2369f19a7a Merge topic 'ninja-object-rsp'
7731e44f Ninja: Honor CMAKE_NINJA_FORCE_RESPONSE_FILE for compile rules
f9644a2d cmGlobalNinjaGenerator: Clarify logic for forcing use of response files
24c9106b cmNinjaTargetGenerator: Factor out helper for forced response file check
2016-04-08 09:01:50 -04:00
Brad King a1c402910c GetPrerequisites: Look for VS tools using environment variables
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.
2016-04-08 08:48:20 -04:00