Commit Graph

1295 Commits

Author SHA1 Message Date
Brad King 1fe2dc5ef2 Merge topic 'ipo-xcode'
7e75568b Xcode: Support IPO (LTO)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !785
2017-05-03 11:04:17 -04:00
Ruslan Baratov 7e75568b00 Xcode: Support IPO (LTO) 2017-05-02 18:33:25 +03:00
Brad King 8fba1f4a03 Merge topic 'excludeFixtures'
c1b2b7c0 Add ctest options for limiting which tests fixtures add

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !778
2017-05-02 08:22:07 -04:00
Craig Scott c1b2b7c03c Add ctest options for limiting which tests fixtures add
The new options allow the user to restrict the setup and cleanup tests
automatically added for fixtures.
2017-05-02 01:54:13 +10:00
Brad King 12512bdb51 Merge topic 'separgs-native'
28d83837 separgs: Use NATIVE_COMMAND where appropriate
2a207aac separgs: Add a NATIVE_COMMAND mode
81841426 separgs: Migrate tests to RunCMake tests

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !753
2017-04-28 09:52:07 -04:00
Brad King 34a083a195 Merge topic 'bindexplib-consts'
afb21342 bindexplib: fix constants symbols export

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !763
2017-04-28 09:12:22 -04:00
Brad King 6cc5bf3dfa Merge topic 'test-install-objects-as-files'
f4c23ee2 Tests: Add case for install(FILES) with TARGET_OBJECTS
d272c4d5 Tests: Generalize RunCMake.install internal infrastructure

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !769
2017-04-27 09:03:09 -04:00
Brad King f38147aebc Merge topic 'test-makefile-custom-target-includes'
434f5cef Tests: Add case for IMPLICIT_DEPENDS in custom target
6d1be6e3 Tests: Split RunCMake.BuildDepends make-only condition

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !766
2017-04-27 09:00:15 -04:00
Brad King ef205e04d4 Merge topic 'ctest_test-ignore-skipped-tests'
851b6c15 cmCTestTestHandler: indicate why a test did not run
25a7f14f Help: add release notes
ab8bbef9 cmCTestTestHandler: count skipped tests as disabled
202a44a4 cmCTestRunTest: do not count skipped tests as failed

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Craig Scott <craig.scott@crascit.com>
Merge-request: !741
2017-04-27 08:55:40 -04:00
Brad King f4c23ee244 Tests: Add case for install(FILES) with TARGET_OBJECTS 2017-04-26 16:23:12 -04:00
Brad King d272c4d5f7 Tests: Generalize RunCMake.install internal infrastructure
Allow `run_install_test` to be used for simpler cases.
2017-04-26 16:16:04 -04:00
Mikhail Paulyshka afb21342ea bindexplib: fix constants symbols export 2017-04-26 22:23:33 +03:00
Christian Pfeiffer 2a207aaca1 separgs: Add a NATIVE_COMMAND mode 2017-04-26 20:34:06 +02:00
Christian Pfeiffer 81841426fc separgs: Migrate tests to RunCMake tests 2017-04-26 20:26:47 +02:00
Brad King 434f5cef65 Tests: Add case for IMPLICIT_DEPENDS in custom target
Use the `IMPLICIT_DEPENDS` option of `add_custom_command` and place the
command in a custom target.  Verify that `INCLUDE_DIRECTORIES` of that
custom target are honored.  This is a case that was not really designed
to work but happens to work, is useful, and makes sense.  Add a test
case make sure it continues to work.

Issue: #16830
2017-04-26 08:46:11 -04:00
Brad King 6d1be6e382 Tests: Split RunCMake.BuildDepends make-only condition 2017-04-26 08:34:16 -04:00
Brad King 7dca104e14 Merge topic 'deprecate-policy-old'
4f5bbbea Add deprecation warnings for policies CMP0036 and below

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !743
2017-04-25 09:39:06 -04:00
Ben Boeckel 851b6c1595 cmCTestTestHandler: indicate why a test did not run 2017-04-24 15:42:40 -04:00
Ben Boeckel ab8bbef9c6 cmCTestTestHandler: count skipped tests as disabled
The `Skipped` status is basically a runtime version of the `Disabled`
status (set as a property on the test by the configure step), so treat
them the same.
2017-04-24 15:42:40 -04:00
Brad King dc6632b9da Merge topic 'remove-xcode-2'
7373b389 Xcode: Drop support for Xcode versions below 3
eaf53849 Xcode: Compute version number earlier

Acked-by: Kitware Robot <kwrobot@kitware.com>
Reviewed-by: Gregor Jasny <gjasny@googlemail.com>
Merge-request: !737
2017-04-24 09:40:44 -04:00
Brad King 096c3bacea Merge topic 'vs8-deprecate'
81f9c9e8 Deprecate Visual Studio 8 2005 generator

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !739
2017-04-24 09:36:10 -04:00
Brad King 7373b389eb Xcode: Drop support for Xcode versions below 3 2017-04-22 15:19:11 -04:00
Brad King 4f5bbbeab9 Add deprecation warnings for policies CMP0036 and below
The OLD behaviors of all policies are deprecated, but only by
documentation.  Add an explicit deprecation diagnostic for some policies
to encourage projects to port away from setting policies to OLD.
2017-04-21 15:04:33 -04:00
Brad King 81f9c9e892 Deprecate Visual Studio 8 2005 generator
Update documentation to mark the generator deprecated.  Add a warning at
the end of generation plus an option to turn off the warning.
2017-04-21 13:45:45 -04:00
Ben Boeckel 664591ce59 RunCMake.Ninja: add a test for assumed sources
This is a dark corner of the Ninja generator. It should be fixed in the
future, but add a test which shows its behaviors.
2017-04-21 08:57:40 -04:00
Ben Boeckel adf60b2838 ninja: break unnecessary target dependencies
Previously, given two libraries, X and Y where X depends on Y, all
object compilations of X would require the Y library to have been linked
before being compiled. This is not necessary and can instead be loosened
such that object compilations of X only depend on the order-only
dependencies of Y to be completed. This is to ensure that generated
sources, headers, custom commands, etc. are completed before X starts to
compile its objects.

This should help build performance in projects with many libraries which
cause a deep library dependency chain. Previously, a library at the
bottom would not start compilation until after all other libraries
completed, but now only its link step needs to wait and its compilation
jobs can be run in parallel with other tasks.

Fixes: #15555
2017-04-21 08:57:40 -04:00
Ben Boeckel 01c5bb9551 RunCMake.Ninja: support passing arguments when running ninja 2017-04-21 08:57:02 -04:00
Brad King 744f809765 Merge topic 'GNUInstallDirs-add-RUNSTATEDIR'
40814a7c GNUInstallDirs: Add RUNSTATEDIR variable

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !706
2017-04-21 08:55:31 -04:00
Felix Geyer 40814a7ce9 GNUInstallDirs: Add RUNSTATEDIR variable 2017-04-20 17:25:46 +02:00
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
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
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
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 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 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