Commit Graph

4846 Commits

Author SHA1 Message Date
Brad King
c94f1bcf92 Drop Visual Studio 7 .NET 2003 generator
This generator has been deprecated since CMake 3.6.  Remove it.
2017-04-19 15:28:05 -04:00
Brad King
44f0d2d991 Merge topic 'objlib-extend'
eec93bce Allow OBJECT libraries to be installed, exported, and imported
93c89bc7 Genex: Allow TARGET_OBJECTS to be used everywhere
ac0cf7ff Genex: Reject TARGET_OBJECTS on non-object libraries earlier
8577978c Tests: ExportImport C code should use explicit (void) in prototypes
26cfd039 cmInstallTargetGenerator: Re-order GenerateScriptForConfig logic
25f3f22a cmGlobalGenerator: Add method to check if object file location is known
d596c550 cmGeneratorTarget: Add method to get the object file directory
930042f2 cmGeneratorTarget: Factor out a GetTargetObjectNames method
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !712
2017-04-19 10:47:31 -04:00
Brad King
9db9bb27ea Merge topic 'test-CheckIPOSupported'
eeb58c5c Tests: Add cases for typical CheckIPOSupported usage

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !700
2017-04-19 10:47:00 -04:00
Brad King
a7e0453a32 Merge topic 'fix-CMakeTestAllGenerators'
9e338b57 Tests: Drop machine-specific logic from CMakeTestAllGenerators
2790ffc9 Tests: Run CMakeTestAllGenerators serially
f1e51ec3 Tests: Fix CMakeTestAllGenerators generator list

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !720
2017-04-19 10:46:10 -04:00
Brad King
c79e7e09a8 Merge topic 'findmpi-add-imported-targets'
3ed9f635 FindMPI: Add test case
86979bb5 FindMPI: Add IMPORTED targets

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !707
2017-04-19 10:45:03 -04:00
Brad King
9e338b57b7 Tests: Drop machine-specific logic from CMakeTestAllGenerators
Drop hard-coded paths from this test.  If we later need machine-specific
environment entries we can add dedicated infrastructure for it to be
configured locally.
2017-04-18 15:12:22 -04:00
Brad King
2790ffc96f Tests: Run CMakeTestAllGenerators serially
This test may take a long time because it runs many other tools.
Do not make it compete with other tests for resources.
2017-04-18 15:10:17 -04:00
Brad King
f1e51ec3a5 Tests: Fix CMakeTestAllGenerators generator list
Since `cmake --help` output now uses `[arch]` placeholders for the VS
generators, this test has been extracting invalid generator names.
Switch to using `cmake -E capabilities` to get a more robust listing of
the generators that does not depend on parsing human-readable help
output.
2017-04-18 15:05:59 -04:00
Ruslan Baratov
eeb58c5c34 Tests: Add cases for typical CheckIPOSupported usage 2017-04-18 11:54:33 -04:00
Christian Pfeiffer
3ed9f63551 FindMPI: Add test case 2017-04-18 17:43:25 +02:00
Robert Maynard
eec93bceec Allow OBJECT libraries to be installed, exported, and imported
Teach install() and export() to handle the actual object files.
Disallow this on Xcode with multiple architectures because it
still cannot be cleanly supported there.

Co-Author: Brad King <brad.king@kitware.com>
2017-04-18 11:36:10 -04:00
Robert Maynard
93c89bc75c Genex: Allow TARGET_OBJECTS to be used everywhere
Previously the `TARGET_OBJECTS` generator expression was limited
only to use in a buildsystem context so that Xcode's placeholders
in object file paths can be evaluated.  Lift this restriction so
that the expression can at least be used in most settings.

Co-Author: Brad King <brad.king@kitware.com>
2017-04-18 11:36:09 -04:00
Brad King
ac0cf7ff4f Genex: Reject TARGET_OBJECTS on non-object libraries earlier
Move the diagnostic that rejects the TARGET_OBJECTS generator expression
in non-buildsystem context until after the check for whether the named
target is an object library.  This order will makes more sense than the
previous order once TARGET_OBJECTS is allowed in non-buildsystem
context.
2017-04-18 10:29:36 -04:00
Robert Maynard
8577978c58 Tests: ExportImport C code should use explicit (void) in prototypes 2017-04-18 09:03:34 -04:00
Brad King
a3636dde57 Merge topic 'fix-CMP0026-old'
5e616fcf CMP0026: Fix OLD behavior with file written during configure step

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !710
2017-04-18 08:51:54 -04:00
Brad King
5e616fcf9a CMP0026: Fix OLD behavior with file written during configure step
Refactoring in commit 60307c5056 (cmGeneratorTarget: Replace source
classifier implementation, 2017-04-07) accidentally regressed support
for CMP0026's OLD behavior in the case of a source file written by
project code during the configure step after getting a LOCATION.  We
should not perform full source classification until the generate step
because files written by the project's configure step may not exist yet.

Add special logic to support this case.  Add a test case for it.

Reported-by: David Stoup <david.stoup@kitware.com>
2017-04-17 10:10:15 -04:00
Brad King
99b90dbf3c file: Add COPY/INSTALL option for fixed layout relative to a directory
Add a `FILES_FROM_DIR` option to install a specific set of files
specified relative to a given directory and preserve their layout
in the destination.  Currently we intend to use this internally
to implement other things so we don't provide an `install()`
porcelain or documentation yet.
2017-04-13 16:32:51 -04:00
Brad King
2cb98329f1 Merge topic 'project-description'
3b484871 project: Add `DESCRIPTION` parameter

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !679
2017-04-13 08:14:23 -04: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
Alex Turbov
3b4848717a project: Add DESCRIPTION parameter
It is quite often the project description has used in a real world software.
Examples include:

* part of a help screen of the application
* builtin resources (`*.rc` files, data for "About" dialog of a GUI app, & etc)
* most generators for CPack can use it
* it could be used by documentary software (Doxygen, Sphinx) which is usually
  integrated to CMake based projects via `add_custom_target()`

Now `project()` call learned an optional `DESCRIPTION` parameter with a
short string describing a project. Being specified, it would set the
`PROJECT_DESCRIPTION` variable which could be used in `configure_file()`
or whatever user wants.  Also `PROJECT_DESCRIPTION` is a default value
for `CPACK_PACKAGE_DESCRIPTION_SUMMARY`.
2017-04-11 10:17:00 -04:00
Brad King
da9fe11b98 Merge topic 'include_external_msproject-map-config'
227de0b9 include_external_msproject: Honor MAP_IMPORTED_CONFIG_<CONFIG>
4cd815f0 VS: Pass whole target to WriteProjectConfigurations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !669
2017-04-06 09:38:36 -04:00
Beeble
227de0b95d include_external_msproject: Honor MAP_IMPORTED_CONFIG_<CONFIG>
This allows projects added via `include_external_msproject` to compile
the preferred configuration despite different naming conventions.
2017-04-05 13:44:03 -04:00
Brad King
d9bd7adfdf Merge topic 'prop-is-multi-config'
01826231 Tests: Add case for GENERATOR_IS_MULTI_CONFIG
38fd5866 Add GENERATOR_IS_MULTI_CONFIG global property

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !657
2017-04-05 10:22:23 -04:00
Brad King
6e9dc960c5 Merge topic 'CheckIPOSupported-Fortran'
87199ea6 CheckIPOSupported: Add Fortran support
c92fd256 CheckIPOSupported: Move '_CMakeLTOTest-*' under 'CMakeFiles'

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !655
2017-04-05 10:16:00 -04:00
Brad King
01826231f8 Tests: Add case for GENERATOR_IS_MULTI_CONFIG 2017-04-04 09:49:01 -04:00
Ruslan Baratov
87199ea66b CheckIPOSupported: Add Fortran support 2017-04-04 09:35:39 -04:00
Brad King
d34daca368 Merge topic 'mac-implicit-link-no-lto-flag'
53f17333 CMakeParseImplicitLinkInfo: Ignore ld -lto_library flag

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !658
2017-04-04 09:18:39 -04:00
Brad King
1c8775c99f Merge topic 'server-mode-test-no-pyc'
e51d9395 Tests: Avoid generating .pyc files during Server test

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !659
2017-04-04 09:17:41 -04:00
Brad King
bc04c6ba1e Merge topic 'test-CMakeOnly.AllFindModules-local-exclude'
fe21ccc4 Tests: Optionally skip local packages versions in CMakeOnly.AllFindModules

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !661
2017-04-04 09:07:44 -04:00
Brad King
0f51d44aea Merge topic 'test-CMake.GetPrerequisites-config-message'
c2c22862 Tests: Fix CMake.GetPrerequisites test config message

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !654
2017-04-04 09:07:16 -04:00
Brad King
fe21ccc486 Tests: Optionally skip local packages versions in CMakeOnly.AllFindModules
Some machines have incomplete or otherwise broken installations of
specific packages.  Allow local configuration to prevent the test from
failing on such packages if the version number cannot be extracted.
2017-04-03 16:04:17 -04:00
Brad King
e51d939525 Tests: Avoid generating .pyc files during Server test
Avoid writing any files to the source tree during testing.

Fixes: #16770
2017-04-03 13:36:48 -04:00
Brad King
53f17333f8 CMakeParseImplicitLinkInfo: Ignore ld -lto_library flag
The `ld` tool in Xcode 8.3 now has a `-lto_library <path>` flag.  Ignore
the flag instead of accidentally parsing it as `-l` with `to_library`.

Fixes: #16766
2017-04-03 13:23:31 -04:00
Brad King
c2c2286228 Tests: Fix CMake.GetPrerequisites test config message
Since commit v2.8.11~239^2~1 (ProcessorCount test: fix path to
cmsysTestsCxx executable, 2013-01-24) we accidentally printed a literal
`${CTEST_CONFIGURATION_TYPE}` instead of the actual build configuration.
Update the message to use a generator expression to get the real build
configuration used.
2017-04-03 10:45:03 -04:00
Brad King
1e83154f08 Merge topic 'test-LinkInterfaceLoop-custom-timeout'
716f8c88 Tests: Add option to customize LinkInterfaceLoop timeout

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !651
2017-04-03 09:25:55 -04:00
Brad King
5ee415207b Merge topic 'test-fix-CTestTestChecksum-dir'
72d0f947 Tests: Fix spurious CTestTestParallel failures

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !650
2017-04-03 09:25:33 -04:00
Brad King
716f8c88c9 Tests: Add option to customize LinkInterfaceLoop timeout
This test has a timeout in case CMake gets into an infinite loop.  The
default of 90 seconds should be plenty of time for the test to run
correctly since it does not actually do a build.  However, busy machines
that run lots of tests in parallel may need a longer timeout.  Give them
an option to extend it.
2017-03-31 13:56:49 -04:00
Brad King
72d0f94713 Tests: Fix spurious CTestTestParallel failures
If `CTestTestParallel` was run at the same time as `CTestTestChecksum`
(e.g. during parallel testing) then the former fails due to the latter
stepping on its directory.  Fix the directory used for the latter to
avoid the conflict.
2017-03-31 13:46:08 -04:00
Brad King
c791fb1254 Merge topic '16733-bundle-genex'
d1dac1ac Xcode: Execute RunCMake.Framework also for Xcode generator
d02709d7 Genex: Add `TARGET_BUNDLE_[CONTENT_]_DIR` generator expressions
013ffe76 cmGeneratorTarget: Call GetFrameworkDirectory in GetFullNameInternal
32e9d0ca cmGeneratorTarget: Use enum to describe bundle directory query level

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Craig Scott <craig.scott@crascit.com>
Merge-request: !635
2017-03-31 10:40:02 -04:00
Brad King
8772fc81c4 Merge topic 'ipo-policy-CMP0069'
dfa8263f Implement interprocedural optimization for GNU compilers
1588a577 Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION
a7575700 Refactoring: s,GetFeatureAsBool,IsIPOEnabled,
e05835c3 CheckIPOSupported: Visual Studio and Xcode generators do not support IPO

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Nils Gladitz <nilsgladitz@gmail.com>
Merge-request: !568
2017-03-31 10:38:08 -04:00
Gregor Jasny
d1dac1acc5 Xcode: Execute RunCMake.Framework also for Xcode generator 2017-03-30 22:24:54 +02:00
Gregor Jasny
d02709d7f7 Genex: Add TARGET_BUNDLE_[CONTENT_]_DIR generator expressions
Closes #16733
2017-03-30 22:24:54 +02:00
Ruslan Baratov
1588a577d1 Add policy CMP0069 to enforce INTERPROCEDURAL_OPTIMIZATION
Previously the `INTERPROCEDURAL_OPTIMIZATION` target property was
honored only for the Intel compiler on Linux and otherwise ignored.  In
order to add support for more compilers incrementally without changing
behavior in the future, add a new policy whose NEW behavior enforces the
`INTERPROCEDURAL_OPTIMIZATION` property.  Add flags for supported
compilers and otherwise produce an error.
2017-03-30 14:56:46 -04:00
Ruslan Baratov
e05835c35b CheckIPOSupported: Visual Studio and Xcode generators do not support IPO 2017-03-30 10:16:10 -04:00
Brad King
1cc918a770 Merge topic 'ctest-disable-tests'
b070947d Add 'DISABLED' test property
42c68aad CTest: Improve 'Completion Status' reported to CDash for 'Not Run' tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Brad King <brad.king@kitware.com>
Merge-request: !571
2017-03-30 09:01:06 -04:00
Brad King
d66081b546 Merge topic 'iwyu'
48cfb295 cmFortranParser: remove unnecessary typedef
90bb5f64 cmCommandArgumentParserHelper: remove unnecessary include
ab5f4e81 cmFortranParserImpl: remove unnecessary include
f8ed8bef testEncoding: use cmsys::ifstream
8647c6cd testEncoding: include <cmsys/ConsoleBuf.hxx> on Windows only
21a6ed49 cmFileCommand: add <cm_curl.h> include
a2275bdd cmFileCommand: remove unnecessary friend declaration

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !626
2017-03-30 08:58:26 -04:00
Brad King
2f359787f6 Merge topic 'cmake-file-install-symlink-on-nonexistng-path'
8e8f1118 handle non-existing symlink creation locations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !642
2017-03-30 08:57:07 -04:00
Brad King
7bb8b38cce Merge topic '16742-swift-3.0'
77139e32 Swift: Simplify mixed test case to make it version agnostic
c03141c0 Swift: Default to Swift 3.0 with Xcode 8.3 and later

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !638
2017-03-30 08:52:37 -04:00
Daniel Pfeifer
f8ed8bef84 testEncoding: use cmsys::ifstream 2017-03-29 18:48:47 +02:00
Daniel Pfeifer
8647c6cd68 testEncoding: include <cmsys/ConsoleBuf.hxx> on Windows only 2017-03-29 18:48:47 +02:00