Commit Graph

611 Commits

Author SHA1 Message Date
Brad King
08f66764b3 Merge topic 'server-target-isGeneratorProvided'
afd9a339 server: return whether or not a target is generator provided

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1475
2017-11-27 08:52:06 -05:00
Brad King
0c1912e3e5 Merge topic 'serverFixTestDiscovery'
fe2c2b0f server: ctestInfo fix to return all tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1479
2017-11-27 08:51:35 -05:00
Justin Goshi
afd9a339a1 server: return whether or not a target is generator provided
Some generators auto-generate targets. For example VS generators create
the ALL_BUILD target. Add the ability to mark targets as generator
provided and return that info through cmake-server codemodel.
2017-11-20 14:29:50 -05:00
Justin Goshi
fe2c2b0ffb server: ctestInfo fix to return all tests
Prior to this change we were looking at targets. But tests are
associated with directories. This change fixes how we gather all tests.
2017-11-17 09:19:26 -08:00
Aaron Orenstein
4a6348dbbd Performance: Improve efficiency of source file lookup in cmMakefile
This reintroduces the change from commit v3.10.0-rc1~69^2 (Performance:
Improve efficiency of source file lookup in cmMakefile, 2017-08-17) with
some corrections.  The original was rolled back by commit
v3.10.0-rc1~52^2~1 (Revert "Performance: ...", 2017-09-25) due to
incompatibilities found.  The rollback was followed-up by addition of a
test for the offending case, and this revision passes the test.
2017-11-17 10:25:41 -05:00
Brad King
1348f97784 Merge topic 'server-test-info'
35a52bd1 server: add "ctestInfo" request to get test info

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1414
2017-11-07 08:18:59 -05:00
Justin Goshi
35a52bd1b4 server: add "ctestInfo" request to get test info 2017-11-03 09:39:01 -07:00
luzpaz
777e87ae00 Fix trivial typos in text
Some are user facing.

Found using

    codespell -q 3 --skip="./Utilities" -I .cmake-whitelist.txt`

whereby the whitelist contained:

    ans
    dum
    helpfull
    emmited
    emmitted
    buil
    iff
    isnt
    nto
    ot
    pathes
    substract
    te
    todays
    upto
    whitespaces
2017-11-03 10:25:05 -04:00
Brad King
409527a03c CMP0037: De-duplicate check and message generation 2017-10-30 10:21:21 -04:00
Justin Goshi
296eb9ad4c cmake-server: Add target install destinations to codemodel
Protocol version is updated to 1.2 since this is a change
to what was released in cmake version 3.10.
2017-10-24 14:58:07 -04:00
Brad King
068effa4d8 Merge topic 'auto_ptr'
f0489856 Retire std::auto_ptr and its macro CM_AUTO_PTR

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Pavel Solodovnikov <hellyeahdominate@gmail.com>
Merge-request: !1300
2017-09-27 07:25:11 -04:00
Matthias Maennich
f0489856e3 Retire std::auto_ptr and its macro CM_AUTO_PTR
Signed-off-by: Matthias Maennich <matthias@maennich.net>
2017-09-26 00:07:19 +02:00
Brad King
1604716dfc Revert "Performance: Improve efficiency of source file lookup in cmMakefile"
This reverts commit 3b95ab5693.
It regressed some legacy source file property behavior.
Revert pending further investigation.
2017-09-25 09:06:24 -04:00
Aaron Orenstein
3b95ab5693 Performance: Improve efficiency of source file lookup in cmMakefile
Add an unordered map to cmMakefile to speed up GetSource() lookups.
2017-09-20 14:10:47 -04:00
Aaron Orenstein
e018880350 cmMakefile: Drop unused method 2017-09-20 14:10:45 -04:00
Sebastian Holtermann
1e6569c9f4 cmMakefile: Add GetOrCreateSourceGroup methods 2017-09-09 09:44:55 +02:00
Sebastian Holtermann
3e8b3e94dc cmMakefile: Collect source group methods in one place 2017-09-09 09:44:55 +02:00
Daniel Pfeifer
ca2233e31f IWYU: Mark cmConfigure.h with pragma: keep
Also remove `#include "cmConfigure.h"` from most source files.
2017-08-26 07:41:04 +02:00
Daniel Pfeifer
5962db4389 Use C++11 nullptr 2017-08-24 23:39:47 +02:00
Brad King
fc1aaf1432 Merge topic 'autogen-optimize-cleanup'
8e452e67 Remove AUTOGEN variables from cmSourceFile and cmMakefile
0f2e178f Autogen: Don't use cmMakefile::GetQtUiFilesWithOptions
13bb716f Autogen: Fix and extend SKIP_AUTOMOC test
727247c3 Autogen: Read skip files from makefile
1eb1b409 Autogen: Remove VS specific code exclusion
54ec2a8b Autogen: Initializer file type scanning optimizations
cf7b3b96 Autogen: Initializer optimizations and cleanups

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1171
2017-08-23 08:21:27 -04:00
Daniel Pfeifer
cbcfb79f9c Use C++11 unordered containers 2017-08-22 23:05:27 +02:00
Sebastian Holtermann
8e452e67e9 Remove AUTOGEN variables from cmSourceFile and cmMakefile 2017-08-22 19:10:32 +02:00
Daniel Pfeifer
b1ec5deaf1 Pass large types by const&, small types by value 2017-06-04 00:48:21 +02:00
Chuck Atkins
ef3d360a3d find_*: Add a new PackageRoot search path group
The new PackageRoot search path group allows the PackageName_ROOT cmake
and environment variables to be used as search prefixes for all find_*
commands called from within a find module
2017-05-16 15:19:40 -04:00
Daniel Pfeifer
d6f0006c0b Use CM_DISABLE_COPY 2017-04-24 22:03:06 +02:00
Daniel Pfeifer
d921e8eb6c cmMakefile::ScopePushPop: make noncopyable 2017-04-22 00:48:18 +02:00
Daniel Pfeifer
1d829c862c Use quotes for non-system includes
Automate with:

git grep -l '#include <cm_' -- Source \
  | xargs sed -i 's/#include <\(cm_.*\)>/#include "\1"/g'

git grep -l '#include <cmsys/' -- Source \
  | xargs sed -i 's/#include <\(cmsys\/.*\)>/#include "\1"/g'

git grep -l '#include <cm[A-Z]' -- Source \
  | xargs sed -i 's/#include <\(cm[A-Z].*\)>/#include "\1"/g'
2017-04-11 22:35:21 +02:00
Brad King
22829a1304 cmMakefile: Create an explicit "Object Libraries" source group
The generators should not need special logic to place object library
object files in this group.
2017-04-11 10:09:57 -04:00
Steven Newbury
462cf25427 Add support for x32-abi
Detect x32-abi through CMakeCompilerABI infrastruture and use this
information at runtime to determine the correct library paths with
`FIND_LIBRARY_USE_LIBX32_PATHS`.

Fixes: #15994
2017-03-07 15:22:55 -05:00
Gregor Jasny
33a1d727d5 Makefile: Allow adding post-build rules to object libraries 2017-02-22 17:05:17 +01:00
Ed Branch
7c8ab7ddc8 add_custom_{command,target}: Add COMMAND_EXPAND_LISTS option
This option allows lists generated by generator expressions to be expanded.

Closes: #15935
2017-01-13 20:02:16 -06:00
Brad King
ae1a6815b6 Features: Add infrastructure for C++ 17 language standard
Issue: #16468
2016-12-02 11:22:46 -05:00
Daniel Pfeifer
2e620f0b38 Fix several include-what-you-use findings 2016-11-08 09:42:04 -05:00
Daniel Pfeifer
1a74e71906 Introduce CM_UNORDERED_MAP
Avoid duplicating switch among std::unordered_map, cmsys::hash_map, and
std::map.
2016-10-24 09:58:52 -04:00
Stephen Kelly
e0a84904eb cmState: Split auxiliary classes into separate files
Port dependents to the new locations as needed.

Leave behind a cmState.h include in cmListFileCache to reduce noise. It
is removed in a following commit.
2016-10-19 15:40:59 +02:00
Stephen Kelly
cde6eb6249 cmState: Port dependent code to new cmStateSnapshot name 2016-10-19 15:40:59 +02:00
Stephen Kelly
2fe3e55d53 cmState: Move CacheEntryType enum to separate namespace
Port dependent code to the change.
2016-10-19 15:40:58 +02:00
Stephen Kelly
a49751fb2e cmState: Move TargetType enum to separate namespace 2016-10-19 15:40:58 +02:00
Brad King
1e6aaefdee Merge topic 'clean-up-link-configuration'
a1cfc4fe cmMakefile: Simplify programmer error to an assert
4079ba20 cmMakefile: Implement LinkLibraries as an internal property
17ab8e33 cmMakefile: Inline method into only remaining caller
7edfcd0e cmMakefile: Inline method into caller
6c8dc7f1 cmake: Simplify find-package mode library addition
1efca9f4 cmMakefile: Remove obsolete parameter
d9b5f0a3 cmTarget: Remove target name from parameter list
1c70c6cc cmMakefile: Use public API to find a target
2b7baed7 cmMakefile: Inline method into only caller
7ba95492 cmMakefile: Use public API to find a target
6d98b15f cmMakefile: Invert if() condition to remove else
869037ee cmMakefile: Remove ALIAS check
2f6462a6 cmMakefile: Collapse two consecutive if()s into one
148b83a1 cmMakefile: DeMorgan-invert condition
4457a9f1 cmMakefile: Return after error and remove else condition
4d039c5b cmMakefile: Invert handling of error condition
...
2016-10-10 10:23:45 -04:00
Stephen Kelly
c637e0c53b cmMakefile: Return a string from GetDefineFlags
Flip condition in GHS for readability.
2016-10-10 10:09:54 -04:00
Stephen Kelly
4079ba20d9 cmMakefile: Implement LinkLibraries as an internal property
cmMakefile should not have logic particular to individual cmake
commands.  The link_libraries() command is generally obsolete in favor
of target_link_libraries().  An alternative language for CMake probably
would not offer the former.  The quirks and historical behaviors of the
current language should be separate from the core classes of CMake to
allow replacing the language.
2016-10-07 22:07:50 +02:00
Stephen Kelly
17ab8e33f0 cmMakefile: Inline method into only remaining caller 2016-10-07 22:07:16 +02:00
Stephen Kelly
1efca9f427 cmMakefile: Remove obsolete parameter 2016-10-07 20:13:36 +02:00
Stephen Kelly
2b7baed719 cmMakefile: Inline method into only caller
cmMakefile should not have API which is only useful for deprecated
systems like cmPluginAPI.
2016-10-07 20:13:35 +02:00
Stephen Kelly
c8ec8d6a7e cmMakefile: Remove superfluous overload
Explicit is better than implicit.
2016-10-07 20:13:34 +02:00
Stephen Kelly
3e8d47d18b cmMakefile: Remove useless link directory container
It is never populated - a find will never find anything.
2016-10-07 20:13:33 +02:00
Brad King
86578eccf2 Simplify CMake per-source license notices
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool.  Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience.  Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.

Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices.  It also references version control
history for more precise information.  Therefore we no longer need to spell
out the list of Contributors in each source file notice.

Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing".  The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.

Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically.  Manually fix up shebang lines and trailing
newlines in a few files.  Manually update the notices in a few files that the
script does not handle.
2016-09-27 15:14:44 -04:00
Daniel Pfeifer
efed6468ed fix a load of include-what-you-use violations 2016-09-03 08:04:56 -04:00
Kulla Christoph
048d1adb4e add_custom_command: Add DEPFILE option for Ninja
Provide a way for custom commands to inform the ninja build tool about
their implicit dependencies.  For now simply make use of the option an
error on other generators.

Closes: #15479
2016-08-30 09:05:18 -04:00
Stephen Kelly
1462576bcb Parser: Port away from cmMakefile
It is an unneeded dependency.
2016-08-25 09:47:27 -04:00