Commit Graph

21271 Commits

Author SHA1 Message Date
Tobias Hunger ead71873b2 server-mode: Report information relevant for a codemodel
Add "codemodel" command to report information relevant to feed a code
model.
2016-09-28 18:32:54 +02:00
Brad King c1f97af640 Merge topic 'simplify-license-notices'
19671831 Help: Update cmake-developer(7) module license docs for new notice
756169ac Tests: Update ModuleNotices test for new notice
845d86bc Utilities/Scripts: Remove temporary script that filtered license notices
86578ecc Simplify CMake per-source license notices
b7180cfe Utilities/Scripts: Add temporary script to filter license notices
7feb4ecc Copyright.txt: Add notice of copyright by contributors
78f77f60 Utilities/KWStyle: Remove unused header check reference file
681e0429 Tests: Fix RunCMake.CTest output match to tolerate line number changes
2016-09-28 08:05:10 -04:00
Kitware Robot 9a9b9d445a CMake Nightly Date Stamp 2016-09-28 00:01:07 -04: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
Brad King 069d0e2431 Merge topic 'index-directories'
cda8c782 cmGlobalGenerator: Optimize FindMakefile method with an index
2016-09-27 08:22:57 -04:00
Brad King ded15f26b8 Merge topic 'codelite-organize-by-target'
cbe48879 CodeLite: Optionally use targets to create (sub)project files
2016-09-27 08:22:53 -04:00
Brad King e8ff565d94 Merge topic 'cmake-server-basic-commands'
89043267 server-mode: Add command to compute the build system
0a8ad670 server-mode: Add a configure command
544f65f4 server-mode: Set global configuration of cmake via a command
82104cc7 server-mode: Query global configuration of cmake via a command
2016-09-27 08:22:50 -04:00
Brad King 45fff9328d Merge topic 'update-kwsys'
1798e495 Merge branch 'upstream-KWSys' into update-kwsys
d15b7603 KWSys 2016-09-23 (80f820fc)
2016-09-27 08:22:44 -04:00
Brad King c3cce73e39 Merge topic 'CPackNSIS-per-component-install'
06dea230 CPack/NSIS: Add custom component install directory
2016-09-27 08:22:42 -04:00
Brad King 4207aa4724 Merge topic 'ninja-include-dir'
144cc6f1 Ninja: Add source location as include directory for preprocessed files
2016-09-27 08:22:35 -04:00
Nils Gladitz 144cc6f1f9 Ninja: Add source location as include directory for preprocessed files
Fortran INCLUDE statements are not handled by the preprocessor.

Since the location of the preprocessed file is distinct from the
original source file explicitly add the source file's directory
as an include path in the actual compile step (not the preprocessing step)
so INCLUDE can find it.

Closes: #16332
2016-09-27 08:11:08 -04:00
Kitware Robot 20786869e8 CMake Nightly Date Stamp 2016-09-27 00:01:05 -04:00
Brad King cda8c782db cmGlobalGenerator: Optimize FindMakefile method with an index
This method is used by directory get/set APIs.  With the new
`SUBDIRECTORIES` and `BUILDSYSTEM_TARGETS` methods projects may now make
heavy use of these APIs to traverse their directory structure and
process targets.  Make this faster by indexing the directory lookups.
2016-09-26 15:35:39 -04:00
Tobias Hunger 890432672b server-mode: Add command to compute the build system 2016-09-26 14:33:12 -04:00
Tobias Hunger 0a8ad6700e server-mode: Add a configure command
Add a command to trigger cmake to configure a project.

Keep this separate from the compute step (added in the next commit)
to faciliate applications like cmake-gui.
2016-09-26 14:32:22 -04:00
Tobias Hunger 544f65f44d server-mode: Set global configuration of cmake via a command
"setGlobalSettings" can be used to change settings reported by
"globalSettings" command.
2016-09-26 14:25:20 -04:00
Tobias Hunger 82104cc7a8 server-mode: Query global configuration of cmake via a command
Add "globalSettings" command that returns:
* Return capability information
* Return currently used generator/extra generator
* Return a range of flags for debug/trace/etc.
2016-09-26 14:23:53 -04:00
Minze Zwerver cbe4887927 CodeLite: Optionally use targets to create (sub)project files
The basic codelite generator creates .project files based on the
`project()` stanza.  Add a `CMAKE_CODELITE_USE_TARGETS` option to use
the targets instead.
2016-09-26 13:40:38 -04:00
Brad King 1798e49595 Merge branch 'upstream-KWSys' into update-kwsys
* upstream-KWSys:
  KWSys 2016-09-23 (80f820fc)
2016-09-26 09:45:51 -04:00
Brad King a721830767 Merge topic 'auto-ptr'
e6380b11 Use std::auto_ptr on compilers that do not warn about it
67480c05 Add a feature check to test availability of auto_ptr
2016-09-26 09:06:41 -04:00
Brad King 806017cab8 Merge topic 'tidy-server'
92207752 cmServer: add braces around conditional statements
2016-09-26 09:06:35 -04:00
Brad King d5fbb19b49 Merge topic 'ctest-no-manual-delete'
b941f3bf CTest::CompressString: Avoid manual delete
a5a7771a CTest::CompressString: Reorder code to avoid unnecessary allocation
6ed56457 CTest::Base64EncodeFile: Avoid manual delete
2016-09-26 09:06:32 -04:00
Brad King c6f07d06c6 Merge topic 'xcode-swift-version'
b35568f3 Xcode: Add option to set Swift language version
49d50ad4 Xcode: Port rudimentary Swift support to Xcode 8
2016-09-26 09:06:29 -04:00
Daniel Pfeifer e6380b11e9 Use std::auto_ptr on compilers that do not warn about it 2016-09-26 09:03:46 -04:00
Daniel Pfeifer 67480c05e3 Add a feature check to test availability of auto_ptr 2016-09-26 09:03:46 -04:00
Roman Wüger 06dea230ae CPack/NSIS: Add custom component install directory 2016-09-26 09:01:59 -04:00
Brad King b35568f3f9 Xcode: Add option to set Swift language version
Create a new CMAKE_Swift_LANGUAGE_VERSION variable to specify the
SWIFT_VERSION attribute in a generated Xcode project.  Ideally this
would be a `<LANG>_STANDARD` property but since Swift support is
very minimal we should reserve that property for more complete
treatment later.

Issue: #16326
2016-09-26 08:46:23 -04:00
Kitware Robot 63c25013b1 CMake Nightly Date Stamp 2016-09-26 00:01:04 -04:00
Kitware Robot 02277aef10 CMake Nightly Date Stamp 2016-09-25 00:01:04 -04:00
Kitware Robot 08147a7fea CMake Nightly Date Stamp 2016-09-24 00:01:04 -04:00
Daniel Pfeifer 92207752df cmServer: add braces around conditional statements 2016-09-23 22:43:36 +02:00
Daniel Pfeifer b941f3bfe7 CTest::CompressString: Avoid manual delete 2016-09-23 22:06:17 +02:00
Daniel Pfeifer a5a7771a42 CTest::CompressString: Reorder code to avoid unnecessary allocation 2016-09-23 22:04:47 +02:00
Daniel Pfeifer 6ed564577d CTest::Base64EncodeFile: Avoid manual delete 2016-09-23 22:03:49 +02:00
Brad King 49d50ad407 Xcode: Port rudimentary Swift support to Xcode 8
The `.pbxproj` file must now specify a `SWIFT_VERSION` value.
Set it to the legacy value of "2.3" for now.  Later this can
be made configurable (e.g. to "3.0").
2016-09-23 11:47:06 -04:00
Brad King 3a883a9f7d Merge topic 'ninja-fortran'
33058150 Help: Document Ninja generator conditional Fortran support
59aae292 Ninja: Add dyndep rules for Fortran module dependencies
39ebfc79 Ninja: Add explicit preprocessing step for Fortran
9a77680e Ninja: Conditionally allow Fortran based on ninja 'dyndep' support
0f331d78 Ninja: Add internal tool to produce a ninja dyndep file for Fortran
d3e0b64b Ninja: Add internal tool to scan Fortran code for module dependencies
8eca59a1 Ninja: Add comment with Fortran dependency design documentation
a57d1bb7 Ninja: Add API to check for dyndep support
0488ae63 Ninja: Refactor ninja feature detection
f0a23aa3 Ninja: Refactor Fortran rejection logic
2016-09-23 08:40:16 -04:00
Brad King e9cae187c3 Merge topic 'fix-xcode-attribute-LOCATIONs'
764775c4 Fix XCODE_ATTRIBUTE_..._LOCATION target property lookup
2016-09-23 08:40:07 -04:00
Brad King aec5bf8edb Merge topic 'cmake-server-signals'
e22d30e2 server-mode: Allow for sending signals
cc576c2c server-mode: Pass server into cmServerProtocol
277ffa28 server-mode: Move constants for server mode into its own file
2016-09-23 08:40:03 -04:00
Brad King 785f875426 Merge topic 'qtdialog-lib-paths'
48624b3c cmake-gui: Do not remove library paths for Qt5 plugins.
2016-09-23 08:39:56 -04:00
Kitware Robot d0a27ae998 CMake Nightly Date Stamp 2016-09-23 00:01:05 -04:00
Clinton Stimpson 48624b3cb8 cmake-gui: Do not remove library paths for Qt5 plugins.
Not removing library paths is necessary for QFileDialog to function correctly
on Linux when using Qt5.
2016-09-22 13:19:04 -06:00
Brad King 59aae29214 Ninja: Add dyndep rules for Fortran module dependencies
Teach the Ninja generator to add dyndep rules and bindings as described
in the design comment in `Source/cmGlobalNinjaGenerator.cxx`.
2016-09-22 13:53:10 -04:00
Brad King 39ebfc79e6 Ninja: Add explicit preprocessing step for Fortran
All Fortran sources need to be preprocessed before any source may be
compiled so that module dependencies can be (later) extracted.  Factor
out an explicit preprocessing step preceding compilation.  Use Ninja
depfile dependencies on the preprocessing step and then compile the
already-preprocessed source with a separate build statement that depends
explicitly only on the preprocessor output.  Later we will insert
dynamic discovery of module dependencies between these steps.
2016-09-22 13:53:09 -04:00
Brad King 9a77680eed Ninja: Conditionally allow Fortran based on ninja 'dyndep' support
Detect from the version of Ninja whether it supports the dynamically
discovered dependencies (dyndep) feature needed to support Fortran.
2016-09-22 13:53:09 -04:00
Brad King 0f331d7893 Ninja: Add internal tool to produce a ninja dyndep file for Fortran
Create an internal `cmake -E cmake_ninja_dyndep` tool to read the "ddi"
files generated by `cmake -E cmake_ninja_depends` from all sources in a
target and generate a ninja dyndep file that tells Ninja about Fortran
module dependencies within the target and on target dependencies.
2016-09-22 13:52:57 -04:00
Brad King d3e0b64b14 Ninja: Add internal tool to scan Fortran code for module dependencies
Create an internal `cmake -E cmake_ninja_depends` tool to scan an
already-preprocessed Fortran translation unit for modules that it
provides or requires.  Save the information in a "ddi" file with a
CMake-private format for intermediate dynamic dependency information.
This file may the be loaded by another tool to be added later.
2016-09-22 13:52:30 -04:00
Brad King 8eca59a175 Ninja: Add comment with Fortran dependency design documentation 2016-09-22 13:52:03 -04:00
Brad King a57d1bb712 Ninja: Add API to check for dyndep support
Kitware maintains a branch of Ninja with support for dynamically
discovered dependencies (dyndep) that has not yet been accepted
upstream.  Add an internal API to check whether the Ninja version in use
for the build supports this feature.
2016-09-22 13:52:03 -04:00
Brad King 0488ae63ea Ninja: Refactor ninja feature detection
Check for features as soon as we know the ninja version.  Save the
results so we do not have to re-compare versions every time.
2016-09-22 13:52:02 -04:00
Brad King f0a23aa3db Ninja: Refactor Fortran rejection logic
Delay rejection of Fortran until after we've determined the version of
the `ninja` tool to be used.  This will later allow us to enable Fortran
support based on the version of ninja.

While at it, make the rejection an immediate fatal error.  Also provide
a stack trace so readers know what code tried to enable Fortran.
2016-09-22 13:51:58 -04:00