Commit Graph
28539 Commits
Author SHA1 Message Date
Kitware Robot 17c3e418b0 CMake Nightly Date Stamp 2018-01-21 00:01:06 -05:00
Craig Scott 11c4ea7f11 Merge topic 'reword-cmake-E-time-help'
73bb781d Help: Reword misleading docs for cmake -E time

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1677
2018-01-20 17:54:24 -05:00
Kitware Robot ab1be08913 CMake Nightly Date Stamp 2018-01-20 00:01:11 -05:00
Tobias R. Henle 51caac6958 CodeLite: Better support for Fortran and Windows
Fortran source files are added to the src folder of CodeLite projects and
the "Compile Single File" command uses "$(CurrentFileFullName)"
instead of "$(CurrentFileName)" with the correct filename extension
for object files on windows now.
2018-01-19 22:41:54 +01:00
Taylor Braun-Jones 73bb781df0 Help: Reword misleading docs for cmake -E time 2018-01-19 16:07:39 -05:00
Brad King e68a269cd2 Merge topic 'cache-truncate-newlines'
c42b377c cmCacheManager: Test and document newline truncation behavior
a9c48307 cmCacheManager: Truncate values containing newlines

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1652
2018-01-19 10:08:06 -05:00
Kitware Robot be2f050903 CMake Nightly Date Stamp 2018-01-19 00:01:23 -05:00
Justin Goshi 33802b3168 server: fix crash if no min version specified
If a CMakeLists.txt file doesn't contain cmake_minimum_required then the
server was crashing. The root cause was the json object model does not
support null and was crashing. Add the null check and use an empty
string in this case.
2018-01-18 20:54:02 -08:00
Sebastian Holtermann a1d491ca27 Autogen: AUTOMOC/UIC fix for moc/uic include on the first line
When moc/uic include was found on the first line of
a file it was ignored. This fixes the issue by extending
the regular expression for include detection.

Closes #17655
2018-01-18 18:37:49 +01:00
Ben Boeckel 7c525c8416 genex: generated files have known extensions 2018-01-18 11:11:19 -05:00
Brad King c1e087a9d3 CMake 3.10.2 2018-01-18 09:53:18 -05:00
Brad King c1ea96d04c Merge topic 'autogen-parallel'
9cfa213a Autogen: Rename cmQtAutogeneratorInitializer to cmQtAutoGenInitializer
79908ae4 Autogen: Add release notes for (CMAKE_)AUTOGEN_PARALLEL
45ee4979 Autogen: Add documentation for (CMAKE_)AUTOGEN_PARALLEL
6f4b6613 Autogen: Tests: Add AUTOGEN_PARALLEL tests
a008578d Autogen: Process files concurrently in AUTOMOC and AUTOUIC
488baaf0 Autogen: Tests: Fix MocInclude test(s)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1632
2018-01-18 09:46:29 -05:00
Brad King 84e2a7e58a Merge topic 'ctest-libuv-output-decode'
a6e9b9c9 CTest: Fix process output read error cases
c10119df CTest: Fix decoding of MBCS character split by buffering

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1667
2018-01-18 09:43:08 -05:00
Brad King 1c681f9200 Merge topic 'fix_ninja_cuda'
2bd232b5 Ninja: Fixes CUDA device link in Windows

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1662
2018-01-18 09:41:39 -05:00
Brad King bffdc2e2e1 Merge topic 'msvc_cuda_8_explicitly_specify_cuda_language'
46abfedb CUDA: MSVC will now state files are cuda files when needed

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1658
2018-01-18 09:41:01 -05:00
Kitware Robot 2868019b2f CMake Nightly Date Stamp 2018-01-18 00:01:26 -05:00
Craig Scott 657898ecad Merge topic 'cmSourceGroup-modern-cxx'
969c1f94 cmSourceGroup: code improvements; use std::string and C++11 loops

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1656
2018-01-17 15:06:02 -05:00
Sebastian Holtermann 9cfa213aa6 Autogen: Rename cmQtAutogeneratorInitializer to cmQtAutoGenInitializer 2018-01-17 17:23:49 +01:00
Sebastian Holtermann a008578dee Autogen: Process files concurrently in AUTOMOC and AUTOUIC
This introduces concurrent thread processing in the `_autogen`
target wich processes AUTOMOC and AUTOUIC.
Source file parsing is distributed among the threads by
using a job queue from which the threads pull new parse jobs.
Each thread might start an independent ``moc`` or ``uic`` process.
Altogether this roughly speeds up the AUTOMOC and AUTOUIC build
process by the number of physical CPUs on the host system.

The exact number of threads to start in  the `_autogen` target
is controlled by the new AUTOGEN_PARALLEL target property which
is initialized by the new CMAKE_AUTOGEN_PARALLEL variable.
If AUTOGEN_PARALLEL is empty or unset (which is the default)
the thread count is set to the number of physical CPUs on
the host system.

The AUTOMOC/AUTOUIC generator and the AUTORCC generator are
refactored to use a libuv loop internally.

Closes #17422.
2018-01-17 17:23:49 +01:00
Brad King a6e9b9c9e4 CTest: Fix process output read error cases
The libuv documentation states that the stream read callback may
be called with `nread == 0` for EAGAIN.  Handle this gracefully.
It also states that the callee is responsible for closing the
stream on error.  Always close the stream for `nread < 0`.
2018-01-17 11:20:24 -05:00
Brad King c10119df62 CTest: Fix decoding of MBCS character split by buffering
Use a single `cmProcessOutput` instance persistently to decode
all output of a test process so that partial character bytes
can be buffered.
2018-01-17 10:41:51 -05:00
Kitware Robot 8b49fc3c6f CMake Nightly Date Stamp 2018-01-17 00:01:18 -05:00
Brad King b4dfe1d816 Merge topic 'extend-compile-language-genex'
506fda1c Genex: Enable COMPILE_LANGUAGE for INCLUDE_DIRECTORIES with VS and Xcode
c2f79c98 Genex: Enable COMPILE_LANGUAGE for COMPILE_DEFINITIONS with VS and Xcode
0795d25b cmVisualStudio10TargetGenerator: Factor out include dir computation
1ab4d186 cmLocalVisualStudio7Generator: Clarify variable name of compiled language
07e1a743 cmLocalVisualStudio7Generator: Clarify condition for target that compiles

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1657
2018-01-16 09:33:23 -05:00
Kitware Robot 27cbbf0ed0 CMake Nightly Date Stamp 2018-01-16 00:01:16 -05:00
Kyle Edwards a9c483071e cmCacheManager: Truncate values containing newlines
Fixes #16098.
2018-01-15 09:27:44 -05:00
Francisco Facioni 2bd232b536 Ninja: Fixes CUDA device link in Windows
nvcc in linker mode doesn't support response files

Fixes: #17644
2018-01-15 11:04:37 +00:00
Kitware Robot 675adaa4a4 CMake Nightly Date Stamp 2018-01-15 00:02:16 -05:00
Kitware Robot 7b78242d60 CMake Nightly Date Stamp 2018-01-14 00:01:10 -05:00
Kitware Robot cfd338728b CMake Nightly Date Stamp 2018-01-13 00:03:35 -05:00
Robert Maynard 46abfedb83 CUDA: MSVC will now state files are cuda files when needed
The MSVC CUDA build customizations before CUDA 9 would not explicitly
add the -x cu option when building. This caused .cpp and .c files
invoked with CudaCompile to be compiled as host code and not
cuda. Now when we detect CUDA < 9 we will explicitly add this
option to correct this bug.
2018-01-12 15:17:03 -05:00
Brad King 506fda1cf0 Genex: Enable COMPILE_LANGUAGE for INCLUDE_DIRECTORIES with VS and Xcode
The set of compile flags used for a target's C and C++ sources is based
on the linker language.  By default this is always the C++ flags if any
C++ sources appear in the target, and otherwise the C flags.  Therefore
we can define the `COMPILE_LANGUAGE` generator expression in
`INCLUDE_DIRECTORIES` to match the selected language.

This is not exactly the same as for other generators, but is the best VS
and Xcode can do.  It is also sufficient for many use cases since the
set of include directories for C and C++ is frequently similar but may
be distinct from those for other languages like CUDA.

Fixes: #17435
2018-01-12 14:27:37 -05:00
Brad King c2f79c9867 Genex: Enable COMPILE_LANGUAGE for COMPILE_DEFINITIONS with VS and Xcode
The set of compile flags used for a target's C and C++ sources is based
on the linker language.  By default this is always the C++ flags if any
C++ sources appear in the target, and otherwise the C flags.  Therefore
we can define the `COMPILE_LANGUAGE` generator expression in
`COMPILE_DEFINITIONS` to match the selected language.

This is not exactly the same as for other generators, but is the best VS
and Xcode can do.  It is also sufficient for many use cases since the
set of definitions for C and C++ is frequently similar but may be
distinct from those for other languages like CUDA.

Issue: #17435
2018-01-12 14:27:37 -05:00
Brad King 46ad721597 Merge topic 'cuda_allow_G_to_device_debugging_on_msvc'
dcc606ad CUDA: Allow -G to control device debuging on MSVC.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1619
2018-01-12 09:51:42 -05:00
Brad King af56d7f599 Merge topic 'avoid-ambiguous-extension-logic-for-known-paths'
d6dfde3c cmSourceFile: mark known locations as such
b0716fbc cmSourceFileLocation: allow skipping ambiguous extensions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1646
2018-01-12 09:50:44 -05:00
Kitware Robot c4d75459db CMake Nightly Date Stamp 2018-01-12 00:01:25 -05:00
Brad King 4cf08c96f8 Merge topic 'ctest-libuv'
b5e21d7d CTest: Re-implement test process handling using libuv
fcebff75 cmProcess: Use explicit enum for process exit exception
3dd2edf4 cmProcess: Use explicit enum for process state
5238e6db cmProcess: Remove unused ReportStatus method
c13b68e6 cmCTestRunTest: Modernize constructor and destructor decls
4d6b0903 cmCTestRunTest: Drop unused members
05da65bc cmCTestMultiProcessHandler: Factor out duplicate test finish logic
dd945345 cmCTestMultiProcessHandler: Add helper to make libuv use SA_RESTART
...

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1455
2018-01-11 15:33:03 -05:00
Brad King 0795d25b78 cmVisualStudio10TargetGenerator: Factor out include dir computation 2018-01-11 15:03:02 -05:00
Robert Maynard dcc606ad47 CUDA: Allow -G to control device debuging on MSVC.
Fixes #17551
2018-01-11 13:33:00 -05:00
Brad King 1ab4d186a7 cmLocalVisualStudio7Generator: Clarify variable name of compiled language 2018-01-11 10:55:20 -05:00
Brad King 07e1a74361 cmLocalVisualStudio7Generator: Clarify condition for target that compiles 2018-01-11 10:54:06 -05:00
Brad King 8c450b316f Merge topic 'autogen-nexist-source-fix'
be304fb8 Merge branch 'backport-autogen-nexist-source-fix' into autogen-nexist-source-fix
d592bfc9 Autogen: Ignore not existing source files in cmMakefile
513eb014 Autogen: Ignore not existing source files in cmMakefile

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1651
2018-01-11 10:29:58 -05:00
Brad King 2d5fdc25df Merge topic 'specify-source-extensions'
efd279cd cmake: specify source file extensions

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1645
2018-01-11 10:19:25 -05:00
Brad King fe8d74cc60 Merge topic 'cuda_msvc_support_complex_gencode_signatures'
a91fde13 CUDA: gencode signature that list multiple code types now supported.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !1618
2018-01-11 10:18:11 -05:00
Kitware Robot b2369ad409 CMake Nightly Date Stamp 2018-01-11 00:01:51 -05:00
Vitaly Stakhovsky 969c1f94ae cmSourceGroup: code improvements; use std::string and C++11 loops
Topic-rename: cmSourceGroup-modern-cxx
2018-01-10 19:01:49 -05:00
Brad King ecfc729ad4 Merge branch 'backport-autogen-nexist-source-fix' into release-3.10
Merge-request: !1650
2018-01-10 13:53:59 -05:00
Sebastian Holtermann d592bfc9f5 Autogen: Ignore not existing source files in cmMakefile
Until CMake 3.10 a list of source files that had the AUTOUIC_OPTIONS property
populated was kept in `cmMakefile::QtUiFilesWithOptions`.  In the process to
remove all AUTOUIC related code from `cmMakefile` for CMake 3.10, the pre
filtered list was replaced by a loop in `cmQtAutoGeneratorInitializer` over
all source files in the `cmMakefile`.  This loop introduced the problem that
file paths were computed for source files that weren't in the target's sources
and that might not even have existed.  If the path for an unused and not
existing file was computed a `cmake::FATAL_ERROR` with the error message
"Cannot find source file:" was thrown nevertheless.
This caused some projects to fail in CMake 3.10.

This patch adds a test for path errors in the loops in
`cmQtAutoGeneratorInitializer` that iterate over all source files in a
`cmMakefile`. If a path error appears, the file is silently ignored.
If the file is part of the target's sources, the path error will still be
caught in the loop over all the target's sources.

This is the fix for CMake 3.10.1.
2018-01-10 19:46:22 +01:00
Sebastian Holtermann 513eb014eb Autogen: Ignore not existing source files in cmMakefile
Until CMake 3.10 a list of source files that had the AUTOUIC_OPTIONS property
populated was kept in `cmMakefile::QtUiFilesWithOptions`.  In the process to
remove all AUTOUIC related code from `cmMakefile` for CMake 3.10, the pre
filtered list was replaced by a loop in `cmQtAutoGeneratorInitializer` over
all source files in the `cmMakefile`.  This loop introduced the problem that
file paths were computed for source files that weren't in the target's sources
and that might not even have existed.  If the path for an unused and not
existing file was computed a `cmake::FATAL_ERROR` with the error message
"Cannot find source file:" was thrown nevertheless.
This caused some projects to fail in CMake 3.10.

This patch adds a test for path errors in the loops in
`cmQtAutoGeneratorInitializer` that iterate over all source files in a
`cmMakefile`. If a path error appears, the file is silently ignored.
If the file is part of the target's sources, the path error will still be
caught in the loop over all the target's sources.

Closes #17573
Closes #17589
2018-01-10 18:57:08 +01:00
Ben Boeckel d6dfde3cd3 cmSourceFile: mark known locations as such
Primarily, this includes:

  - the rule files generated for custom targets;
  - source files representing custom targets directly;
  - outputs of custom commands;
  - byproducts of custom commands; and
  - dependencies of custom commands.
2018-01-10 11:21:11 -05:00
Ben Boeckel b0716fbcc5 cmSourceFileLocation: allow skipping ambiguous extensions
The ambiguous extension logic is an old behavior that ends up taking
lots of extra compute cycles to execute. This is triggered by various
CMake codepaths which pass extension-less paths down when CMake actually
knows that they are not ambiguous. These codepaths will be indicated in
upcoming changes.

Various APIs have gained a cmSourceFileLocationKind parameter, but they
are all optional and default to the existing behavior.
2018-01-10 11:21:11 -05:00