Commit Graph

24155 Commits

Author SHA1 Message Date
Brad King
8bd3e13ec3 Merge topic 'export-android-mk'
b6d68766 Android.mk: Fix export of static libraries with PRIVATE dependencies
56e16885 Android.mk: Evaluate generator expressions up front

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1766
2018-02-15 08:42:47 -05:00
Kitware Robot
cbdec57937 CMake Nightly Date Stamp 2018-02-15 00:01:08 -05:00
Brad King
b6d68766b1 Android.mk: Fix export of static libraries with PRIVATE dependencies
The `LINK_ONLY` generator expression is used to represent private
dependencies of static libraries in their `INTERFACE_LINK_LIBRARIES`
property value.  Fix evaluation of generator expressions during export
to support the `LINK_ONLY` genex.  Extend the RunCMake.AndroidMK test
with a case for this.
2018-02-14 11:24:05 -05:00
Brad King
56e1688517 Android.mk: Evaluate generator expressions up front
When exporting `INTERFACE_LINK_LIBRARIES`, we must evaluate generator
expressions first, before expanding the `;` list, in case they contain
or generate semicolons.
2018-02-14 11:19:47 -05:00
Brad King
ead859f50c Merge topic 'ninja-cmd'
22e8b3af Ninja: Generate scripts for long custom command sequences

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1604
2018-02-14 09:43:38 -05:00
Brad King
7593c9ce8c Merge topic 'const-members'
b721b9a3 cmVisualStudio10TargetGenerator: Make some data members const; simplify

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1750
2018-02-14 09:36:17 -05:00
Kitware Robot
d870148537 CMake Nightly Date Stamp 2018-02-14 00:01:12 -05:00
Brad King
58c637643d Merge topic 'more-misc-typos'
193082a3 MAINT: Misc. typos

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1758
2018-02-13 11:28:31 -05:00
luz.paz
193082a3c8 MAINT: Misc. typos
Found via `codespell -q 3 -I ../cmake-whitelist.txt`.
2018-02-13 11:24:30 -05:00
Brad King
16c6764f9b Merge topic '17711-reset-xcode-target-var'
4349393d cmGlobalXCodeGenerator: Properly initialize TARGETS variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1757
2018-02-13 11:17:25 -05:00
Brad King
31550ebf31 Merge topic 'autogen-write-on-change-only'
c85ef9c3 Autogen: Overwrite info files when changed only

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1753
2018-02-13 11:12:14 -05:00
Gregor Jasny
4349393d1d cmGlobalXCodeGenerator: Properly initialize TARGETS variable
Fixes: #17711
2018-02-13 11:02:24 -05:00
Kitware Robot
ab8416776d CMake Nightly Date Stamp 2018-02-13 00:01:07 -05:00
Kitware Robot
0465d3c204 CMake Nightly Date Stamp 2018-02-12 00:01:11 -05:00
Kitware Robot
e24cda008e CMake Nightly Date Stamp 2018-02-11 00:01:05 -05:00
Kitware Robot
1f39bfad47 CMake Nightly Date Stamp 2018-02-10 00:01:12 -05:00
Kitware Robot
b0c3696205 CMake Nightly Date Stamp 2018-02-09 00:01:06 -05:00
Kitware Robot
1da3f3e916 CMake Nightly Date Stamp 2018-02-08 00:01:12 -05:00
Kitware Robot
5656ebc87c CMake Nightly Date Stamp 2018-02-07 00:01:05 -05:00
Roger Leigh
22e8b3af04 Ninja: Generate scripts for long custom command sequences
Ninja runs just one command line for every build statement, so the Ninja
generator needs to `&&`-chain multiple commands together into one long
string.  For long custom command sequences this can exceed the maximum
command-line length for the operating system.  In such cases, write the
commands out to a script instead, and then run the script from Ninja's
one command line.

Co-Author: Brad King <brad.king@kitware.com>
Fixes: #15612
2018-02-06 13:24:46 -05:00
Sebastian Holtermann
c85ef9c339 Autogen: Overwrite info files when changed only
Check if the content of the AUTOMOC/UIC/RCC info file
will change before overwriting it. This avoids unnecessary
AUTORCC rebuilds when AUTORCC unrelated CMake settings change.
2018-02-06 11:20:08 -05:00
Kitware Robot
f7c08c333b CMake Nightly Date Stamp 2018-02-06 00:01:07 -05:00
Vitaly Stakhovsky
b721b9a381 cmVisualStudio10TargetGenerator: Make some data members const; simplify 2018-02-05 19:50:54 -05:00
Brad King
f211193afe Begin post-3.11 development 2018-02-05 11:40:43 -05:00
Brad King
51b287c40c CMake 3.11.0-rc1 version update 2018-02-05 11:16:50 -05:00
Brad King
213ecf05d6 Merge topic 'autogen-improve-multi-config'
a8ee7406 Autogen: Improved multi-config include scheme

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1735
2018-02-05 08:43:05 -05:00
Brad King
4d9ccd0abd Merge topic 'vs-static-ConvertToWindowsSlash'
6d148d6d cmVisualStudio10TargetGenerator: Limit scope of ConvertToWindowsSlash()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1741
2018-02-05 08:41:52 -05:00
Kitware Robot
30ee1dc7b0 CMake Nightly Date Stamp 2018-02-05 00:01:09 -05:00
Kitware Robot
b4a06e2cf7 CMake Nightly Date Stamp 2018-02-04 00:01:09 -05:00
Kitware Robot
09d7ed20df CMake Nightly Date Stamp 2018-02-03 00:01:12 -05:00
Brad King
457bcbd4f9 Merge topic 'simplify-ccg-converter'
df1693bd cmCustomCommandGenerator: Simplify cmOutputConverter access

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1738
2018-02-02 07:24:07 -05:00
Brad King
52ed76e46e Merge topic 'ninja-unused-device-link'
20676cba Ninja: Remove unused device link line code

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1737
2018-02-02 07:23:08 -05:00
Brad King
d280327713 Merge topic 'update-kwsys'
be46f9fb Merge branch 'upstream-KWSys' into update-kwsys
854feacc KWSys 2018-02-01 (04fcc449)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1736
2018-02-02 07:22:40 -05:00
Sebastian Holtermann
a8ee7406a7 Autogen: Improved multi-config include scheme
For multi configuration generators AUTOMOC generates the
moc files that are included in `mocs_compilation.cpp`
in `AUTOGEN_BUILD_DIR/include_$<CONFIG>/`. By doing so each
configuration reads different moc files when compiling
`mocs_compilation.cpp`. Since we do not (need to) rewrite
`mocs_compilation.cpp` on a configuration change anymore,
the files also does not need to be recompiled anymore.
Not having to rewrite and recompile `mocs_compilation.cpp`
on a configuration change anymore was the main objective of
this patch.

In a similar fashion AUTORCC generates a `qrc_BASE_CMAKE.cpp`
file below `AUTOGEN_BUILD_DIR/include_$<CONFIG>/` and
`qrc_BASE.cpp` becomes a mere wrapper that includes this
actuall rcc output file (when using multi configuration
generators).

The template files `Modules/AutoRccInfo.cmake.in` and
`Modules/AutogenInfo.cmake.in` were removed in favor
of writing the info `.cmake` files manually.

Closes #17230
2018-02-02 09:10:40 +01:00
Kitware Robot
a53697acc7 CMake Nightly Date Stamp 2018-02-02 00:01:06 -05:00
Vitaly Stakhovsky
6d148d6d53 cmVisualStudio10TargetGenerator: Limit scope of ConvertToWindowsSlash()
It is no longer used outside this class, so its scope can be limited to file.
2018-02-01 19:09:34 -05:00
Brad King
df1693bdfc cmCustomCommandGenerator: Simplify cmOutputConverter access
In commit v3.4.0-rc1~480^2~3 (cmCustomCommandGenerator: Port to
cmOutputConverter, 2015-06-04), cmCustomCommandGenerator's access to the
local generator was removed so it needed to construct its own
cmOutputConverter instance.  Access to the local generator was then
restored by commit v3.4.0-rc1~285^2~21 (cmCustomCommandGenerator:
Require cmLocalGenerator in API, 2015-07-25), so now we can use its
cmOutputConverter base class methods directly.
2018-02-01 14:58:25 -05:00
Brad King
20676cbaca Ninja: Remove unused device link line code
Remove the `PRE_LINK` and `POST_BUILD` variables.  They are not
referenced by `WriteDeviceLinkRule`.

Remove the `byproducts` local variable from `WriteDeviceLinkStatement`
and all the code populating it.  We never used the result.
2018-02-01 14:36:09 -05:00
Brad King
be46f9fb6e Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2018-02-01 (04fcc449)
2018-02-01 08:15:44 -05:00
Brad King
f8ca0ab3ac Merge topic 'std-string-apis'
653b8946 Reduce raw string pointers usage.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1729
2018-02-01 08:05:33 -05:00
Brad King
8cb92c25d7 Merge topic 'perf-from-callgrind'
901c4a1e cmExpandedCommandArgument: add an overload for const char*
88ed556d cmGeneratorTarget: make keyword strings const
14a13d30 cmGeneratorExpressionLexer: only tokenize strings with a '$'
f2b8d67f cmTarget: use static strings for special property names
6dfd0f92 cmGeneratorExpressionNode: avoid some strlen in $<TARGET_PROPERTY>
f9235fd4 cmAddCustomCommandCommand: use std::string const& for FileIsFullPath
c0e7a137 cmAddCustomCommandCommand: store keywords in strings

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1689
2018-02-01 08:03:13 -05:00
Kitware Robot
70695e72a6 CMake Nightly Date Stamp 2018-02-01 00:01:10 -05:00
Ben Boeckel
901c4a1e05 cmExpandedCommandArgument: add an overload for const char*
Static string comparisons were causing heap allocations just for a
comparison.
2018-01-31 11:04:36 -05:00
Ben Boeckel
88ed556d99 cmGeneratorTarget: make keyword strings const 2018-01-31 11:04:36 -05:00
Ben Boeckel
14a13d30ee cmGeneratorExpressionLexer: only tokenize strings with a '$'
In standard libraries, `std::string::find` is usually implemented using
vectorized code. Since the Tokenize method iterates
character-by-character, doing an initial check using `find` improves
performance.
2018-01-31 11:04:36 -05:00
Ben Boeckel
f2b8d67f19 cmTarget: use static strings for special property names
Similar to 660769151a, the `SetProperty`
side is showing up in performance listings due to string comparisons.
2018-01-31 11:04:35 -05:00
Ben Boeckel
6dfd0f9294 cmGeneratorExpressionNode: avoid some strlen in $<TARGET_PROPERTY> 2018-01-31 11:04:35 -05:00
Ben Boeckel
f9235fd474 cmAddCustomCommandCommand: use std::string const& for FileIsFullPath 2018-01-31 11:04:35 -05:00
Ben Boeckel
c0e7a13702 cmAddCustomCommandCommand: store keywords in strings
Callgrind indicated that `strlen` was being called a lot of times here
due to the string comparisons. Since keywords are "sparse" in
`add_custom_command`, use a hash comparison to handle keywords and then
use strings for comparison since they have a built-in length parameter.
2018-01-31 11:03:51 -05:00
Pavel Solodovnikov
653b894683 Reduce raw string pointers usage.
* Change some functions to take `std::string` instead of
  `const char*` in the following classes: `cmMakeFile`, `cmake`,
  `cmCoreTryCompile`, `cmSystemTools`,  `cmState`, `cmLocalGenerator`
  and a few others.
* Greatly reduce using of `const char*` overloads for
  `cmSystemTools::MakeDirectory` and `cmSystemTools::RelativePath`.
* Remove many redundant `c_str()` conversions throughout the code.
2018-01-31 18:23:03 +03:00