Commit Graph

21236 Commits

Author SHA1 Message Date
Sebastian Holtermann 3c3b37b0bb QtAutogen: Use std:: instead of ::std:: 2016-08-10 13:21:33 -04:00
Sebastian Holtermann 0a5dd3c700 cmFilePathUuid: Add class to generate deterministic unique file names
The class generates a semi-unique (checksum based) pathless file name
from a full source file path.
2016-08-10 13:21:33 -04:00
Sebastian Holtermann 3a5f609cbb cmCryptoHash: New ByteHash methods that return a byte vector 2016-08-10 13:21:32 -04:00
Sebastian Holtermann f582dba666 cmCryptoHash: Return byte vector from internal Finalize method
Some callers may want the raw byte vector instead of the hex character
string.  Convert the internal implementation to use this so that we
can later add public APIs to get it.
2016-08-10 13:21:32 -04:00
Sebastian Holtermann 74f0d4abcd cmCryptoHash: New byte hash to string function 2016-08-10 13:09:55 -04:00
Sebastian Holtermann 94c29976d0 cmCryptoHash: Documentation comments 2016-08-10 13:09:54 -04:00
Brad King 50ada755e3 Merge topic '15687-xcode-support-system-include'
93ac2a78 Xcode: Obey SYSTEM keyword for includes (#15687)
2016-08-10 11:16:01 -04:00
Brad King e01c576338 Merge topic 'ninja-directory-targets'
02789894 Ninja: Add `$subdir/{test,install,package}` targets
a88c99f1 Ninja: Simplify computation of GLOBAL_TARGET outputs
2016-08-10 11:15:55 -04:00
Brad King f4cec30b53 Merge topic 'install-export-staging-dir'
c7a319ab install(EXPORT): Fix support for mid-length install destinations on Windows
2016-08-10 11:15:50 -04:00
Brad King 4887640b7a Merge topic 'add-extra-boolean-comparisons'
02d177c9 Add additional <= and >= comparison operators
2016-08-10 11:15:47 -04:00
Kitware Robot 5aabfec930 CMake Nightly Date Stamp 2016-08-10 00:01:04 -04:00
Brad King 0278989405 Ninja: Add `$subdir/{test,install,package}` targets
With the Makefile generator one can use `cd $subdir; make install` to build and
install targets associated with a given subdirectory.  This is not possible to
do with the Ninja generator since there is only one `build.ninja` file at the
top of the build tree.  However, we can approximate it by allowing one to run
`ninja $subdir/install` at the top of the tree to build the targets in the
corresponding subdirectory and install them.

This also makes sense for `test`, `package`, and other GLOBAL_TARGET targets.
It was already done for `all` by commit v3.6.0-rc1~240^2~2 (Ninja: Add
`$subdir/all` targets, 2016-03-11).
2016-08-09 15:15:24 -04:00
Brad King a88c99f1bc Ninja: Simplify computation of GLOBAL_TARGET outputs
In cmGlobalNinjaGenerator::AppendTargetOutputs we previously
handled GLOBAL_TARGET outputs specially in order to avoid adding
directory components to the output.  However, this is not necessary
because cmNinjaTargetGenerator::New already filters out copies of
these targets that are not at the top level.  Instead we can simply
follow the same output computation code path as UTILITY targets.
2016-08-09 14:36:04 -04:00
Gregor Jasny 93ac2a78d5 Xcode: Obey SYSTEM keyword for includes (#15687)
CMake used to put all header search paths into HEADER_SEARCH_PATHS
attribute. Unfortunately this attribute does not support to declare
a search path as a system include.

As a hack one could add a -isystem /path to the cflags but then include
ordering is not deterministic. A better approach was chosen with this
patch by not filling HEADER_SEARCH_PATHS at all and to populate
the C, C++, and Fortran flags directly. The include paths used by
Xcode should be now identical to the ones used by Unix Makefiles and
Ninja generator.
2016-08-09 20:30:07 +02:00
Brad King c7a319ab05 install(EXPORT): Fix support for mid-length install destinations on Windows
The implementation of `install(EXPORT)` generates files into a staging
directory for later installation.  We use the full install destination
in the path to the staging directory to avoid collisions.  In order to
avoid exceeding maximum path lengths (especially on Windows) we compute
a hash of the install destination when it is too long.  Fix this logic
to account for the length of the file name(s) when deciding whether to
switch to the hashed name.

Reported-by: Alan W. Irwin <irwin@beluga.phys.uvic.ca>
2016-08-09 10:09:52 -04:00
Chuck Atkins 02d177c9cc Add additional <= and >= comparison operators
This adds the LESS_EQUAL, GREATER_EQUAL, and associated STR and VERSION
equivalents to use the combined <= and >= functionality.
2016-08-09 09:30:34 -04:00
Brad King a8c819659b Merge topic 'ninja-full-path'
955c2a63 Ninja: Use full path for all source files
2016-08-09 09:20:15 -04:00
Brad King 892ffe4ebd Merge topic 'wix-custom-install-dir'
17bbf6af CPackWIX: Implement new CPACK_WIX_SKIP_PROGRAM_FOLDER feature
2016-08-09 09:20:13 -04:00
Kitware Robot 982b4cd602 CMake Nightly Date Stamp 2016-08-09 00:01:04 -04:00
Chaoren Lin 955c2a630a Ninja: Use full path for all source files
This is consistent with the behavior of the Makefile generators.
Relative paths are difficult for an IDE to parse the output of a build
error.
2016-08-08 13:55:29 -04:00
Brad King 702a548992 Merge topic 'vs14-debug-enum-older-toolsets'
038e3a4f cmVisualStudio10TargetGenerator: Run clang-format
2016-08-08 10:02:03 -04:00
Michael Stürmer 17bbf6af1e CPackWIX: Implement new CPACK_WIX_SKIP_PROGRAM_FOLDER feature
The new variable allows setting of a custom absolute installation prefix
outside of the ProgramFiles folders.
2016-08-08 13:42:23 +02:00
Kitware Robot 5a62e0c172 CMake Nightly Date Stamp 2016-08-08 00:01:04 -04:00
Kitware Robot 5a8b67b3de CMake Nightly Date Stamp 2016-08-07 00:01:03 -04:00
Kitware Robot 6da5fb8379 CMake Nightly Date Stamp 2016-08-06 00:01:04 -04:00
Brad King 054275c6d6 Merge branch 'vs14-debug-enum-older-toolsets' into release 2016-08-05 15:21:48 -04:00
Brad King 926886a41c VS: Fix VS 2015 .vcxproj debug setting for Windows7.1SDK toolset
Closes: #16213
2016-08-05 15:21:23 -04:00
Brad King 038e3a4f71 cmVisualStudio10TargetGenerator: Run clang-format 2016-08-05 15:20:20 -04:00
Brad King 93b705a396 Merge topic 'ninja-clang-rsp-format'
e555480c Ninja: Fix response file format for GNU-like Clang on Windows
2016-08-05 08:50:29 -04:00
Brad King baa6032169 Merge topic 'update-kwsys'
8abca140 Merge branch 'upstream-KWSys' into update-kwsys
6c0820a8 KWSys 2016-08-03 (6d23dd7e)
2016-08-05 08:50:25 -04:00
Brad King b06118f8f1 Merge topic 'vs14-debug-enum-older-toolsets'
4ada475e VS: Fix VS 2015 .vcxproj debug setting for Windows7.1SDK toolset
2016-08-05 08:50:20 -04:00
Kitware Robot 9bc62024ac CMake Nightly Date Stamp 2016-08-05 00:01:09 -04:00
Brad King 4ada475ef5 VS: Fix VS 2015 .vcxproj debug setting for Windows7.1SDK toolset
Closes: #16213
2016-08-04 11:40:09 -04:00
Brad King 8abca14034 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-08-03 (6d23dd7e)
2016-08-04 10:11:07 -04:00
Brad King 2df3719d2c Merge topic 'extra-generator-factories'
cd52a225 Report more information about extra generators in generator factories
a354f60c Refactor extra generator registration to use factories
2016-08-04 09:56:47 -04:00
Brad King ac7c12eced Merge topic 'update-kwsys'
b602cb85 Merge branch 'upstream-KWSys' into update-kwsys
3e6ec47c KWSys 2016-08-02 (3f55579d)
2016-08-04 09:56:44 -04:00
Brad King e555480c60 Ninja: Fix response file format for GNU-like Clang on Windows
The `CMAKE_<LANG>_SIMULATE_ID` variables are not set to "GNU" for a
GNU-like Clang compiler on Windows.  They are only set to "MSVC" for a
MSVC-like Clang.  Revise our response file format selection accordingly.

Reported-by: Chaoren Lin <chaorenl@google.com>
2016-08-04 09:44:56 -04:00
Kitware Robot 2c0e87fff3 CMake Nightly Date Stamp 2016-08-04 00:01:06 -04:00
Brad King b602cb85c9 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-08-02 (3f55579d)
2016-08-03 10:10:28 -04:00
Tobias Hunger cd52a225d2 Report more information about extra generators in generator factories 2016-08-03 09:44:40 -04:00
Tobias Hunger a354f60ce0 Refactor extra generator registration to use factories
This will allow additional information about the availability
and capabilities of extra generators to be queried without
actually creating them.

Instead of a static NewFactory() method like the main generator
factories have, use a static GetFactory() method to get a pointer to a
statically allocated extra generator factory.  This simplifies memory
management.
2016-08-03 09:43:00 -04:00
Brad King 382c4fca6b Merge topic 'ccmake-vim-navigation'
e34e9c27 ccmake: Add VIM-like bindings for navigation
9a1b6c60 ccmake: Revise documentation for [d]
31b6cf41 ccmake: Fix typo in help (it's -> its)
2016-08-03 09:20:59 -04:00
Brad King ec807f6edf Merge topic 'port-to-sco'
56539d89 SCO_SV: Enable so filename versioning
16a3a735 cmELF: Port to SCO OpenServer 5.0.7/3.2
2016-08-03 09:20:47 -04:00
Brad King f8792c12b9 Merge topic 'update-kwsys'
35995fa6 Merge branch 'upstream-KWSys' into update-kwsys
6bc3073e KWSys 2016-08-01 (560bcdbb)
2016-08-03 09:20:41 -04:00
Brad King 7b65e49529 Merge topic 'wix-root-description'
e29bfbf2 CPackWIX: Support custom title and description for the root feature
2016-08-03 09:20:38 -04:00
Kitware Robot 33fe4751e8 CMake Nightly Date Stamp 2016-08-03 00:01:04 -04:00
Paul Seyfert e34e9c2705 ccmake: Add VIM-like bindings for navigation
* scroll with j/k
* toggle bool with space, enter insert mode with i
* bindings not shown at the bottom of the screen, but given in help
2016-08-02 14:53:15 -04:00
Paul Seyfert 9a1b6c6037 ccmake: Revise documentation for [d]
* list it at the bottom of the screen
* different place in help message
2016-08-02 14:53:15 -04:00
Paul Seyfert 31b6cf41c5 ccmake: Fix typo in help (it's -> its) 2016-08-02 14:53:06 -04:00
Patrick Welche 16a3a73508 cmELF: Port to SCO OpenServer 5.0.7/3.2
Take changes used by pkgsrc [1]:

* SCO OpenServer 5.0.7/3.2 does not support 64-bit ELF.

[1] http://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/cmake/patches/
2016-08-02 10:04:31 -04:00
Brad King 35995fa6b5 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-08-01 (560bcdbb)
2016-08-02 09:21:52 -04:00
Michael Stürmer e29bfbf272 CPackWIX: Support custom title and description for the root feature
These can now be specified through the WIX generator specific
CPack variables CPACK_WIX_ROOT_FEATURE_TITLE and
CPACK_WIX_ROOT_FEATURE_DESCRIPTION.
2016-08-02 14:05:08 +02:00
Kitware Robot 55d9bfa9dd CMake Nightly Date Stamp 2016-08-02 00:01:04 -04:00
Brad King 5ec03c93fc Merge topic 'wix-disabled-components'
ad453f05 CPackWIX: Support CPACK_COMPONENT_<compName>_DISABLED
6f108f84 CPackComponent: Document the *_HIDDEN and *_DISABLED variables
2016-08-01 14:59:53 -04:00
Brad King bfac78d074 Merge topic 'more-virtual-override'
624b7215 Source/CPack: Add CM_OVERRIDE on MacOS cmCPackGenerator overrides
2016-08-01 14:59:47 -04:00
Brad King 2711c35a8d Merge topic 'app-framework-bundle-extension'
f951d0ad Add tests for BUNDLE_EXTENSION
c63380b1 Update documentation about bundle extensions
134d5c1f Honor BUNDLE_EXTENSION also for Frameworks (#14742)
2b909c08 Honor BUNDLE_EXTENSION also for App Bundles (#16148)
2016-08-01 14:59:44 -04:00
Brad King 8427b8e11c Merge topic 'aliased-target-properties'
ea647533 Do not report ALIASED_TARGET as always set (#15783)
2016-08-01 14:59:41 -04:00
Kitware Robot 8b9cd61337 CMake Nightly Date Stamp 2016-08-01 00:01:03 -04:00
Kitware Robot 963c4e4b90 CMake Nightly Date Stamp 2016-07-31 00:01:03 -04:00
Kitware Robot 99f5a32c7a CMake Nightly Date Stamp 2016-07-30 00:01:02 -04:00
Kitware Robot db713223a8 CMake Nightly Date Stamp 2016-07-29 00:01:03 -04:00
Kitware Robot 09a86b392e CMake Nightly Date Stamp 2016-07-28 00:01:04 -04:00
Kitware Robot 73c618be70 CMake Nightly Date Stamp 2016-07-27 00:01:03 -04:00
Kitware Robot 8f884f2146 CMake Nightly Date Stamp 2016-07-26 00:01:02 -04:00
Kitware Robot 3d57541d6d CMake Nightly Date Stamp 2016-07-25 00:01:07 -04:00
Kitware Robot ffc7c24b2e CMake Nightly Date Stamp 2016-07-24 00:01:03 -04:00
Kitware Robot d615d20a63 CMake Nightly Date Stamp 2016-07-23 00:01:04 -04:00
Brad King 624b72159b Source/CPack: Add CM_OVERRIDE on MacOS cmCPackGenerator overrides 2016-07-22 10:42:37 -04:00
Brad King f59513140b CMake 3.6.1 2016-07-22 09:26:11 -04:00
Brad King 1fc340f0d4 Merge topic 'windows-export-all-fix-objlib'
13a6ff31 VS: Fix WINDOWS_EXPORT_ALL_SYMBOLS for object libraries
2016-07-22 09:17:48 -04:00
Brad King 4c61e40cc5 Merge topic 'vs-default-v100'
059c230d VS: Explicitly default to v100 toolset in Visual Studio 2010
2016-07-22 09:17:36 -04:00
Brad King 19ccd35473 Merge topic 'revert-autogen-subdirs'
5e55d87b Autogen: Revert changes to generate moc/rcc in subdirectories
2016-07-22 09:17:28 -04:00
Michael Stürmer ad453f0502 CPackWIX: Support CPACK_COMPONENT_<compName>_DISABLED
Reviewed-by: Nils Gladitz <nilsgladitz@gmail.com>
2016-07-22 08:49:29 +02:00
Gregor Jasny 134d5c1f7c Honor BUNDLE_EXTENSION also for Frameworks (#14742) 2016-07-21 23:16:50 -07:00
Gregor Jasny 2b909c08f5 Honor BUNDLE_EXTENSION also for App Bundles (#16148) 2016-07-21 23:16:50 -07:00
Kitware Robot 7bfbcc75a3 CMake Nightly Date Stamp 2016-07-22 00:01:03 -04:00
Brad King dbc0ec1648 Merge topic 'makefile-response-files'
c7a7c655 Makefile: Avoid link line object list lengths nearing system limits
34ba5c53 Makefile: Factor out response file checks into common helper
2016-07-21 11:27:31 -04:00
Benjamin Ballet 059c230d89 VS: Explicitly default to v100 toolset in Visual Studio 2010
Otherwise `CMAKE_VS_PLATFORM_TOOLSET` is not set even though the `v100`
toolset is chosen.
2016-07-21 11:13:16 -04:00
Brad King 13a6ff31be VS: Fix WINDOWS_EXPORT_ALL_SYMBOLS for object libraries
Teach Visual Studio generators to include object files from object
libraries in the list of objects whose symbols are to be exported.
The Makefile and Ninja generators already did this.  Update the
test to cover this case.

Reported-by: Bertrand Bellenot <Bertrand.Bellenot@cern.ch>
2016-07-21 11:05:22 -04:00
Brad King 850764fc70 Merge topic 'vs-alternate-RootNamespace'
8aa97fba VS: Handle VS_GLOBAL_RootNamespace special case
2016-07-21 10:39:10 -04:00
Brad King e297e0455e Merge topic 'ninja-target-deps'
1296a0ea Ninja: Fix inter-target order-only dependencies of custom commands
2016-07-21 10:39:07 -04:00
Brad King a4498cc9ae Merge topic 'update-kwsys'
e9849d35 bootstrap: Add check for ext/stdio_filebuf.h needed by KWSys
51d9e8ae Merge branch 'upstream-KWSys' into update-kwsys
9ef2b2b1 KWSys 2016-07-19 (9d1dbd95)
2016-07-21 10:39:01 -04:00
Brad King f19aca6063 Merge branch 'revert-autogen-subdirs' into release 2016-07-21 10:08:40 -04:00
Brad King 5e55d87bdc Autogen: Revert changes to generate moc/rcc in subdirectories
Revert these commits:

* v3.6.0-rc1~134^2
  Tests: QtAutogen: Same source name in different directories test, 2016-04-13
* v3.6.0-rc1~134^2~1
  Autogen: Generate qrc_NAME.cpp files in subdirectories, 2016-04-19
* v3.6.0-rc1~134^2~2
  Autogen: Generate not included moc files in subdirectories, 2016-04-19

They regress existing builds that depend on the paths/symbols generated
previously.  Another approach will be needed to solve the name collision
problem they were intended to solve.  Leave the error diagnostics for
the colliding cases that were added in the same topic as the above
commits because they provide a useful early failure in relevant cases.

Fixes #16209.
2016-07-21 09:27:19 -04:00
Kitware Robot 811bcf543c CMake Nightly Date Stamp 2016-07-21 00:01:03 -04:00
Brad King c7a7c655f0 Makefile: Avoid link line object list lengths nearing system limits
Use response files for object file lists that approach the scale of the
system `ARG_MAX` limit.

Fixes #16206.
2016-07-20 15:09:42 -04:00
Brad King 34ba5c5348 Makefile: Factor out response file checks into common helper
Factor CMAKE_<LANG>_USE_RESPONSE_FILE_FOR_{OBJECTS,LIBRARIES} lookup out
into a common helper.  Use a separate helper for each because more
specific logic may be added to each later.
2016-07-20 15:00:56 -04:00
Brad King 1296a0eada Ninja: Fix inter-target order-only dependencies of custom commands
Custom command dependencies are followed for each target's source files
and add their transitive closure to the corresponding target.  This
means that when a custom command in one target has a dependency on a
custom command in another target, both will appear in the dependent
target's sources.  For the Makefile, VS IDE, and Xcode generators this
is not a problem because each target gets its own independent build
system that is evaluated in target dependency order.  By the time the
dependent target is built the custom command that belongs to one of its
dependencies will already have been brought up to date.

For the Ninja generator we need to generate a monolithic build system
covering all targets so we can have only one copy of a custom command.
This means that we need to reconcile the target-level ordering
dependencies from its appearance in multiple targets to include only the
least-dependent common set.  This is done by computing the set
intersection of the dependencies of all the targets containing a custom
command.  However, we previously included only the direct dependencies
so any target-level dependency not directly added to all targets into
which a custom command propagates was discarded.

Fix this by computing the transitive closure of dependencies for each
target and then intersecting those sets.  That will get the common set
of dependencies.  Also add a test to cover a case in which the
incorrectly dropped target ordering dependencies would fail.
2016-07-20 13:12:24 -04:00
Benjamin Ballet 8aa97fba9e VS: Handle VS_GLOBAL_RootNamespace special case
Although we provide a `VS_GLOBAL_ROOTNAMESPACE` option to both set
the `RootNamespace` value and reference it, some users may try to
set `VS_GLOBAL_RootNamespace` to set `RootNamespace` as a variant
of the `VS_GLOBAL_<variable>` property.  In this case we still
need to add the reference to `$(RootNamespace)`.
2016-07-20 11:34:47 -04:00
Brad King 51d9e8ae3e Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-07-19 (9d1dbd95)
2016-07-20 09:05:17 -04:00
Brad King df14a98e9c Merge topic 'update-kwsys'
788bb146 Merge branch 'upstream-KWSys' into update-kwsys
eb7b5087 KWSys 2016-07-18 (19732229)
2016-07-20 09:03:42 -04:00
Brad King 6a98785d8f Merge topic 'compat-CPACK_INSTALL_CMAKE_PROJECTS-subdirectory'
57534990 CPack: Add compatibility for incorrect CPACK_INSTALL_CMAKE_PROJECTS value
2016-07-20 09:03:22 -04:00
Kitware Robot 88ee36f93f CMake Nightly Date Stamp 2016-07-20 00:01:04 -04:00
Brad King 30dda6724f Merge branch 'compat-CPACK_INSTALL_CMAKE_PROJECTS-subdirectory' into release 2016-07-19 10:09:35 -04:00
Brad King 57534990d8 CPack: Add compatibility for incorrect CPACK_INSTALL_CMAKE_PROJECTS value
Since commit v3.6.0-rc1~339^2 (CPack: Fix CPACK_INSTALL_CMAKE_PROJECTS
SubDirectory (4th) option, 2016-02-18) we now honor the "Directory"
option of this variable.  Prior to that commit the value was not used
so projects may have used a placeholder value like `.` instead of `/`.
Treat `.` the same as `/` to restore compatibility with such projects.

Fixes #16205.
2016-07-19 10:07:12 -04:00
Brad King 788bb14664 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-07-18 (19732229)
2016-07-19 08:27:19 -04:00
Brad King 34216023e6 Merge topic 'use-better-KWSys-GetEnv'
b1f87a50 Use better KWSys SystemTools::GetEnv and HasEnv signatures
2016-07-19 08:26:05 -04:00
Brad King 6a44e34630 Merge topic 'update-kwsys'
03407040 Merge branch 'upstream-KWSys' into update-kwsys
bbb3216a KWSys 2016-07-15 (f396bf43)
2016-07-19 08:26:01 -04:00
Kitware Robot 34efc0a539 CMake Nightly Date Stamp 2016-07-19 00:01:09 -04:00
Dāvis Mosāns b1f87a50b3 Use better KWSys SystemTools::GetEnv and HasEnv signatures 2016-07-18 09:51:01 -04:00
Brad King 03407040d4 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-07-15 (f396bf43)
2016-07-18 09:28:42 -04:00
Brad King 8a5472bd2f Merge topic 'vs-natvis'
a6290cff VS: Add support for NATVIS files
2016-07-18 08:57:33 -04:00
Brad King d0be658205 Merge topic 'ninja-no-accidental-rsp'
86dd2427 Ninja: Do not force response files when no sysconf(3) limit is used
2016-07-18 08:57:30 -04:00
Brad King b224f43120 Merge topic 'ninja-portable-arg-max'
5ec17e61 Ninja: Generalize check for sysconf(3) call
2016-07-18 08:57:26 -04:00
Kitware Robot d290751d0e CMake Nightly Date Stamp 2016-07-18 00:01:03 -04:00
Kitware Robot 3cf455ba3d CMake Nightly Date Stamp 2016-07-17 00:01:04 -04:00
Gregor Jasny ea6475334a Do not report ALIASED_TARGET as always set (#15783)
The cmGetPropertyCommand::StoreResult expects NULL for unset
properties. Make ALIASED_TARGET align with that expectation.

Additional corrections to the unit tests are necessary because
get_property removes variables for unset properties (in contrast
to get_target_property which stores a -NOTFOUND value).
2016-07-16 11:09:18 -07:00
Kitware Robot 5642349129 CMake Nightly Date Stamp 2016-07-16 00:01:04 -04:00
Robert Dailey a6290cffae VS: Add support for NATVIS files
Add an explicit `<Natvis>` element in VS project files for `*.natvis`
files.  These enable custom debug visualizers for project-specific
types.

Fixes #16043.
2016-07-15 10:36:21 -04:00
Raphael Kubo da Costa 5ec17e6106 Ninja: Generalize check for sysconf(3) call
Use `sysconf(_SC_ARG_MAX)` wherever `_SC_ARG_MAX` is available instead
of hard-coding an incomplete list of operating systems that implement
it.  In particular, it is available on BSD platforms that were not
previously listed.
2016-07-15 09:50:59 -04:00
Brad King ace12c9c15 Merge branch 'ninja-no-accidental-rsp' into release 2016-07-15 09:48:32 -04:00
Brad King 86dd2427bc Ninja: Do not force response files when no sysconf(3) limit is used
Commit v3.6.0-rc1~174^2~1 (cmGlobalNinjaGenerator: Clarify logic for
forcing use of response files, 2016-04-06) started using negative
command line length values to represent forced use of response files but
forgot to update `calculateCommandLineLengthLimit()` accordingly.  Teach
it to return `0` instead of `-1` when no limit is computed from the
system to avoid forcing response files.

Reported-by: Raphael Kubo da Costa <rakuco@FreeBSD.org>
2016-07-15 09:43:02 -04:00
Brad King c59ec2b7c8 Merge topic 'cmake-internal-info'
4db08807 CMake: Report whether generators support platforms
43a68a6d cmGlobalGeneratorFactory: Use CM_OVERRIDE for all derived classes
af0e1cd4 Make CMake version dirty state available to code
6a077b5d Make CMake version suffix available to code
2016-07-15 09:04:24 -04:00
Kitware Robot 0c3fc5a251 CMake Nightly Date Stamp 2016-07-15 00:01:03 -04:00
Tobias Hunger 4db08807db CMake: Report whether generators support platforms 2016-07-14 10:35:58 -04:00
Tobias Hunger 43a68a6dca cmGlobalGeneratorFactory: Use CM_OVERRIDE for all derived classes 2016-07-14 10:35:58 -04:00
Tobias Hunger af0e1cd4cb Make CMake version dirty state available to code
Set `CMake_VERSION_IS_DIRTY` to 1 or 0 depending on whether the CMake
source tree is considered dirty or not.
2016-07-14 10:35:58 -04:00
Tobias Hunger 6a077b5d63 Make CMake version suffix available to code
Make the string (e.g. "rc1" or "gSHA-dirty") available to the code.
2016-07-14 10:27:17 -04:00
Brad King 2fe520d2b0 Merge topic 'cmake-ifw-package-updates'
2aadb02f QtIFW: Don't show component selection page if it don't need
53992808 QtIFW: process USE_LGPL when CMake_INSTALL_COMPONENTS
8ae035a5 CMake: install COMPONENT cmcldeps
2016-07-14 09:24:00 -04:00
Brad King 4d3d28750e Merge topic 'vs14-debug-enum-older-toolsets'
36fc3a53 VS: Fix VS 2015 .vcxproj debug setting for v90 toolset (#15986)
2016-07-14 09:23:45 -04:00
Kitware Robot 59f23193a7 CMake Nightly Date Stamp 2016-07-14 00:01:03 -04:00
Konstantin Podsvirov 2aadb02f83 QtIFW: Don't show component selection page if it don't need 2016-07-13 10:02:12 -04:00
Konstantin Podsvirov 8ae035a569 CMake: install COMPONENT cmcldeps
Added in Tools group with IFW installer
2016-07-13 10:02:12 -04:00
Brad King 8ab1989e93 Merge branch 'vs14-debug-enum-older-toolsets' into release 2016-07-13 09:37:03 -04:00
Brad King 36fc3a5372 VS: Fix VS 2015 .vcxproj debug setting for v90 toolset (#15986) 2016-07-13 09:35:39 -04:00
Brad King de1f409844 Merge topic 'no-export-cmake-version'
c376c5bc Do not place CMake version in export files
2016-07-13 09:26:50 -04:00
Brad King 7f36d89595 Merge topic 'fix-cmake-E-env_vs8_wince'
047862d3 cmake: Fix -E env_vs8_wince implementation
b7a94fbb cmake: Drop unused -E cmake_call_visual_studio_macro code
2016-07-13 09:26:47 -04:00
Brad King 602d95d16d Merge topic 'find-command-restore-PATH-on-unix'
54475018 Restore find_(library|file|path) search of PATH itself
2016-07-13 09:26:37 -04:00
Brad King 40f24f0ec2 Merge topic 'windows-export-all-from-exe'
9da725cb Windows: Honor WINDOWS_EXPORT_ALL_SYMBOLS for executables with exports
2005b960 Makefile: Factor out WINDOWS_EXPORT_ALL_SYMBOLS helper
2016-07-13 09:26:33 -04:00
Brad King 43875ca59c Merge topic 'cmake-spelling'
56608618 Fix typos.
2016-07-13 09:26:30 -04:00
Kitware Robot 056db896e3 CMake Nightly Date Stamp 2016-07-13 00:01:03 -04:00
Kitware Robot 49f5818d8a CMake Nightly Date Stamp 2016-07-12 00:01:04 -04:00
Brad King 047862d391 cmake: Fix -E env_vs8_wince implementation
This code has accidentally not been compiled since commit
v3.0.0-rc1~556^2 (cmake: Split -E command implementation into separate
source file, 2013-10-03) because CMAKE_HAVE_VS_GENERATORS was local to
`cmake.cxx`.

Fixes #16195.
2016-07-11 14:44:38 -04:00
Brad King b7a94fbb70 cmake: Drop unused -E cmake_call_visual_studio_macro code
This code has not been compiled since commit v3.0.0-rc1~556^2 (cmake:
Split -E command implementation into separate source file, 2013-10-03).
It appears the code was never used since it was added anyway.
2016-07-11 14:32:50 -04:00
Christoph Grüninger c376c5bca2 Do not place CMake version in export files
Files generated by `install(EXPORT)` and `export_library_dependencies()`
may be installed with packages and consumed by dependents.  In order to
avoid re-building dependents only because the version of CMake changed,
drop the CMake version from the export file content.
2016-07-11 11:35:27 -04:00
Brad King 54475018ae Restore find_(library|file|path) search of PATH itself
The fix in commit commit v3.6.0-rc1~82^2 (Drop find_(library|file|path)
prefixes from PATH on non-Windows, 2016-05-09) aggressively dropped
search of the entries in PATH itself in addition to the prefixes derived
from it.  This regresses find modules that (incorrectly) depended on the
behavior, including some of our own modules such as FindImageMagick.

Restore the search of entries in PATH itself.  If we want to drop it
later we will need to do so with a policy.  Fixes #16192.
2016-07-11 10:27:27 -04:00
Brad King 35284a63ea Merge topic 'add-gitignore'
b4811f3e Tell Git to ignore .DS_Store files
4786ec51 Source: Remove long-unused .cvsignore file
2016-07-11 09:56:14 -04:00
Yury Zhuravlev 9da725cb00 Windows: Honor WINDOWS_EXPORT_ALL_SYMBOLS for executables with exports
For executables with ENABLE_EXPORTS set, export all symbols when
instructed to do so by WINDOWS_EXPORT_ALL_SYMBOLS.
2016-07-11 09:41:04 -04:00
Yury Zhuravlev 2005b96067 Makefile: Factor out WINDOWS_EXPORT_ALL_SYMBOLS helper
Factor the implementation out of cmMakefileLibraryTargetGenerator
into a helper method in cmMakefileTargetGenerator so it can be
re-used elsewhere later.
2016-07-11 09:40:42 -04:00
Kitware Robot 7af4bc69c5 CMake Nightly Date Stamp 2016-07-11 00:01:03 -04:00
Felix Geyer 566086187f Fix typos. 2016-07-10 11:05:56 +02:00
Kitware Robot 03a50961f3 CMake Nightly Date Stamp 2016-07-10 00:01:03 -04:00
Kitware Robot 325288455e CMake Nightly Date Stamp 2016-07-09 00:01:05 -04:00
Brad King 4786ec515f Source: Remove long-unused .cvsignore file 2016-07-08 13:36:38 -04:00
Kitware Robot 2c2e0abfb0 CMake Nightly Date Stamp 2016-07-08 00:01:03 -04:00
Brad King e31084e657 CMake 3.6.0 2016-07-07 09:17:24 -04:00
Kitware Robot 5553aab0bd CMake Nightly Date Stamp 2016-07-07 00:01:53 -04:00
Brad King f2c1900a71 Merge topic 'windows-export-all-symbols'
f8d4e3d7 bindexplib: Export symbols from objects even with explicit markup
2016-07-06 09:36:17 -04:00
Brad King 50adbfcacb Merge topic 'reorganize-cmCTest'
61fcd08a Help: Fix documentation of ctest --build-and-test
7c67d401 Help: Consistently use quotes and fix punctuation in ctest(1) manual
0076fb10 cmCTest: Update doxygen to be consistent
30c5f94c cmCTest: Rename "ProcessTests()" to "ProcessSteps()" and improve doxygen
7c87ab75 cmCTest: Facilitate code reading adding consistent comments in Run()
6d8b9aa6 cmCTest: Improve readability adding "HandleTest(Action|Model)Argument()"
280d0a69 cmCTest: Improve readability adding "RunCMakeAndTest()" and "ExecuteTests()"
898cb987 cmCTest: Fix typo
2016-07-06 09:35:38 -04:00
Brad King 0219743a01 Merge topic 'cpack-ifw-fix-repo-attributes'
7a30fa1a CPackIFW: Fix attributes for Promoting Updates repository replacement
2016-07-06 09:35:19 -04:00
Kitware Robot 7d3fe197f8 CMake Nightly Date Stamp 2016-07-06 00:01:03 -04:00
Konstantin Podsvirov 7a30fa1a41 CPackIFW: Fix attributes for Promoting Updates repository replacement
Fix spelling of attributes added by commit v3.6.0-rc1~52^2 (CPackIFW:
Add support for Promoting Updates, 2016-05-17).
2016-07-05 15:55:42 -04:00
Yury Zhuravlev f8d4e3d7f8 bindexplib: Export symbols from objects even with explicit markup
Drop our `HaveExportedObjects` check before dumping exports for an
object file.  It is possible for only a subset of needed symbols to have
explicit markup, and re-exporting the marked symbols does not hurt.

This leaves no callers of `HaveExportedObjects`, but leave the
method in place anyway because it may be useful in the future.

Fixes #16161.
2016-07-05 15:19:56 -04:00
Brad King 8d330277d6 Merge topic 'cmake-gui-static-xcb'
5de1d406 Source/QtDialog: Run clang-format
2016-07-05 15:16:29 -04:00
Brad King 5de1d406f1 Source/QtDialog: Run clang-format 2016-07-05 15:15:57 -04:00
Brad King f8751753e3 Merge topic 'update-kwsys'
aec1d43f Merge branch 'upstream-KWSys' into update-kwsys
f7d23e67 KWSys 2016-06-30 (96f06c8e)
2016-07-05 11:29:11 -04:00
Jean-Christophe Fillion-Robin 0076fb100b cmCTest: Update doxygen to be consistent 2016-07-05 11:19:01 -04:00
Jean-Christophe Fillion-Robin 30c5f94c5b cmCTest: Rename "ProcessTests()" to "ProcessSteps()" and improve doxygen 2016-07-05 11:19:00 -04:00
Jean-Christophe Fillion-Robin 7c87ab755c cmCTest: Facilitate code reading adding consistent comments in Run() 2016-07-05 11:19:00 -04:00
Jean-Christophe Fillion-Robin 6d8b9aa65a cmCTest: Improve readability adding "HandleTest(Action|Model)Argument()" 2016-07-05 11:19:00 -04:00
Jean-Christophe Fillion-Robin 280d0a6947 cmCTest: Improve readability adding "RunCMakeAndTest()" and "ExecuteTests()" 2016-07-05 11:19:00 -04:00
Jean-Christophe Fillion-Robin 898cb987b4 cmCTest: Fix typo 2016-07-05 11:18:53 -04:00
Kitware Robot b9eb3408b4 CMake Nightly Date Stamp 2016-07-05 00:01:03 -04:00
Kitware Robot 7523267ca0 CMake Nightly Date Stamp 2016-07-04 00:01:03 -04:00
Kitware Robot a24cd6525a CMake Nightly Date Stamp 2016-07-03 00:01:02 -04:00
Kitware Robot b02814ed74 CMake Nightly Date Stamp 2016-07-02 00:01:08 -04:00
Brad King aec1d43f5d Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-06-30 (96f06c8e)
2016-07-01 09:13:38 -04:00
Brad King 6e55605db1 Merge topic 'cmake-gui-static-xcb'
73a3c0cd cmake-gui: Add build option to use Qt5 xcb plugin statically
2016-07-01 09:12:40 -04:00
Kitware Robot f408a5b1b9 CMake Nightly Date Stamp 2016-07-01 00:01:05 -04:00
Brad King 73a3c0cd98 cmake-gui: Add build option to use Qt5 xcb plugin statically
This will enable builds against a static Qt5.
2016-06-30 11:26:53 -04:00
Brad King b1883bc8b7 Merge topic 'try_compile-config-flags'
d582c23a try_compile: Add policy CMP0066 to honor CMAKE_<LANG>_FLAGS_<CONFIG>
2016-06-30 09:47:41 -04:00
Brad King 2bef377427 Merge topic 'refactor-auto_ptr'
b5ec5b09 Avoid using KWSys auto_ptr by adopting it ourselves
2016-06-30 09:47:38 -04:00
Brad King b399d13568 Merge topic 'CM_OVERRIDE-cmTypeMacro'
4e8480db cmTypeMacro: mark overridden functions with CM_OVERRIDE
2016-06-30 09:47:31 -04:00
Brad King 0639e23920 Merge topic 'CM_OVERRIDE-clang'
3f77655d CM_OVERRIDE: fix feature test for clang
2016-06-30 09:47:28 -04:00
Kitware Robot 2c759971e4 CMake Nightly Date Stamp 2016-06-30 00:01:07 -04:00
Brad King dd71ec2c93 CMake 3.6.0-rc4 2016-06-29 09:51:33 -04:00
Brad King b5ec5b0901 Avoid using KWSys auto_ptr by adopting it ourselves
Replace use of cmsys::auto_ptr with a CM_AUTO_PTR macro that maps to
our own implementation adopted from the KWSys auto_ptr implementation.
Later we may be able to map CM_AUTO_PTR to std::auto_ptr on compilers
that do not warn about it.

Automate the client site conversions:

    git grep -l auto_ptr -- Source/ | grep -v Source/kwsys/ | xargs sed -i \
      's|cmsys::auto_ptr|CM_AUTO_PTR|;s|cmsys/auto_ptr.hxx|cm_auto_ptr.hxx|'
2016-06-29 09:47:58 -04:00
Brad King d582c23a47 try_compile: Add policy CMP0066 to honor CMAKE_<LANG>_FLAGS_<CONFIG>
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`).
However, some projects may currently depend on this not being done,
so we need to activate the behavior using a policy.

This change was originally made by commit v3.6.0-rc1~160^2 (try_compile:
Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes, 2016-04-11) but without the
policy and so had to be reverted during the 3.6 release candidate cycle.

Fixes #16174.
2016-06-29 09:11:02 -04:00
Brad King db4ba61f39 Merge topic 'revert-try_compile-config-flags'
943fe6e3 Revert "try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes"
2016-06-29 09:07:28 -04:00
Tobias Hunger 4e8480db54 cmTypeMacro: mark overridden functions with CM_OVERRIDE 2016-06-29 11:48:50 +02:00
Daniel Pfeifer 3f77655d06 CM_OVERRIDE: fix feature test for clang
Clang refuses to default initialize an instance of a class that does not
have a default constructor.  Fix the check by adding default
constructors.  Don't use brace initialization like it is proposed in the
error message.  We want to test the override support independent from
the support for brace initialization.
2016-06-29 11:33:38 +02:00
Kitware Robot b9b3ec4d98 CMake Nightly Date Stamp 2016-06-29 00:01:05 -04:00
Brad King e34c5543fa Merge branch 'revert-try_compile-config-flags' into release 2016-06-28 15:09:44 -04:00
Brad King 943fe6e3b4 Revert "try_compile: Honor CMAKE_<LANG>_FLAGS_<CONFIG> changes"
Revert commit v3.6.0-rc1~160^2 (try_compile: Honor
CMAKE_<LANG>_FLAGS_<CONFIG> changes, 2016-04-11).  The behavior it
introduced can break projects that depend on the lack of such behavior.
We will have to introduce a policy or other mechanism to enable the
behavior in a compatible way.  Simply revert it for now.

See issue #16174.
2016-06-28 15:03:45 -04:00
Brad King f913121758 Merge topic 'compiler-features'
059a6ca0 Merge branch 'unknown-aliased-target' into compiler-features
1d6909a2 use CM_NULLPTR
b4b73f56 cxx features: add check for nullptr
a7a92390 mark functions with CM_OVERRIDE
9e2d6f0c CM_OVERRIDE: mark destructor overridden in the feature test.
2ca76a66 Validate target name in ALIASED_TARGET property getter
2016-06-28 09:06:39 -04:00
Brad King 1b021a64f8 Merge topic 'ninja-no-rsp-for-rc'
15b3f6f0 ninja, rc: ignore CMAKE_NINJA_FORCE_RESPONSE_FILE for RC files
2016-06-28 09:06:34 -04:00
Brad King 059a6ca07a Merge branch 'unknown-aliased-target' into compiler-features 2016-06-28 09:03:00 -04:00
Daniel Pfeifer 1d6909a287 use CM_NULLPTR 2016-06-28 09:02:26 -04:00
Kitware Robot 7287893d41 CMake Nightly Date Stamp 2016-06-28 00:01:07 -04:00
Daniel Pfeifer b4b73f56a2 cxx features: add check for nullptr 2016-06-27 23:24:39 +02:00
Daniel Pfeifer a7a9239096 mark functions with CM_OVERRIDE 2016-06-27 23:24:38 +02:00
Daniel Pfeifer 9e2d6f0c4d CM_OVERRIDE: mark destructor overridden in the feature test.
This is important for two reasons:

1. A compiler might warn about a class that has a virtual member
function but no virtual destructor.  We don't want to treat the feature
as incomplete in this case.

2. MSVC10 supports the override identifier except on destructors.  In
this case, the feature really is incomplete and we want to detect it as
such.
2016-06-27 23:24:09 +02:00
Ben Boeckel 15b3f6f0f1 ninja, rc: ignore CMAKE_NINJA_FORCE_RESPONSE_FILE for RC files
In commit v3.6.0-rc1~174^2 (Ninja: Honor CMAKE_NINJA_FORCE_RESPONSE_FILE
for compile rules, 2016-04-06), Ninja learned to look for
`CMAKE_NINJA_FORCE_RESPONSE_FILE` in the current scope or the
environment in order to force response file usage for all compilation
rules.

However, on Windows, the RC compiler goes through cmcldeps which does a
`replace(output, output + ".dep.obj")` on the command line. However,
with a response file (which we name `output + ".rsp"`), the response
file path is replaced instead causing the compiler to (correctly)
complain that the response file `output + ".dep.obj.rsp"` does not
exist.

What needs to happen is for cmcldeps to look through the response file,
replace *its* contents and place it in the `output + ".dep.obj.rsp"`
file.

Also add a test which actually compiles an RC file into a library and
executable for all generators on Windows and additionally test
`CMAKE_NINJA_FORCE_RESPONSE_FILE` for Ninja generators.

Fixes #16167.
2016-06-27 14:34:06 -04:00
Brad King d3544d023b Merge topic 'compiler-features'
7647f6af Add CM_OVERRIDE to some functions
5286110d cxx features: add check for override
09aa2c94 Use <unordered_set> where available
ea5477e4 Make C++ feature checks extensible
2016-06-27 10:40:35 -04:00
Brad King fd36f4e024 Merge topic 'ninja-osx-content-on-target'
8bbd5db4 Ninja: Make bundle resources a dependency of their target
2016-06-27 10:40:30 -04:00
Daniel Pfeifer 7647f6afa4 Add CM_OVERRIDE to some functions
Run clang-tidy's modernize-use-override checker.  This checker must have
issues in version 3.8.  It has way too little matches.  And it adds
override to destructors.  Revert the changes on the destructors and
change override to CM_OVERRIDE.
2016-06-27 10:37:41 -04:00
Daniel Pfeifer 5286110d6f cxx features: add check for override 2016-06-27 10:37:41 -04:00
Daniel Pfeifer 09aa2c9418 Use <unordered_set> where available 2016-06-27 10:37:40 -04:00
Daniel Pfeifer ea5477e43d Make C++ feature checks extensible
Turn the feature check for cxx11_unordered_map into a function such that
we can use it for other features as well.  Drop the 11 suffix, as we may
want to check features from other standards.
2016-06-27 10:37:40 -04:00
Kitware Robot 99c873c835 CMake Nightly Date Stamp 2016-06-27 00:01:04 -04:00
Gregor Jasny 2ca76a6651 Validate target name in ALIASED_TARGET property getter 2016-06-26 22:00:00 +02:00
Kitware Robot c68cf9e4d1 CMake Nightly Date Stamp 2016-06-26 00:01:05 -04:00
Kitware Robot 3a0449439f CMake Nightly Date Stamp 2016-06-25 00:01:05 -04:00
Kitware Robot f05657de9d CMake Nightly Date Stamp 2016-06-24 00:01:08 -04:00
Florent Castelli 8bbd5db4c1 Ninja: Make bundle resources a dependency of their target
Fixes #13816.
2016-06-23 15:50:03 -04:00
Brad King c2c2a2f4c7 Merge topic 'vs-tool-override'
ed05f11d VS: Add a VS_TOOL_OVERRIDE source file property
2016-06-23 08:59:29 -04:00
Brad King 015876fa81 Merge topic 'vs-sdk-refs'
35a6cac2 VS: Add VS_SDK_REFERENCES target property to reference external SDKs
2016-06-23 08:59:26 -04:00
Brad King f101d4eff3 Merge topic 'xcode-bundle-extension'
e36e5a26 Xcode: Properly handle BUNDLE_EXTENSION
2016-06-23 08:59:23 -04:00
Kitware Robot 46f49c918a CMake Nightly Date Stamp 2016-06-23 00:01:15 -04:00
Brad King d152ae123d CMake 3.6.0-rc3 2016-06-22 09:02:00 -04:00
Gilles Khouzam 35a6cac2d3 VS: Add VS_SDK_REFERENCES target property to reference external SDKs
Allow one to specify external SDK references such as
`Microsoft.AdMediatorWindows81, Version=1.0`.
2016-06-22 08:34:12 -04:00
Kitware Robot de943c3128 CMake Nightly Date Stamp 2016-06-22 00:01:10 -04:00
Brad King 8380f47cc9 Merge topic 'output-converter'
8ddbd4c2 cmOutputConverter: remove unnecessary conversion
bdaadbdc cmOutputConverter: collapse ConvertToOutputForExisting functions
191fc3a0 cmOutputConverter: remove unused 'local' argument
b86007e3 cmOutputConverter: remove 'optional' argument
cde127b0 cmOutputConverter::Convert: invert condition
c23f89bc cmOutputConverter::Convert: make precondition explicit
2016-06-21 13:57:16 -04:00
Brad King b70f18379b Merge topic 'refactor-flags'
41925efe cmGeneratorTarget: Fix Fortran module directory regression
2016-06-21 13:56:59 -04:00
Brad King 41925efe76 cmGeneratorTarget: Fix Fortran module directory regression
Refactoring in commit 49f10f0d (cmGeneratorTarget: Adopt Fortran module
directory generation, 2016-06-10) accidentally made a local variable
declared `static` causing results to be re-used incorrectly.
2016-06-21 13:37:06 -04:00
Kitware Robot 76c186b72f CMake Nightly Date Stamp 2016-06-21 00:01:11 -04:00
Daniel Pfeifer 8ddbd4c280 cmOutputConverter: remove unnecessary conversion 2016-06-20 23:18:59 +02:00
Daniel Pfeifer bdaadbdc2b cmOutputConverter: collapse ConvertToOutputForExisting functions 2016-06-20 23:11:05 +02:00
Daniel Pfeifer 191fc3a0f3 cmOutputConverter: remove unused 'local' argument 2016-06-20 23:03:28 +02:00
Daniel Pfeifer b86007e385 cmOutputConverter: remove 'optional' argument
Remove the 'optional' paramenter from the second overload of the Convert
function.  This parameter is used from one single location.  Inline the
codepath for which the argument is true to the callsite.
2016-06-20 22:32:02 +02:00
Daniel Pfeifer cde127b084 cmOutputConverter::Convert: invert condition
Make the control flow of the 'optional' argument more explicit.
2016-06-20 22:12:36 +02:00
Daniel Pfeifer c23f89bc76 cmOutputConverter::Convert: make precondition explicit 2016-06-20 22:11:20 +02:00
Brad King cd1f1cb544 Merge topic 'cmDependsJavaParserHelper-dangling-ptr'
fe27879c cmDependsJavaParserHelper: fix dangling pointer
2016-06-20 10:58:10 -04:00
Daniel Pfeifer fe27879c6b cmDependsJavaParserHelper: fix dangling pointer
The cmDependsJavaParserHelper tries to implement a "deep copy" in the
assignment operator of the internal class CurrentClass.  To do that, it
uses std::copy and std::back_inserter.  The copy constructor is
implemented in terms of the assignment operator but it does not
initialize the member NestedClasses, a pointer to vector.  This pointer
is dereferenced in the assignment operator.  Change the pointer to a
value and rely on the compiler generated special functions.
2016-06-20 10:56:39 -04:00
Gilles Khouzam ed05f11dd2 VS: Add a VS_TOOL_OVERRIDE source file property
This property allow to specify a specific Visual Studio tool for a
source file overriding the default tool behavior.  For example, a
`.resw` file being processed as a `PriResource` file.  This has the
advantage of being able to teach CMake to process new file types without
code modifications.
2016-06-20 10:46:14 -04:00
Brad King 74fde78311 Merge topic 'cmake-trace-source'
e63151ff cmake: Add an option to control what files needs to be traced
2016-06-20 09:56:06 -04:00
Brad King 711caeb3bd Merge topic 'refactor-flags'
802b36fb cmExtraSublimeTextGenerator: Use GetTargetCompileFlags
3c488ce8 cmLocalGenerator: Adopt target compile flag generation
5467e794 cmLocalGenerator: Add method to get Fortran-specific compiler flags
49f10f0d cmGeneratorTarget: Adopt Fortran module directory generation
0392f72b Refactor Makefile/Ninja tool working directory storage
2016-06-20 09:55:56 -04:00
Brad King af0f1e4f22 Merge topic 'cmake-gui-Qt-LGPLv3'
9ad10c8f cmake-gui: Reference LGPLv3 when redistributing Qt
2016-06-20 09:55:54 -04:00
Brad King 5c7b2aafbd Merge topic 'revert-vs-clang-minsize'
78249be2 VS: Fix regressed mapping for the cl `/Os` compiler flag
2016-06-20 09:55:48 -04:00
Kitware Robot f4c35c3dc2 CMake Nightly Date Stamp 2016-06-20 00:01:06 -04:00
Kitware Robot d637809136 CMake Nightly Date Stamp 2016-06-19 00:01:06 -04:00
Gregor Jasny e36e5a2680 Xcode: Properly handle BUNDLE_EXTENSION 2016-06-18 23:23:32 +02:00
Kitware Robot 2e351f892e CMake Nightly Date Stamp 2016-06-18 00:01:07 -04:00
Brad King 9ad10c8feb cmake-gui: Reference LGPLv3 when redistributing Qt
Download http://www.gnu.org/licenses/lgpl.txt and place it as
Licenses/LGPLv3.txt in our source tree.  When building cmake-gui, use
option CMake_GUI_DISTRIBUTE_WITH_Qt_LGPL to enable notification in the
"About" dialog of how the distribution of Qt is licensed.  Install the
license file as ${CMAKE_ROOT}/Licenses/LGPLv3.txt so that the dialog can
display a path to it.
2016-06-17 15:02:54 -04:00
Tobias Hunger 802b36fb62 cmExtraSublimeTextGenerator: Use GetTargetCompileFlags
Replace some custom code with equivalent code from the framework.

This also fixes some fixmes left in the custom code.
2016-06-17 14:53:01 -04:00
Tobias Hunger 3c488ce899 cmLocalGenerator: Adopt target compile flag generation
Factor the flag generation out of cmCommonTargetGenerator::GetFlags
into a new cmLocalGenerator::GetTargetCompileFlags method.
This will allow it to be used without a target generator available.
2016-06-17 14:49:38 -04:00
Brad King 5467e7945d cmLocalGenerator: Add method to get Fortran-specific compiler flags
Add a cmLocalGenerator::GetTargetFortranFlags virtual method to get
generator-specific generation of Fortran-specific flags.  Implement it
in cmLocalCommonGenerator by moving the implementation from
cmCommonTargetGenerator::AddFortranFlags.  This will allow it to be used
without having a target generator available.

Inspired-by: Tobias Hunger <tobias.hunger@qt.io>
2016-06-17 14:49:29 -04:00
Tobias Hunger 49f10f0d24 cmGeneratorTarget: Adopt Fortran module directory generation
Move code to create/get the fortran module directory from the
cmCommonTargetGenerator to cmGeneratorTarget.

Rename the ComputeFortranModuleDirectory method to
CreateFortranModuleDirectory as this method *creates* the directory if
it is missing.
2016-06-17 14:22:29 -04:00
Brad King 0392f72bef Refactor Makefile/Ninja tool working directory storage
Move cmCommonTargetGenerator::WorkingDirectory to cmLocalCommonGenerator
and add an access method.
2016-06-17 14:22:28 -04:00
Alex Turbov e63151ff54 cmake: Add an option to control what files needs to be traced
Even in relatively small projects using `--trace` (and `--trace-expand`)
may produce a lot of output.  When developing a custom module usually
one is interested in output of only a few particular modules.

Add a `--trace-source=<file>` option to enable tracing only a subset of
source files.  The final output would be only from requested modules,
ignoring anything else not matched to given filename(s).
2016-06-17 11:46:23 -04:00
Brad King 9e47255604 Merge topic 'xcode-mig-support'
8be00e44 Help: Add release note about XCODE_FILE_ATTRIBUTES source file property
27eb657d Xcode: Add support for mig files
811f6c82 Xcode: Add XCODE_FILE_ATTRIBUTES source file property
ef494edf Xcode: Don't emit empty settings blocks.
82ebbf68 Xcode: Add function to conditionally add Xcode Attributes
025edea0 Xcode: Add const qualifiers
2016-06-17 11:06:47 -04:00
Brad King e4cb7d7609 Merge topic 'link_what_you_use'
a0902efa Help: Add notes for topic 'link_what_you_use'
96242f80 Add options to run `ldd -u -r` as a "link-what-you-use" tool
2016-06-17 11:06:44 -04:00
Brad King 44f81be934 Merge topic 'CodeBlocks-generated-sources'
afd6cc6b CodeBlocks: Show generated files in non-utility targets
2016-06-17 11:06:40 -04:00
Brad King 9ef7ccdcf9 Merge topic 'CodeBlocks-include-order'
76b462ea cmExtraCodeBlocksGenerator: Do not shuffle include directories
2016-06-17 11:06:37 -04:00
Bill Hoffman 96242f8022 Add options to run `ldd -u -r` as a "link-what-you-use" tool
Create a LINK_WHAT_YOU_USE target property and corresponding
CMAKE_LINK_WHAT_YOU_USE variable to enable this behavior.
Extend link commands by running `ldd -u -r` to detect shared
libraries that are linked but not needed.
2016-06-17 10:56:40 -04:00
James Touton 27eb657d11 Xcode: Add support for mig files 2016-06-17 10:49:06 -04:00
James Touton 811f6c8252 Xcode: Add XCODE_FILE_ATTRIBUTES source file property
This adds values to the ATTRIBUTES list in PBXBuildFile settings.
2016-06-17 10:49:06 -04:00
James Touton ef494edf76 Xcode: Don't emit empty settings blocks. 2016-06-17 10:49:06 -04:00
Gregor Jasny 82ebbf683e Xcode: Add function to conditionally add Xcode Attributes 2016-06-17 10:49:05 -04:00
James Touton 025edea019 Xcode: Add const qualifiers 2016-06-17 10:49:05 -04:00
Brad King 3a50c55ff6 Merge branch 'CodeBlocks-include-order' into release 2016-06-17 10:40:14 -04:00
Tobias Hunger 76b462eacb cmExtraCodeBlocksGenerator: Do not shuffle include directories
Report include directories in a sensible order. Do not shuffle them
when trying to make them unique.
2016-06-17 10:37:29 -04:00
Brad King 4160d68189 Merge branch 'revert-vs-clang-minsize' into release 2016-06-17 10:20:16 -04:00
Brad King 78249be29d VS: Fix regressed mapping for the cl `/Os` compiler flag
In commit v3.6.0-rc1~279^2~10 (VS: in Clang/C2 toolset, setup correct
compiler settings, 2016-02-18) a flag mapping was added for the clang
`-Os` flag.  However, this collides with a mapping we already had for
the MSVC flag of the same name.  This is a symptom of a larger problem
in that the VS generators need a per-toolset flag map (issue #16153).

For now, simply drop the new mapping and drop `-Os` from clang compiler
flags in the MinSizeRel configuration.

Reported-by: Felix Bruns <felixbruns@gmail.com>
2016-06-17 10:18:47 -04:00
Kitware Robot d4283ca18b CMake Nightly Date Stamp 2016-06-17 00:01:07 -04:00
Enrico Bedau afd6cc6b92 CodeBlocks: Show generated files in non-utility targets
Since 2.6.3 the UTILITY target may have source files. A defect was filed
that these files are now visible in the source tree. A fix later removed
all generated files from the source tree, regardless of the target type.
You can't even include them by using the SOURCES option. This fix adds
generated files again, except for the UTILITY target which cluttered the
source tree.

Fixes #14272.
2016-06-16 09:55:29 -04:00
Brad King a854e1795f Merge topic 'cmOutputConverter-stringstream'
d645b03e cmOutputConverter: implement Shell__GetArgument using ostringstream
2016-06-16 09:46:56 -04:00
Brad King 0e523d0612 Merge topic 'cleanup-streams'
ed5fa48d cmXMLWriter: use ifstream from KWSys
24ab29b8 Prefer istringstream and ostringstream over stringstream.
ab8b77dd Remove redundant arguments from fstream constructors
eb79fa72 Access std::ios_base with std::ios
2016-06-16 09:46:54 -04:00
Brad King 290913fab8 Merge topic 'iwyu-preparation'
1c2c6297 cmTargetLinkLibraryType: Extract from cmStandardIncludes.h
ffdc0a8e cmTypeMacro: Extract from cmStandardIncludes.h
e4eb88e2 cmCustomCommandLines: Extract from cmStandardIncludes.h
535ec2bf cmDocumentationEntry: Extract from cmStandardIncludes
c3819aca cmConfigure.h: Establish as 'include first' file
2016-06-16 09:46:49 -04:00
Brad King 84c0fdb192 Merge topic 'clean-up-cmMakefile-IssueMessage'
5bbcf758 cmIfCommand: Don't rely on NestedError logic to issue messages
262ce91e cmMakefile: Extract invoke result variables
2016-06-16 09:46:47 -04:00
Brad King 2701b519b1 Merge topic 'clean-up-Parser'
905e738f Parser: Out-of-line conditional code to cmMakefile
0a9094cd Parser: Issue file open error messages through dedicated API
2016-06-16 09:46:44 -04:00
Brad King ce62454019 Merge topic 'find_package-duplicate-search-paths'
919db25c cmFindPackageCommand: remove duplicate paths from error message
ebf18df5 cmFindPackageCommand: use iterators to loop over configurations
2016-06-16 09:46:42 -04:00
Daniel Pfeifer 1c2c629769 cmTargetLinkLibraryType: Extract from cmStandardIncludes.h 2016-06-16 09:26:50 -04:00
Daniel Pfeifer ffdc0a8e28 cmTypeMacro: Extract from cmStandardIncludes.h 2016-06-16 09:26:33 -04:00
Daniel Pfeifer e4eb88e21d cmCustomCommandLines: Extract from cmStandardIncludes.h 2016-06-16 09:25:22 -04:00
Kitware Robot 83ae79442c CMake Nightly Date Stamp 2016-06-16 00:01:06 -04:00
Daniel Pfeifer d645b03e9c cmOutputConverter: implement Shell__GetArgument using ostringstream
This removes the need to calculate the resulting string length
beforehand.
2016-06-15 23:44:37 +02:00
Kitware Robot 909d51bece CMake Nightly Date Stamp 2016-06-15 00:01:06 -04:00
Daniel Pfeifer ed5fa48d50 cmXMLWriter: use ifstream from KWSys 2016-06-14 23:26:16 +02:00
Daniel Pfeifer 24ab29b882 Prefer istringstream and ostringstream over stringstream.
Use istringsream for parsing, ostringstream for generation.
2016-06-14 22:37:36 +02:00
Daniel Pfeifer ab8b77dd33 Remove redundant arguments from fstream constructors
Don't pass the default value of the openmode parameter explicitly.
2016-06-14 22:28:55 +02:00
Daniel Pfeifer eb79fa7260 Access std::ios_base with std::ios
Just because it is shorter.
2016-06-14 22:23:08 +02:00
Kitware Robot 33f74dc524 CMake Nightly Date Stamp 2016-06-14 00:01:10 -04:00
Daniel Pfeifer 535ec2bf1a cmDocumentationEntry: Extract from cmStandardIncludes 2016-06-13 22:41:29 +02:00
Daniel Pfeifer c3819acad2 cmConfigure.h: Establish as 'include first' file
At the moment, cmStandardIncludes.h needs to be included before any
standard includes because it disables some warnings that are caused
by the standard library of some compilers.  Move this responsibility
to the cmConfigure.h file.

Also add include guards to cmConfigure.h to make sure the file can be
included multiple times.
2016-06-13 22:37:28 +02:00
Stephen Kelly 5bbcf758a1 cmIfCommand: Don't rely on NestedError logic to issue messages 2016-06-13 20:20:44 +02:00
Stephen Kelly 262ce91e8a cmMakefile: Extract invoke result variables
Make it more clear what is happening here.
2016-06-13 20:20:44 +02:00
Stephen Kelly 905e738ffe Parser: Out-of-line conditional code to cmMakefile
Simplify parser API.
2016-06-13 20:19:16 +02:00
Stephen Kelly 0a9094cd10 Parser: Issue file open error messages through dedicated API 2016-06-13 20:19:16 +02:00
Ben Boeckel 919db25c3b cmFindPackageCommand: remove duplicate paths from error message
Fixes #15252.
2016-06-13 11:16:12 -04:00
Ben Boeckel ebf18df580 cmFindPackageCommand: use iterators to loop over configurations 2016-06-13 11:16:10 -04:00
Brad King 9f3546bbb4 CMake 3.6.0-rc2 2016-06-13 10:28:02 -04:00
Brad King 473634eb1c Merge topic 'expose-cache-properties'
63c0e92c cmState: Expose list of properties of values in the cache
6eee2463 cmCacheEntry: Retrieve all properties of cache entries
120899c6 cmPropertyList: Add a way to retrieve all properties
7066218e cmake: Kill cmake::CacheManager and its getter
2016-06-13 10:03:05 -04:00
Brad King 4e66ca1952 Merge topic 'fix-cmake-ISP-violation'
23f87e81 cmake: Remove force from IssueMessage API
54c65d5f cmake: Extract DisplayMessage API.
2016-06-13 09:54:27 -04:00
Brad King 18e00ac7b9 Merge topic 'avoid-cmMakefile-IssueMessage-after-configure'
ea5324cd cmMakefile: Port messages for compile features to cmake
df8c3130 cmGlobalGenerator: Don't use cmMakefile::IssueMessage after configure
946d1e50 cmMakefile: Avoid IssueMessage after configure is finished
096c7754 cmLocalGenerator: Store Backtrace for the directory
2016-06-13 09:54:24 -04:00
Brad King 3b14a4bca4 Merge topic 'fix-Message-API-ISP-violation'
0a4af073 cmake: Issue message independent of cmMakefile definition
2016-06-13 09:54:20 -04:00
Brad King 941fbe31f5 Merge topic 'find-lib32'
896ad251 Teach find_library and find_package to search lib32 paths (#11260)
2016-06-13 09:54:17 -04:00
Brad King ff1cce464d Merge topic 'add-braces'
757b0ff5 Add missing braces around statements in header files
a16bf141 Add missing braces around statements.
bd9e551c PseudoMemcheck: revise style with clang-format.
2016-06-13 09:54:14 -04:00
Brad King 7ce354d3ac Merge topic 'refactor-cmLocalGenerator-flags'
f62ed322 cmLocalGenerator: Add GetTargetDefines to get all defines for a target
853b1bb4 cmLocalGenerator: Constify AppendDefines and AddCompileDefinitions
2016-06-13 09:54:09 -04:00
Kitware Robot 06ee543c00 CMake Nightly Date Stamp 2016-06-13 00:01:05 -04:00
Stephen Kelly 23f87e8157 cmake: Remove force from IssueMessage API
The force parameter is ugly and makes the method harder to reason about
(issues the message ... but maybe it doesn't ... but then again you can
force it).  It is a violation of

 https://en.wikipedia.org/wiki/Interface_segregation_principle

and is the kind of thing described in a recent blog here:

 http://code.joejag.com/2016/anti-if-the-missing-patterns.html

 "Any time you see this you actually have two methods bundled into one.
  That boolean represents an opportunity to name a concept in your code."
2016-06-12 22:09:27 +02:00
Stephen Kelly 54c65d5fb2 cmake: Extract DisplayMessage API. 2016-06-12 22:08:47 +02:00
Stephen Kelly ea5324cd4b cmMakefile: Port messages for compile features to cmake 2016-06-12 19:01:45 +02:00
Stephen Kelly df8c3130d6 cmGlobalGenerator: Don't use cmMakefile::IssueMessage after configure 2016-06-12 19:01:45 +02:00
Stephen Kelly 946d1e50dc cmMakefile: Avoid IssueMessage after configure is finished 2016-06-12 19:01:45 +02:00
Stephen Kelly 096c7754b3 cmLocalGenerator: Store Backtrace for the directory
Don't rely on cmMakefile to provide that.  Use it to issue messages.
2016-06-12 19:01:45 +02:00
Stephen Kelly 0a4af0735f cmake: Issue message independent of cmMakefile definition
The makefile is only used when called by the cmMessageCommand, so inline
the use of it there.  It otherwise creates an undesirable dependency on
cmMakefile for issuing messages in the cmake instance, a violation of
the Interface Segregation Principle.

 https://en.wikipedia.org/wiki/Interface_segregation_principle

This also makes it more explicit that the variable definitions only
affect the message() command.  If an AUTHOR_WARNING is issued for any
other reason, it is not affected.  To affect that, it is necessary to
set the cache variable instead of the regular variable.

This is an unfortunate interface quirk, but one which can't be fixed
easily now.
2016-06-12 18:38:33 +02:00
Kitware Robot acf0c0f444 CMake Nightly Date Stamp 2016-06-12 00:01:09 -04:00
Daniel Pfeifer 757b0ff5dd Add missing braces around statements in header files 2016-06-11 09:49:00 +02:00
Kitware Robot d6e99fa834 CMake Nightly Date Stamp 2016-06-11 00:01:07 -04:00
Daniel Pfeifer a16bf141bc Add missing braces around statements.
Apply fixits of clang-tidy's readability-braces-around-statements
checker.
2016-06-10 18:36:24 +02:00
Daniel Scharrer 896ad251de Teach find_library and find_package to search lib32 paths (#11260)
Add a ``FIND_LIBRARY_USE_LIB32_PATHS`` global property analogous to the
``FIND_LIBRARY_USE_LIB64_PATHS`` property.  This helps find commands on
multilib systems that use ``lib32`` directories and either do not have
``lib`` symlinks or point ``lib`` to ``lib64``.
2016-06-10 11:09:16 -04:00
Tobias Hunger 63c0e92c93 cmState: Expose list of properties of values in the cache 2016-06-10 09:33:41 -04:00
Tobias Hunger 6eee24634b cmCacheEntry: Retrieve all properties of cache entries 2016-06-10 09:33:41 -04:00
Tobias Hunger 120899c698 cmPropertyList: Add a way to retrieve all properties 2016-06-10 09:33:02 -04:00
Tobias Hunger 7066218e79 cmake: Kill cmake::CacheManager and its getter
This member variable is never initialized and has apparently moved
to cmState.
2016-06-10 09:27:59 -04:00
Tobias Hunger f62ed322dc cmLocalGenerator: Add GetTargetDefines to get all defines for a target 2016-06-10 09:24:49 -04:00
Brad King 853b1bb4ba cmLocalGenerator: Constify AppendDefines and AddCompileDefinitions 2016-06-10 09:24:11 -04:00
Brad King 98aafb2ad6 Merge topic 'refactor-cmLocalGenerator-flags'
d9613b96 cmLocalGenerator: Move GetFrameworkFlags implementation to private helper
70d3bf85 cmLocalGenerator: Adopt GetFrameworkFlags method
de4ee088 cmCommonTargetGenerator: De-duplicate CMAKE_BUILD_TYPE lookup
2016-06-10 09:10:04 -04:00
Brad King 1bde72a390 Merge topic 'cmake-gui-osx-symlink-qt5-plugin'
f2840155 cmake-gui: Teach Qt5 where plugins are when launched through a symlink
2016-06-10 09:09:47 -04:00
Kitware Robot 1f9b35da10 CMake Nightly Date Stamp 2016-06-10 00:01:06 -04:00
Robert Maynard f28401554a cmake-gui: Teach Qt5 where plugins are when launched through a symlink
When we are on OSX and we are launching cmake-gui from a symlink, the
application will fail to launch as it can't find the qt.conf file which
tells it what the name of the plugin folder is. We need to add this path
BEFORE the application is constructed as that is what triggers the
searching for the platform plugins
2016-06-09 13:21:27 -04:00
Tobias Hunger d9613b962e cmLocalGenerator: Move GetFrameworkFlags implementation to private helper 2016-06-09 10:41:42 -04:00
Tobias Hunger 70d3bf8580 cmLocalGenerator: Adopt GetFrameworkFlags method
Move it from cmCommonTargetGenerator.
2016-06-09 10:39:57 -04:00
Brad King 8f3bd1f454 Merge topic 'ninja-no-ranlib-windows'
ea598671 Run ranlib on archives only if the tool is available
2016-06-09 09:18:28 -04:00
Brad King c21397b2df Merge topic 'refactor-cmLocalGenerator-flags'
b0d3e693 cmLocalGenerator: Pass configuration to GetTargetFlags
2016-06-09 09:18:26 -04:00
Brad King 065bb0ffeb Merge topic 'small-cleanups'
9f25fc4d Prefer std::ostream& over derivatives as parameters
f9cc43ea cmake: remove unnused member Verbose
6e658085 cmake: Fix constness of methods
87ffd76d cmake: Make internal method file static
fa169fe8 Parser: Merge identical conditions
2016-06-09 09:18:23 -04:00
Brad King 01632c2552 Merge topic 'xmlwriter'
e9da5192 CPack/PackageMaker: port to cmXMLWriter
2016-06-09 09:18:21 -04:00
Daniel Pfeifer e9da5192e5 CPack/PackageMaker: port to cmXMLWriter 2016-06-09 09:16:34 -04:00
Kitware Robot 3969994758 CMake Nightly Date Stamp 2016-06-09 00:01:07 -04:00
Daniel Pfeifer 9f25fc4dbb Prefer std::ostream& over derivatives as parameters 2016-06-08 23:08:40 +02:00
Daniel Pfeifer f9cc43ea37 cmake: remove unnused member Verbose 2016-06-08 23:08:33 +02:00
Stephen Kelly 6e65808516 cmake: Fix constness of methods 2016-06-08 23:08:29 +02:00
Stephen Kelly 87ffd76d1a cmake: Make internal method file static 2016-06-08 23:08:24 +02:00
Stephen Kelly fa169fe8a7 Parser: Merge identical conditions 2016-06-08 23:08:14 +02:00
Tobias Hunger de4ee088e7 cmCommonTargetGenerator: De-duplicate CMAKE_BUILD_TYPE lookup 2016-06-08 16:41:41 -04:00
Tobias Hunger b0d3e693f1 cmLocalGenerator: Pass configuration to GetTargetFlags
Move the configuration lookup to call sites.  This will allow
multi-configuration callers to use the method.
2016-06-08 16:18:31 -04:00
Brad King 8632251b25 Merge topic 'find_path-in-framework'
188baef0 find_path: Fix location of <dir/header.h> in a framework on OS X
2016-06-08 12:56:00 -04:00
Brad King 5572f5fffd Merge topic 'clang-format-again'
ff08a80a Source/CPack: Run clang-format to fix style
3b284432 Tests/FindOpenCL: Run clang-format to fix style
2016-06-08 12:55:58 -04:00
Brad King ea59867187 Run ranlib on archives only if the tool is available
CMakeFindBinUtils sets CMAKE_RANLIB to `:` if it is not available in
order to get a no-op.  This does not work on a Windows host build
environment that runs commands in `cmd` instead of `sh`.  Teach the
Ninja and Makefile generators to simply skip the command if it is `:`.

This this was already done by the Makefile generator since commit
v2.6.0~3161 (BUG: Do not write link script lines that use the ':',
2006-06-18), but only when using a link script.

Reported-by: Michael Jäntsch <Michael.Jaentsch@gmx.de>
2016-06-08 12:00:44 -04:00
Kitware Robot 1cfc750150 CMake Nightly Date Stamp 2016-06-08 00:01:07 -04:00
Harry Mallon 188baef00c find_path: Fix location of <dir/header.h> in a framework on OS X
After finding it in `foo.Framework/Headers/dir/header.h`, we should
report the `foo.Framework/Headers` directory, not
`foo.Framework/Headers/dir`, because the former is what actually
contains the path the caller wishes to include.
2016-06-07 09:04:35 -04:00
Brad King ff08a80af1 Source/CPack: Run clang-format to fix style 2016-06-07 08:41:16 -04:00
Brad King 633d99dc62 Merge topic 'remove-c_str'
fa277b29 Remove c_str() calls from stream arguments.
ba5fb165 call static cmOutputConverter::GetFortranFormat without object
2016-06-07 08:34:04 -04:00
Kitware Robot 14de21d7d2 CMake Nightly Date Stamp 2016-06-07 00:01:07 -04:00
Daniel Pfeifer fa277b29e4 Remove c_str() calls from stream arguments.
Mostly automated:

git grep -l '.c_str() <<' | xargs sed -i 's|\.c_str() <<| <<|g'
2016-06-06 23:53:32 +02:00
Daniel Pfeifer ba5fb16519 call static cmOutputConverter::GetFortranFormat without object 2016-06-06 23:32:38 +02:00
Brad King d546456765 Merge topic 'productbuild'
63e5eb5f Help: Add notes for 'productbuild' topic
2e3c67d1 productbuild: Add new productbuild cpack generator.
50a3d340 PackageMaker: factor out common code for creating pkg files.
2016-06-06 11:19:20 -04:00
Kitware Robot fc45ecfc50 CMake Nightly Date Stamp 2016-06-06 00:01:05 -04:00
Kitware Robot 1503a67bf4 CMake Nightly Date Stamp 2016-06-05 00:01:05 -04:00
Kitware Robot 6a22a7cf71 CMake Nightly Date Stamp 2016-06-04 00:01:05 -04:00
Clinton Stimpson 2e3c67d1b6 productbuild: Add new productbuild cpack generator.
This cpack generator basically replaces the obsolete PackageMaker generator.
2016-06-03 14:41:57 -06:00
Brad King 0663dbf133 Merge topic 'minor-cleanups'
f6c21894 Modules: Rename internal platform-specific compiler determination modules
0c7951a9 cmLocalGenerator: Consolidate conditions in AddArchitectureFlags
2016-06-03 10:45:59 -04:00
Brad King 9d16f64048 Merge topic 'fix-TARGET_PROPERTY-LOCATION-crash'
f500a784 Fix crash on $<TARGET_PROPERTY:...,LOCATION> genex (#16134)
2016-06-03 10:45:57 -04:00
Brad King 3d6638471a Merge topic 'size-empty'
c6220de2 Use the empty() method to check for emptyness.
2016-06-03 10:45:52 -04:00
Brad King 811831a958 Merge topic 'simplify-boolean-expressions'
7f6b8d33 Simplify boolean expressions
2016-06-03 10:45:40 -04:00
Kitware Robot 8b289db739 CMake Nightly Date Stamp 2016-06-03 00:01:19 -04:00
Daniel Pfeifer c6220de276 Use the empty() method to check for emptyness.
Apply fix-its from clang-tidy's readability-container-size-empty
checker.
2016-06-02 21:35:50 +02:00
Brad King 7e8cfb9549 Merge branch 'fix-TARGET_PROPERTY-LOCATION-crash' into release 2016-06-02 11:08:09 -04:00
Brad King f500a784d0 Fix crash on $<TARGET_PROPERTY:...,LOCATION> genex (#16134)
Policy CMP0026 deprecated the LOCATION property, and we have long
provided a $<TARGET_FILE:...> generator expression.  However, if
a project tries to use $<TARGET_PROPERTY:...,LOCATION> we should
at least not crash.

The compatibility implementation of the LOCATION property uses
cmGlobalGenerator::CreateGenerationObjects to create the structures
needed to evaluate the property before generation starts.  The
implementation assumed that accessing the property could only be done
during configuration (via the typical get_property command use case).
The $<TARGET_PROPERTY:...,LOCATION> genex causes the LOCATION property
to be accessed during generation.  Calling CreateGenerationObjects
during generation blows away all the objects currently being used for
generation and is not safe.  Add a condition to call it only when
configuration is not finished.
2016-06-02 10:58:38 -04:00
Brad King 0c7951a939 cmLocalGenerator: Consolidate conditions in AddArchitectureFlags
Make room for possible future non-Apple architecture flags.
2016-06-02 09:47:32 -04:00
Brad King f1ff6301ea Merge topic 'minor-cleanups'
2175e5bf cmGlobalGenerator: Make IsMultiConfig() const
2016-06-02 09:44:53 -04:00
Brad King c6bcb6fa1e Merge topic 'bin-dir-option'
18bfbc97 Add option to control 'bin' directory of CMake's own installation (#16076)
2016-06-02 09:44:48 -04:00
Daniel Pfeifer 7f6b8d3399 Simplify boolean expressions
Use clang-tidy's readability-simplify-boolean-expr checker.
After applying the fix-its, revise all changes *very* carefully.
Be aware of false positives and invalid changes.
2016-06-02 08:24:04 -04:00
Kitware Robot 34d07d7ccc CMake Nightly Date Stamp 2016-06-02 00:01:10 -04:00
Clinton Stimpson 50a3d34005 PackageMaker: factor out common code for creating pkg files. 2016-06-01 21:56:50 -06:00
Tobias Hunger 2175e5bfa5 cmGlobalGenerator: Make IsMultiConfig() const 2016-06-01 11:12:58 -04:00
Nicolas BUNEL 18bfbc972f Add option to control 'bin' directory of CMake's own installation (#16076)
Add a `CMAKE_BIN_DIR` cache entry to CMake's own build configuration.
Add a `--bindir` option to the `bootstrap` script to set it.
2016-06-01 11:12:36 -04:00
Brad King d6754d37d5 Begin post-3.6 development 2016-06-01 10:59:26 -04:00
Brad King 91f6e7904a CMake 3.6.0-rc1 version update 2016-06-01 10:57:43 -04:00
Brad King 4062d6d694 Merge topic 'minor-cleanups'
bd4fef64 cmSourceFileLocation: Fix typo in comment
814e774e cmSearchPath: Fix typo in comment
2016-06-01 09:04:48 -04:00
Tobias Hunger bd4fef6406 cmSourceFileLocation: Fix typo in comment 2016-06-01 08:33:48 -04:00
Tobias Hunger 814e774eff cmSearchPath: Fix typo in comment 2016-06-01 08:33:35 -04:00
Kitware Robot adc7fcd013 CMake Nightly Date Stamp 2016-06-01 00:01:07 -04:00
Kitware Robot 88ede8e5ea CMake Nightly Date Stamp 2016-05-31 00:01:06 -04:00
Kitware Robot 8afadaa5b2 CMake Nightly Date Stamp 2016-05-30 00:01:05 -04:00
Kitware Robot e0fbd95f06 CMake Nightly Date Stamp 2016-05-29 00:01:05 -04:00
Kitware Robot 797a332a61 CMake Nightly Date Stamp 2016-05-28 00:01:06 -04:00
Brad King fb1f5d50af Merge topic 'remove-needless-copies'
27ead963 Remove unnecessary local copies.
618fb23f Pass arguments that are not modified as const&.
2016-05-27 09:08:21 -04:00
Brad King 82c286393a Merge topic 'remove-needless-c_str'
1b2bb933 Remove redundant c_str() calls.
2016-05-27 09:08:18 -04:00
Kitware Robot fdb474d456 CMake Nightly Date Stamp 2016-05-27 00:01:07 -04:00
Daniel Pfeifer 1b2bb93302 Remove redundant c_str() calls.
Run clang-tidy's readability-redundant-string-cstr checker.
Ignore findings in kwsys.
2016-05-26 22:52:22 +02:00
Daniel Pfeifer 27ead96305 Remove unnecessary local copies.
Use clang-tidy's performance-unnecessary-copy-initialization checker.
After applying the fix-its (which turns the copies into const&), revise
the changes and see whether the copies can be removed entirely by using
the original instead.
2016-05-26 22:21:15 +02:00
Daniel Pfeifer 618fb23fc9 Pass arguments that are not modified as const&.
Use clang-tidy's performance-unnecessary-value-param checker to find
value parameter declarations of expensive to copy types that are not
modified inside the function.  Ignore findings in kwsys.
After applying the fix-its, manually change `const T&` to `T const&`.
2016-05-26 21:58:51 +02:00
Brad King 36d9a01a31 Merge topic 'try_compile-custom-variables'
d256ba07 try_compile: Optionally forward custom platform variables to test project
fb4791b3 cmCoreTryCompile: Refactor forwarding of variables to test project
2016-05-26 09:52:12 -04:00
Brad King 67cc866877 Merge topic 'fix-variable-watch-leak'
75e3e0d3 cmVariableWatch: Fix potential memory leak
2016-05-26 09:52:09 -04:00
Brad King 579185be7a Merge topic 'cpack-dmg-no-app-link'
3acc29fc CPack/DragNDrop: Optionally disable `/Applications` symlink
2016-05-26 09:52:07 -04:00
Brad King 2a028b7898 Merge topic 'style-cmSystemTools'
8e801eb5 cmSystemTools: Fix indentation typo
2016-05-26 09:52:02 -04:00
Kitware Robot 0746a4c62c CMake Nightly Date Stamp 2016-05-26 00:03:52 -04:00
Brad King 75e3e0d3dc cmVariableWatch: Fix potential memory leak
Teach cmVariableWatch::AddWatch to own the Pair it allocates until
it needs to pass ownership to WatchMap.
2016-05-25 09:58:36 -04:00
Harry Mallon 3acc29fca9 CPack/DragNDrop: Optionally disable `/Applications` symlink 2016-05-25 09:51:04 -04:00
Brad King d256ba078a try_compile: Optionally forward custom platform variables to test project
Add a `CMAKE_TRY_COMPILE_PLATFORM_VARIABLES` variable to specify a list
of custom variables to be forwarded to a `try_compile` test project.
This will be useful for platform information modules or toolchain files
to forward some platform-specific set of variables from the host project
(perhaps set in its cache) to the test project so that it can build the
same way.
2016-05-25 09:36:19 -04:00
Brad King fb4791b37c cmCoreTryCompile: Refactor forwarding of variables to test project
De-duplicate the logic that constructs the cmake `-D` flag used to pass
variables into the test project cache.  Also subsume variables that were
propagated by generating `set()` commands in the project and pass them
as cache entries instead.
2016-05-25 09:36:19 -04:00
Brad King 6052e4b3bf Merge topic 'improve-character-find-and-replace'
5784747d Improve string find: prefer character overloads.
5cec953e Use std::replace for replacing chars in strings.
2a1a2033 cmExtraEclipseCDT4Generator: use std::replace.
34bc6e1f cmCTestScriptHandler: don't call find repeatedly.
2016-05-25 09:34:29 -04:00
Brad King 916d52533e Merge topic 'standard-include-directories'
c1340827 Add a variable to specify language-wide system include directories
44199097 cmMakefile: Optimize AddSystemIncludeDirectories for empty set
a896043b GHS: Compute include directories consistently with other generators
2016-05-25 09:34:24 -04:00
Brad King 2bc55b69db Merge topic 'output-converter-enums'
25d1ef64 Use enums defined in cmOutputConverter using their fully qualified name.
2016-05-25 09:34:19 -04:00
Brad King c13408279f Add a variable to specify language-wide system include directories
Create a `CMAKE_<LANG>_STANDARD_INCLUDE_DIRECTORIES` variable to specify
system include directories for for `<LANG>` compiler command lines.
This plays a role for include directories as the existing
`CMAKE_<LANG>_STANDARD_LIBRARIES` variable does for link libraries.
2016-05-25 09:30:31 -04:00
Brad King 8e801eb517 cmSystemTools: Fix indentation typo 2016-05-25 09:27:54 -04:00
Daniel Pfeifer 25d1ef6424 Use enums defined in cmOutputConverter using their fully qualified name.
Mostly automated:

values=("RelativeRoot" "NONE" "FULL" "HOME" "START" "HOME_OUTPUT" "START_OUTPUT"
        "OutputFormat" "UNCHANGED" "MAKERULE" "SHELL" "WATCOMQUOTE" "RESPONSE"
        "FortranFormat" "FortranFormatNone" "FortranFormatFixed" "FortranFormatFree")
for i in "${values[@]}"; do git grep -l cmLocalGenerator::$i | xargs sed -i "s|cmLocalGenerator::$i|cmOutputConverter::$i|g"; done
2016-05-25 09:20:09 -04:00
Kitware Robot d5ccab37b3 CMake Nightly Date Stamp 2016-05-25 00:01:07 -04:00
Daniel Pfeifer 5784747d1b Improve string find: prefer character overloads.
Apply fix-its from clang-tidy's performance-faster-string-find checker.
Ignore findings in kwsys.
2016-05-24 23:22:24 +02:00
Daniel Pfeifer 5cec953e6a Use std::replace for replacing chars in strings.
Find uses of `cmSystemTools::ReplaceString` where both `replace` and
`with` are string literals with a size of one.

Automate with:

git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\(.\)\", \"\(.\)\");|std::replace(\1.begin(), \1.end(), '\2', '\3');|g"
git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\(.\)\", \"\\\\\\\\\");|std::replace(\1.begin(), \1.end(), '\2', '\\\\\\\\');|g"
git grep -l ReplaceString | xargs sed -i "s|cmSystemTools::ReplaceString(\([^,]*\), \"\\\\\\\\\", \"\(.\)\");|std::replace(\1.begin(), \1.end(), '\\\\\\\\', '\2');|g"
2016-05-24 23:22:20 +02:00
Daniel Pfeifer 2a1a2033af cmExtraEclipseCDT4Generator: use std::replace. 2016-05-24 23:22:16 +02:00
Daniel Pfeifer 34bc6e1f3b cmCTestScriptHandler: don't call find repeatedly.
Also, prefer the character overload.
2016-05-24 23:22:08 +02:00
Brad King a98a699987 Merge topic 'cpack-deb-different-package-names'
adbd3985 CPack/Deb possibility to change package name
2016-05-24 13:54:03 -04:00
Brad King f77a49ff30 Merge topic 'cpackifw-updates'
06ca7795 CPackIFW: Command cpack_ifw_configure_component learned ESSENTIAL option
222fa595 CPackIFW: Doc decoration
2016-05-24 13:53:53 -04:00
Brad King 4419909756 cmMakefile: Optimize AddSystemIncludeDirectories for empty set
Do not bother looping over all targets if we have no system include
directories to add anyway.
2016-05-24 11:40:35 -04:00
Brad King a896043bac GHS: Compute include directories consistently with other generators
All generators use cmLocalGenerator::GetIncludeDirectories to construct
the final list of include directories for a target.
2016-05-24 11:40:35 -04:00
Kitware Robot ecb4ad2aa2 CMake Nightly Date Stamp 2016-05-24 00:01:36 -04:00
Domen Vrankar adbd3985f8 CPack/Deb possibility to change package name
This patch preserves backward compatibility of
deb package names with previous CMake versions
but similarly to CPack/RPM allows to change
package name format and supports DEB-DEFAULT
setting that produces proper Debian package names.
2016-05-23 19:55:46 +02:00