Commit Graph

20803 Commits

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