Commit Graph

20855 Commits

Author SHA1 Message Date
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 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 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 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 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