Commit Graph

6356 Commits

Author SHA1 Message Date
Brad King 34975815a8 Merge topic 'autogen_moc_uic_single_job_queue'
58f04b6ecf Autogen: Add ManySources test
a3f062091f Autogen: Rename `cmQtAutoGeneratorMocUic` class to `cmQtAutoMocUic`
8cb26a0a2a Autogen: Factor out concurrency framework to cmWorkerPool class

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3224
2019-04-16 13:38:21 -04:00
Brad King fc4324a27c Merge topic 'Boost-Gentoo'
0b54f72e94 FindBoost: Fix detection with version suffixes on Gentoo

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3237
2019-04-16 13:34:41 -04:00
Rolf Eike Beer 0b54f72e94 FindBoost: Fix detection with version suffixes on Gentoo
The Gentoo case added by commit 1673923c30 (FindBoost: Add support for
Boost 1.67 with Python version suffixes, 2018-03-18, v3.11.0~3^2) left
out the `.` version component separator and instead duplicated the RPM
case.  Add the missing `.` now.

Fixes: #18743
2019-04-16 13:31:27 -04:00
Brad King 0793464d95 Merge topic 'ghs_custom'
2bae6a1346 GHS: Update tests and notes
3b415c60c1 GHS: Update ExternalProject for GHS tools
83c47ef5b8 GHS: Update project layout to accommodate gbuild inconsistencies
5d2e1404bd GHS: Update project layout to build targets correctly
b6bfa7eeb2 GHS: Support add_dependencies() command
39ee9718d9 GHS: Support add_custom_target() command
8d3dad9a76 GHS: Support add_custom_command( OUTPUT ) signature
37acc9e229 GHS: Update custom command build events

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Narendhar Manimohan <narendhar15@gmail.com>
Merge-request: !3119
2019-04-15 10:52:21 -04:00
Sebastian Holtermann 58f04b6ecf Autogen: Add ManySources test
The QtAutogen/ManySources test generates a number of source, header, .ui and
.qrc files that get AUTOMOC, AUTOUIC and AUTORCC processed.  This stresses the
concurrency framework in `cmQtAutoMocUic` and should reveal any issues
with that.
2019-04-15 16:07:14 +02:00
Brad King e3ebad7def Merge topic 'genex-target-prefix-suffix'
b70bac647d Genex: add $<TARGET_FILE_PREFIX:...> and $<TARGET_FILE_SUFFIX:...>
f65763fe9b Refactor: Add new methods to retrieve prefix and suffix

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3207
2019-04-12 10:22:33 -04:00
Brad King 4adc0b7c75 Merge topic 'iface-headers'
a40f9083dd INTERFACE Target: allow (PUBLIC/PRIVATE)_HEADER properties

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3181
2019-04-12 10:20:20 -04:00
Brad King f70367e4ed Merge topic 'cmSystemTools-StringToULong-negatives'
f0948499f6 cmSystemTools: Fix StringToULong to reject negative numbers

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3216
2019-04-12 07:58:52 -04:00
Brad King 680641a882 Merge topic 'xcode-extra-sources'
428c1e429f Xcode: Avoid mutating App Bundle targets during generation
b4385d5ccc Xcode: Factor out duplicate source group code into lambda

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3208
2019-04-12 07:23:31 -04:00
Fred Baksik 2bae6a1346 GHS: Update tests and notes
-- add new tests for custom commands
-- minor test cleanup

Fixes #15995
Fixes #18909
Fixes #15902
2019-04-11 13:15:51 -04:00
Fred Baksik 5d2e1404bd GHS: Update project layout to build targets correctly
-- Restructure projects and files to support proper building of targets
   Build order is determined by hierarchy of project files and folders
   Custom targets may have been run multiple times in the original file / folder structure
-- Default to build targets that are part of ALL target
-- List all known targets for this project
   Includes global targets for ALL_BUILD and INSTALL
-- Compute build order for building targets
2019-04-11 13:15:50 -04:00
Brad King f0948499f6 cmSystemTools: Fix StringToULong to reject negative numbers
Fixes: #19161
2019-04-11 12:56:32 -04:00
Avraham Shukron a40f9083dd INTERFACE Target: allow (PUBLIC/PRIVATE)_HEADER properties
Also support installing headers on an INTERFACE library.

Signed-off-by: Avraham Shukron <avraham.shukron@gmail.com>
Fixes: #15234
2019-04-11 11:09:42 -04:00
Brad King 7bad2464fc Merge branch 'xcode-extra-sources' into release-3.14
Merge-request: !3208
2019-04-11 10:35:49 -04:00
Brad King 428c1e429f Xcode: Avoid mutating App Bundle targets during generation
For `MACOSX_BUNDLE` targets we generate an `Info.plist` automatically
and add it to the sources presented to Xcode.  Avoid mutating the
original target's list of sources to achieve this.  Otherwise when we
generate the same target again (e.g. in a sub-project's Xcode file) it
will look different than the first time and possibly break invariants.

Fixes: #19114
2019-04-11 10:35:14 -04:00
Brad King a550e2d6e4 Merge topic 'test-autogen-GAT-generator'
06dab0f0e5 Tests: Fix Qt*Autogen.GlobalAutogenTarget to use matching generator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3210
2019-04-11 10:13:47 -04:00
Brad King 5ae15061c3 Merge topic 'test-explicit-dirs'
39e7fd8c68 Tests: Avoid enabling languages in RunCMake.CommandLine -S and -B cases
baed22c4b0 Tests: Fix RunCMake.CommandLine test to use generator with -S and -B
44d6370db3 Tests: Add RunCMake helper to run cmake with options
538721939f Tests: Teach RunCMake to optionally exclude the source dir argument

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3209
2019-04-11 10:12:32 -04:00
Marc Chevrier b70bac647d Genex: add $<TARGET_FILE_PREFIX:...> and $<TARGET_FILE_SUFFIX:...>
These capabilities complement MR !3190
and is also needed to solve issue #18771.
2019-04-10 23:45:12 +02:00
Brad King 06dab0f0e5 Tests: Fix Qt*Autogen.GlobalAutogenTarget to use matching generator
Build the GAT project with the same generator as the rest of the test.
This was accidentally left out of commit 8c8731b422 (Autogen: Add test
for CMAKE_GLOBAL_AUTOGEN/RCC_TARGET, 2018-11-11, v3.14.0-rc1~396^2~2).
2019-04-10 10:01:19 -04:00
Brad King 39e7fd8c68 Tests: Avoid enabling languages in RunCMake.CommandLine -S and -B cases
The test project does not compile any sources and so does not
need to enable any languages.
2019-04-10 09:40:48 -04:00
Brad King baed22c4b0 Tests: Fix RunCMake.CommandLine test to use generator with -S and -B
The `-S` and `-B` command-line option tests do generate build systems
and so should use the generator being tested.
2019-04-10 09:40:48 -04:00
Brad King 44d6370db3 Tests: Add RunCMake helper to run cmake with options 2019-04-10 09:40:48 -04:00
Brad King 538721939f Tests: Teach RunCMake to optionally exclude the source dir argument 2019-04-10 09:40:48 -04:00
Brad King 876680e94b Merge topic 'meta-feature_only_infer_granular_support'
613ac56e50 Add a test to verify meta-feature parity with granular features
b0f46c48f6 CompileFeatures: Now able to presume full language level support
646fb1a646 CompileFeatures: memoize C++ compilers with full language level support
0d641fcfad Tests: Remove outdated portion of CompileFeatures genex test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3176
2019-04-10 08:49:21 -04:00
Robert Maynard 613ac56e50 Add a test to verify meta-feature parity with granular features 2019-04-09 08:44:56 -04:00
Robert Maynard b0f46c48f6 CompileFeatures: Now able to presume full language level support
Previously compilers that only supported the meta-level flags
would not have any of the granular features listed. Now we
presume that they have full support and enable all the features.

Update granular feature tests to skip the actual compilation
checks for the presumed features.
2019-04-09 08:44:56 -04:00
Brad King 0d641fcfad Tests: Remove outdated portion of CompileFeatures genex test
The genex part of the test verifies that `$<COMPILE_FEATURES:...>`
evaluates as expected.  It does not need to actually try using code with
the associated features, as that is tested separately.
2019-04-09 08:44:56 -04:00
Brad King aa0692de67 Merge topic 'argument-parser'
b783e62533 cmExecuteProcessCommand: Port to cmArgumentParser
9bddb03f31 cmParseArgumentsCommand: Port to cmArgumentParser
45edf1ad66 Retire cmCommandArgumentsHelper
f5acecaa6f cmExportCommand: Port to cmArgumentParser
e6b6bb0618 cmInstallCommand: Port to cmArgumentParser
4336a29edd cmFileCommand: Port to cmArgumentParser
4359fe133b Introduce cmArgumentParser

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Leonid Pospelov <pospelovlm@yandex.ru>
Merge-request: !3137
2019-04-09 08:27:31 -04:00
Brad King 0e953e138b Merge topic 'implicit-includes-relative'
442f4c4902 Merge branch 'backport-implicit-includes-relative'
ef41d49812 Fix implicit include directory extraction for adaptive relative paths
6bc6fc2a7f Tests: Teach RunCMake.ParseImplicitIncludeInfo to match output by regex
82948805ec Tests: Clarify hand-written cases in RunCMake.ParseImplicitIncludeInfo

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3204
2019-04-09 07:59:52 -04:00
Sebastian Lipponer 698f51abac Genex: Add $<FILTER:list,INCLUDE|EXCLUDE,regex> 2019-04-08 19:57:22 +02:00
Brad King 442f4c4902 Merge branch 'backport-implicit-includes-relative' 2019-04-08 10:16:47 -04:00
Brad King ef41d49812 Fix implicit include directory extraction for adaptive relative paths
In some cases GCC reports *relative* implicit include directories.  They
are computed adaptively with respect to the current working directory
such that the effective implicit include directory is an unchanging
absolute path.  Teach our implicit include directory extraction to
recognize such paths and normalize them.

Fixes: #19133
2019-04-08 10:12:22 -04:00
Brad King 6bc6fc2a7f Tests: Teach RunCMake.ParseImplicitIncludeInfo to match output by regex 2019-04-08 10:12:22 -04:00
Brad King 82948805ec Tests: Clarify hand-written cases in RunCMake.ParseImplicitIncludeInfo 2019-04-08 10:11:54 -04:00
Marc Chevrier 1889ed923e Genex: Add capability to retrieve base name for various target artifacts
This new capability is required to solve efficiently issue #18771
2019-04-08 07:49:08 -04:00
Brad King a9b38a1757 cmRST: Fix crash on empty markup block 2019-04-05 08:18:14 -04:00
Regina Pfeifer f5acecaa6f cmExportCommand: Port to cmArgumentParser 2019-04-04 13:24:39 -04:00
Regina Pfeifer 4359fe133b Introduce cmArgumentParser 2019-04-04 13:24:39 -04:00
Brad King 0dfb056cd3 Merge topic 'pr.projectbefore'
0761186949 project: Add variable CMAKE_PROJECT_INCLUDE_BEFORE

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3175
2019-04-04 11:32:41 -04:00
Brad King d1c2f8787c Merge topic 'FindPython-handle-virtual-env'
8a2f62cc18 FindPython*: Add capability to control virtual env handling.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3173
2019-04-04 11:28:49 -04:00
Brad King a63a50c77a Merge topic 'remove_duplicates'
abbb8a7b1d Genex: Add $<REMOVE_DUPLICATES:list>
11338389e5 Help: Fix description in cmake-generator-expressions(7) manual

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3154
2019-04-04 11:27:28 -04:00
Brad King 058217669f Merge topic 'find-dependency-fix-17583'
37da6af17d find_dependency: Always search dependencies

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3161
2019-04-03 14:05:57 -04:00
Marc Chevrier 8a2f62cc18 FindPython*: Add capability to control virtual env handling.
Fixes: #19097
2019-04-03 09:16:17 +02:00
Sebastian Lipponer abbb8a7b1d Genex: Add $<REMOVE_DUPLICATES:list> 2019-04-01 21:52:17 +02:00
Ruslan Baratov 0761186949 project: Add variable CMAKE_PROJECT_INCLUDE_BEFORE 2019-04-01 20:30:19 +03:00
Brad King 3e129d71bc Merge topic 'project-include'
7d19b3091d Release note for CMAKE_PROJECT_INCLUDE variable
dda0190458 project: Add variable CMAKE_PROJECT_INCLUDE
390f14a244 Test ProjectInclude: Add NONE to avoid enabling languages

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3155
2019-04-01 10:49:02 -04:00
Brad King 922480e6f1 Merge topic 'allow_aliasing_unkown_targets'
6d5872a396 add_library: Now support aliasing unknown import targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3148
2019-04-01 10:31:11 -04:00
Damien R 37da6af17d find_dependency: Always search dependencies
When a dependency was already found, find_dependency did not search it
again. While this works in basic case, it does not when there are
components as the check does not take components into account.

Given the fact that there is no documentation about this optimization and
that the correct implementation is not trivial as it would require
changes in find_package to have the list of components already found we
always search dependencies.

Fix #17583.
2019-03-29 22:03:21 +01:00
Brad King c690e11a56 Merge topic 'implicit-includes'
dad86f1873 ParseImplicitIncludeInfo: Canonicalize implicit include dirs

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Michel Zou <xantares09@hotmail.com>
Merge-request: !3157
2019-03-29 09:11:41 -04:00
Brad King e532052a0a Merge topic 'update-kwsys'
15be06a5ec Tests: Fix Plugin test for international characters on Windows
24da7da686 Merge branch 'upstream-KWSys' into update-kwsys
8166634958 KWSys 2019-03-28 (e92bdbe8)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !3158
2019-03-29 09:08:07 -04:00