Commit Graph

33191 Commits

Author SHA1 Message Date
Tobias Hunger 71a505870c server-mode: Add project data for unit tests
Do some basic unit tests for "codemodel", "cmakeInputs" and "cache"
commands of the cmake server.

This just calls the commands right now and makes sure the server
thinks it can reply to the request. The data itself is currently not
validated.
2016-09-28 20:10:59 +02:00
Tobias Hunger 7b1e60f26e server-mode: Report CMakeCache entries
With this it would be possible to implement something like
cmake-gui using server-mode.
2016-09-28 18:32:55 +02:00
Tobias Hunger 84553a6e70 server-mode: Add command to retrieve build system files
Add a command to retrieve files that are input to cmake itself.
2016-09-28 18:32:54 +02:00
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 2cbfb5c7a4 CONTRIBUTING: Reference clang-format helper script for code style 2016-09-28 11:48:13 -04:00
Brad King 32ee69c562 FindCxxTest: Do not run cxxtestgen through interpreter unless necessary
On platforms that support shebang lines the `cxxtestgen` script should
be able to execute without an explicit interpreter.  Do this if possible
so that the proper interpreter specified by the shebang line is honored.
Ideally we shouldn't even need to find `python` in this case, but that
will be a larger change better made by a dedicated module maintainer.

Closes: #16331
2016-09-28 11:27:20 -04:00
Roman Wüger 3f300b84f3 VS: Recognize VS/LLVM toolset names as Clang
Update the toolset name matching added by commit v3.6.0-rc1~279^2~10
(VS: in Clang/C2 toolset, setup correct compiler settings, 2016-02-18)
to match VS/LLVM toolset names too.
2016-09-28 10:53:10 -04:00
Brad King 9c5238dfd6 project: Fix support for explicit RC language
The check added in commit v3.6.0-rc1~293^2 (Diagnose recursive
project/enable_language without crashing, 2016-03-07) broke support for
enabling `RC` explicitly along with other languages like `C`.  The
reason is that we enable all listed languages at once so the internal
`enable_language(RC)` that we do while enabling `C` or `CXX` on some
platforms triggers the recursion check if `RC` is explicitly listed.

Ideally we should refactor things to only enable one language at a time,
but for now it is simplest to just exclude `RC` from the explicit list
until other languages are enabled, and then enable it.

Closes: #16330
2016-09-28 10:34:57 -04:00
Brad King 40c0482153 Tests: Decide earlier whether to test resources
Provide a CMake_TEST_RESOURCES variable storing the decision.
2016-09-28 09:40:00 -04:00
Brad King af35ddc808 Tests: Add newline to RunCMake.CPack_RPM SOURCE_PACKAGE case
The `main.cpp` that this test generates needs a newline so that
compilers do not warn about a missing newline.  Otherwise the warning
causes RunCMake infrastructure to detect unexpected output.
2016-09-28 09:07:42 -04:00
Brad King 8f25f37676 Merge topic 'win64-binary-docs'
93300f36 Utilities/Release: Add html docs to Windows 64-bit binary
2016-09-28 09:01:26 -04:00
Brad King 93300f3623 Utilities/Release: Add html docs to Windows 64-bit binary
The 64-bit Windows binary is built in our second batch because it is
built on the same host as the 32-bit Windows binary.  When the
documentation generation was first added, it was not included in the
second batch because at the time that batch only included the Cygwin
binary.  Therefore the 64-bit Windows binary has been missing the
documentation since it was first created for CMake 3.6.

Since then the Cygwin binary was dropped so the second batch only
contains the 64-bit Windows binary.  Add the docs to it.

Closes: #16333
2016-09-28 08:55:29 -04: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
Brad King 8021f64029 Merge topic 'GNUInstallDirs-more-BSD'
956054ae GNUInstallDirs: All *BSDs use ${PREFIX}/{man,info} for man and info pages
2016-09-28 08:05:04 -04:00
Brad King a71a172ebf Merge topic 'findjni'
59eb75d9 FindJNI: Add aarch32 path on arm
2016-09-28 08:05:01 -04:00
Brad King cd89d1998a Merge topic 'silent-nsis-installs'
cb8db285 CPack/NSIS: Fix silent NSIS installs
2016-09-28 08:04:58 -04:00
Kitware Robot 9a9b9d445a CMake Nightly Date Stamp 2016-09-28 00:01:07 -04:00
Brad King 19671831cf Help: Update cmake-developer(7) module license docs for new notice 2016-09-27 15:18:08 -04:00
Brad King 756169ac99 Tests: Update ModuleNotices test for new notice 2016-09-27 15:18:07 -04:00
Brad King 845d86bce3 Utilities/Scripts: Remove temporary script that filtered license notices 2016-09-27 15:18: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 b7180cfee5 Utilities/Scripts: Add temporary script to filter license notices
Add a script to replace our previous per-source license notices with a
much simpler notice.  This will be used in a following commit and then
removed.
2016-09-27 15:04:28 -04:00
Brad King 7feb4eccec Copyright.txt: Add notice of copyright by contributors
We do not require copyright assignment for contributions to CMake.
Update the top-level notice to mention "Contributors" explicitly.
Add a list of the Contributors whose names already appear in
source-level copyright notices.  Find the list with the command:

    $ git grep -h 'Copyright[^.]' -- *.* \
        Auxiliary Modules Packaging Source Templates Tests \
      | grep -v Kitware | sed 's/^#\? *//' | sort | uniq

Manually refine the list to de-duplicate entries and filter out
notices from third-party code.
2016-09-27 15:04:28 -04:00
Brad King 78f77f6038 Utilities/KWStyle: Remove unused header check reference file
We do not actually run a check for this.
2016-09-27 15:04:28 -04:00
Brad King 681e0429fc Tests: Fix RunCMake.CTest output match to tolerate line number changes 2016-09-27 15:04:27 -04:00
Dmitry Marakasov 956054aeca GNUInstallDirs: All *BSDs use ${PREFIX}/{man,info} for man and info pages 2016-09-27 08:33:57 -04:00
Orion Poplawski 59eb75d9d2 FindJNI: Add aarch32 path on arm 2016-09-27 08:31:02 -04:00
Craig Scott cb8db28559 CPack/NSIS: Fix silent NSIS installs
The installer should not put up a message box to confirm uninstall of a
previous version for silent installs. Furthermore, when the uninstaller
is invoked, do not show its confirmation dialog because either (a) the
installer already asked the user or (b) the installer is running in
silent mode.

Closes: #16328
2016-09-27 08:27:24 -04:00
Brad King 1adcf4917e Merge topic 'cpack-rpm-debuginfo-sources'
39c7d62c CPack/RPM debuginfo packaging documentation
dd3c938a CPack/RPM debuginfo directories to sources
b78fcf0d CPack/RPM debuginfo packages must contain sources
2016-09-27 08:23:03 -04:00
Brad King a9cb60a951 Merge topic 'suppress-pgi-warnings'
89c20300 CTestCustom: Suppress PGI warnings in generated Lexer/Parser code
965eb50c CTestCustom: Suppress PGI compiler warning summary line
2016-09-27 08:23:00 -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 e56eca3f68 Merge topic 'find-matlab-pthread'
33ec71f3 FindMatlab: Fix -pthread check for projects with only C enabled
2016-09-27 08:22:47 -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 150d9955f6 Merge topic 'FindBoost-1.62'
9bb8ac8e FindBoost: update to 1.62
2016-09-27 08:22:39 -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
Domen Vrankar 39c7d62cbc CPack/RPM debuginfo packaging documentation 2016-09-27 08:18:21 -04:00
Domen Vrankar dd3c938a0f CPack/RPM debuginfo directories to sources
List of sources must be split into paths parts
so that debuginfo package cleans up after
itself.
2016-09-27 08:18:21 -04:00
Domen Vrankar b78fcf0d2f CPack/RPM debuginfo packages must contain sources
Issue #15668 fix was missing relevant source
files in debuginfo package.
2016-09-27 08:18:21 -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
Brad King 89c20300ed CTestCustom: Suppress PGI warnings in generated Lexer/Parser code 2016-09-26 14:50:02 -04:00
Brad King 965eb50cda CTestCustom: Suppress PGI compiler warning summary line
We will match/ignore the actual warning lines, if any, so we can always
ignore the summary line if present.
2016-09-26 14:49: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