Commit Graph
28539 Commits
Author SHA1 Message Date
Tim Hutt d32f9debc8 CPack: Add option to specify --component-plist for productbuild
When using the productbuild generator this lets you specify the value of
the `--component-plist` parameter when it runs pkgbuild for a component.

Fixes: #16638
2017-02-17 11:40:45 -05:00
Brad King 4caa0e7e75 Merge branch 'fix-CMP0017-path-case' into release 2017-02-17 11:11:11 -05:00
Brad King e2d78f7535 Windows: Fix inconsistent behavior on changes to case of path to cmake
In commit v3.4.0-rc1~333^2 (Merge branch 'upstream-kwsys' into
update-kwsys, 2015-07-15) we brought in upstream KWSys commit 86a24794
(SystemTools: Fix GetActualCaseForPath drive letter case handling,
2015-07-09).  This caused our path processing to convert drive letters
to upper-case and exposed an existing bug in our implementation of
CMP0017.

Policy CMP0017 is responsible for ensuring that modules included from a
builtin module only load other builtin modules and cannot be overridden
by a file in `CMAKE_MODULE_PATH`.  If there is a case difference in the
drive letter (or other path components) then the path to the including
module may not match our builtin module directory in a simple string
comparison.  This means builtin modules may not be recognized as such,
and they may not reliably include their builtin dependencies.  For
example, if a project provides a `Platform/Windows` module in
`CMAKE_MODULE_PATH` it can break inclusion of our builtin
`Platform/Windows` module, leading to strange behavior.

Fix this by comparing the path to the including module to our builtin
module directory using a function that is aware of case-insensitivity of
paths on Windows.

Fixes: #16648, #16622
2017-02-17 11:10:45 -05:00
Brad King 3287ba0254 Make CMAKE_ROOT independent of case of path used to invoke cmake
We compute the location of `CMAKE_ROOT` and other resources relative to
the location of our own executable.  On some platforms this path is
computed in a way that depends on the case of the path used to invoke
the executable.  Convert the result to the actual case preserved by the
filesystem on disk in order to make it consistent regardless of how the
executable is launched.

This approach generalizes the fix made by commit v3.8.0-rc1~71^2
(cmSystemTools: use the actual case for root detection, 2017-01-18).

Issue: #16648
2017-02-17 11:09:12 -05:00
Brad King f3e8a89a9b Merge topic 'install_name_policy'
1ba91291 Add policy CMP0068 separate install_name and RPATH settings on macOS
f7b9bf41 Apple: Add BUILD_WITH_INSTALL_NAME_DIR target property
4bff2d14 Apple: Refactor support for using INSTALL_NAME_DIR.
624fb9d7 Help: Format BUILD_WITH_INSTALL_RPATH documentation
2017-02-17 08:46:14 -05:00
Brad King 988c63527d Merge topic 'bison3'
761ea205 cmCommandArgumentParser: reformat grammar
1728b9c0 cmDependsJavaParser: Port to bison 3
fe75e140 cmCommandArgumentParser: Port to bison 3
2017-02-17 08:46:11 -05:00
Brad King 261b5785ad Merge topic 'capture-ctest_update-svn-failures'
f10b2f72 ctest_update: Capture failure of svn to load revisions and local mods
ef399f9b ctest_update: Refactor internal APIs to support more failure cases
2017-02-17 08:45:36 -05:00
Kitware Robot b6c9a851cb CMake Nightly Date Stamp 2017-02-17 00:01:02 -05:00
Daniel Pfeifer 761ea20518 cmCommandArgumentParser: reformat grammar 2017-02-16 21:34:27 +01:00
Daniel Pfeifer 1728b9c076 cmDependsJavaParser: Port to bison 3
Use %-directives to specify the scanner/lexer arguments and update the
yyerror signature.  Reduce the list of post-bison modifications needed.
2017-02-16 21:26:36 +01:00
Daniel Pfeifer fe75e140d6 cmCommandArgumentParser: Port to bison 3
Use %-directives to specify the scanner/lexer arguments and update the
yyerror signature.  Reduce the list of post-bison modifications needed.
2017-02-16 21:18:15 +01:00
Brad King f10b2f72f6 ctest_update: Capture failure of svn to load revisions and local mods
Issue: #16646
2017-02-16 13:19:26 -05:00
Brad King ef399f9bc6 ctest_update: Refactor internal APIs to support more failure cases
Thread failure of VC tool commands through more APIs so that we can
detect when they fail.  Defer updating of the individual VC tool usage
the future and just return true from them for now.
2017-02-16 13:19:26 -05:00
Brad King bb4730dc5a Merge topic 'vs-refactor-unknown-flags'
109b8a6f VS: Refactor AdditionalOptions generation
bd5ea699 cmVisualStudioGeneratorOptions: Add PrependInerhitedString method
3936a288 cmIDEOptions: Add SpaceAppendable flag table type
2017-02-16 13:15:52 -05:00
Brad King 160083b04d Merge topic 'vs-refactor-toolset-parsing'
f773933f VS: Refactor generator toolset parsing
d9e2b9a9 Tests: Split out RunCMake.GeneratorToolset Xcode checks
2017-02-16 13:15:49 -05:00
Brad King 60b5616af7 Merge topic 'command-cleanup-fix'
20ae76b1 cmDisallowedCommand: Forward final pass too
2017-02-16 13:15:44 -05:00
Brad King aa18d5befe Merge topic 'fix-ctest_update-svn'
51849bba ctest_update: Fix svn log and external loading
2017-02-16 13:15:42 -05:00
Brad King 5d5be3bd96 Merge topic 'autogen_fix_3.8'
28ee3784 Autogen: Fix headers not skipped
2017-02-16 13:15:38 -05:00
Kitware Robot b9229944cf CMake Nightly Date Stamp 2017-02-16 00:01:10 -05:00
Brad King 2c354f4ee4 Merge branch 'autogen_fix_3.8' into release 2017-02-15 15:16:17 -05:00
Sebastian Holtermann 28ee378405 Autogen: Fix headers not skipped 2017-02-15 21:00:39 +01:00
Brad King 93737d8012 Merge branch 'fix-ctest_update-svn' into release 2017-02-15 14:45:40 -05:00
Brad King 51849bbab8 ctest_update: Fix svn log and external loading
Since commit v3.7.0-rc1~132^2 (CTestSVN: Fix segfault when
CTEST_UPDATE_VERSION_ONLY is enabled, 2016-09-12) we do not properly
extract svn log or externals.  After updating we erase the information
that was loaded before updating and can no longer log the changes
between revisions to extract authors.

Fix this by only loading the repository information once, whether needed
by `NoteOldRevision`, `NoteNewRevision`, or both.

Fixes: #12630, #16646
2017-02-15 14:44:37 -05:00
Brad King 109b8a6fd3 VS: Refactor AdditionalOptions generation
Store unknown flags directly in a flag map entry for `AdditionalOptions`
instead of having a separate member for them.  This avoids duplicating
the output generation logic for the entry.
2017-02-15 10:41:36 -05:00
Brad King bd5ea6993c cmVisualStudioGeneratorOptions: Add PrependInerhitedString method 2017-02-15 10:37:35 -05:00
Brad King 3936a2886e cmIDEOptions: Add SpaceAppendable flag table type 2017-02-15 10:36:09 -05:00
Brad King 20ae76b1da cmDisallowedCommand: Forward final pass too
Refactoring in commit 7fb14775 (cmDisallowedCommand: extract policy
checking from cmCommand, 2016-12-26) introduced a wrapper for
disallowed commands that forwards to their original commands.
This broke the `export_library_dependencies` command that uses
a final pass.  Forward the final pass too to fix it.
2017-02-15 09:22:22 -05:00
Brad King 8ff8766232 Merge topic 'vs-refactor-libs'
8ba6dc36 VS: Place CMAKE_<LANG>_STANDARD_LIBRARIES after other libraries
1d04d2ce VS: Refactor parsing of CMAKE_<LANG>_STANDARD_LIBRARIES
2017-02-15 08:24:13 -05:00
Brad King 6a5e5a9268 Merge topic 'vs-dedup-tag'
f7e5c682 VS: De-duplicate PreprocessorDefinitions tag name
2017-02-15 08:24:10 -05:00
Brad King 75040fc103 Merge topic 'update-kwsys'
ff843dbd Merge branch 'upstream-KWSys' into update-kwsys
ced3396d KWSys 2017-02-14 (5c6f7836)
2017-02-15 08:24:00 -05:00
Brad King f773933f26 VS: Refactor generator toolset parsing
We parse `CMAKE_GENERATOR_TOOLSET` values of the forms:

* `toolset`
* `toolset,host=x64`
* `host=x64`

Generalize the parsing to support the forms:

* `toolset`
* `toolset[,key=value]*`
* `key=value[,key=value]*`

Disallow duplicate keys.  Require all but the first field to
be of `key=value` form.
2017-02-15 08:15:37 -05:00
Kitware Robot 8b155a6c09 CMake Nightly Date Stamp 2017-02-15 00:01:04 -05:00
Clinton Stimpson 1ba91291e3 Add policy CMP0068 separate install_name and RPATH settings on macOS
BUILD_WITH_INSTALL_RPATH, SKIP_BUILD_RPATH, CMAKE_SKIP_RPATH and
CMAKE_SKIP_INSTALL_RPATH no longer any effect on the install name
of a target on macOS.

Fixes: #16589
2017-02-14 14:28:07 -07:00
Clinton Stimpson f7b9bf41c5 Apple: Add BUILD_WITH_INSTALL_NAME_DIR target property
This new property controls whether to apply INSTALL_NAME_DIR to the
build tree.  It also overrides BUILD_WITH_INSTALL_RPATH.
2017-02-14 14:28:07 -07:00
Clinton Stimpson 4bff2d14fd Apple: Refactor support for using INSTALL_NAME_DIR. 2017-02-14 14:28:01 -07:00
Brad King f7e5c6820a VS: De-duplicate PreprocessorDefinitions tag name
Store the name in a variable for re-use.
2017-02-14 13:37:54 -05:00
Brad King 8ba6dc362d VS: Place CMAKE_<LANG>_STANDARD_LIBRARIES after other libraries
Make the VS generator consistent with the Ninja and Makefile generators
that place the libraries listed in this variable after other libraries
on the link command line.  These system libraries never depend on the
project libraries.
2017-02-14 11:21:08 -05:00
Brad King 1d04d2ce36 VS: Refactor parsing of CMAKE_<LANG>_STANDARD_LIBRARIES
Parse the value as a command line string just as the MS CRT would.
This makes the VS generator behavior consistent with how the string
is used by the Ninja and Makefile generators.
2017-02-14 11:15:08 -05:00
Brad King ff843dbd54 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2017-02-14 (5c6f7836)
2017-02-14 09:22:07 -05:00
Brad King dc58d9f06d Merge topic 'command-cleanup'
e0f39312 cmCommands: add commands directly to cmState
72dcbbe5 split Default commands into Scripting and Project
7fb14775 cmDisallowedCommand: extract policy checking from cmCommand
615e2a17 cmCommand: Don't prefix error message with command name
45b49099 cmCommand: make noncopyable
5396bc92 cmCommand: remove member Helper
2017-02-14 08:30:33 -05:00
Brad King 31e96ccca2 Merge topic 'execute_process-default-encoding'
07c3380a execute_process: Restore no-decoding default behavior
4168bc18 Help: Improve execute_process ENCODING option documentation
2017-02-14 08:30:27 -05:00
Kitware Robot 11e9605179 CMake Nightly Date Stamp 2017-02-14 00:01:05 -05:00
Daniel Pfeifer e0f3931226 cmCommands: add commands directly to cmState 2017-02-13 22:39:20 +01:00
Daniel Pfeifer 72dcbbe5c0 split Default commands into Scripting and Project 2017-02-13 22:32:55 +01:00
Daniel Pfeifer 7fb14775a3 cmDisallowedCommand: extract policy checking from cmCommand
Implement cmDisallowedCommand as a wrapper class for cmCommand.
2017-02-13 21:37:08 +01:00
Daniel Pfeifer 615e2a17e4 cmCommand: Don't prefix error message with command name
Instead, prefix the error message at the two places where the errors are
handled: cmMakefile and cmCTestHandlerCommand.
2017-02-13 20:49:20 +01:00
Daniel Pfeifer 45b49099d9 cmCommand: make noncopyable 2017-02-13 20:48:29 +01:00
Daniel Pfeifer 5396bc92d0 cmCommand: remove member Helper
The Helper member is used in a single derived class only.
Remove it from the base class to the only place where it is used.
2017-02-13 20:48:29 +01:00
Brad King f0e5954fce Merge branch 'execute_process-default-encoding' into release 2017-02-13 14:05:36 -05:00
Brad King 07c3380a6e execute_process: Restore no-decoding default behavior
Since commit v3.8.0-rc1~232^2 (execute_process: Add ENCODING option for
Windows child process output, 2016-11-23) we decode child process output
using the console's active codepage by default.  This differs from
previous versions of CMake and is therefore incompatible.  Changing this
default will require a policy, so for now revert the default behavior
back to performing no decoding.

Reported-by: Nils Gladitz <nilsgladitz@gmail.com>
2017-02-13 13:53:17 -05:00