summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Help: Document Ninja generator conditional Fortran supportBrad King2016-09-222-0/+16
| | | | Closes: #14215
* Ninja: Add dyndep rules for Fortran module dependenciesBrad King2016-09-222-1/+174
| | | | | Teach the Ninja generator to add dyndep rules and bindings as described in the design comment in `Source/cmGlobalNinjaGenerator.cxx`.
* Ninja: Add explicit preprocessing step for FortranBrad King2016-09-225-1/+179
| | | | | | | | | | 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.
* Ninja: Conditionally allow Fortran based on ninja 'dyndep' supportBrad King2016-09-222-4/+40
| | | | | Detect from the version of Ninja whether it supports the dynamically discovered dependencies (dyndep) feature needed to support Fortran.
* Ninja: Add internal tool to produce a ninja dyndep file for FortranBrad King2016-09-223-0/+236
| | | | | | | 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.
* Ninja: Add internal tool to scan Fortran code for module dependenciesBrad King2016-09-222-0/+135
| | | | | | | | 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.
* Ninja: Add comment with Fortran dependency design documentationBrad King2016-09-221-0/+78
|
* Ninja: Add API to check for dyndep supportBrad King2016-09-222-0/+12
| | | | | | | 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.
* Ninja: Refactor ninja feature detectionBrad King2016-09-222-6/+18
| | | | | 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.
* Ninja: Refactor Fortran rejection logicBrad King2016-09-224-3/+27
| | | | | | | | | 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.
* Merge topic 'test-fixtures'Brad King2016-09-2228-3/+646
|\ | | | | | | | | 73f47c9e CTest: Add support for test fixtures
| * CTest: Add support for test fixturesCraig Scott2016-09-2028-3/+646
| | | | | | | | | | | | | | | | | | | | | | Add new test properties: * FIXTURES_SETUP * FIXTURES_CLEANUP * FIXTURES_REQUIRED to specify the roles and dependencies of tests providing/using test fixtures.
* | Merge topic 'cmake-server-pipes'Brad King2016-09-2211-149/+476
|\ \ | | | | | | | | | | | | 1d601c6c server-mode: Introduce cmServerConnection
| * | server-mode: Introduce cmServerConnectionTobias Hunger2016-09-2211-149/+476
| | | | | | | | | | | | | | | | | | | | | | | | Use it to split pipe and stdin/out handling out of cmServer itself. The server will shut down when it looses its connection to the client. This has the nice property that a crashing client will cause the server to terminate as the OS will close the connection on behave of the client.
* | | CMake Nightly Date StampKitware Robot2016-09-221-1/+1
|/ /
* | Merge topic 'ctest-capture-error'Brad King2016-09-2120-8/+201
|\ \ | | | | | | | | | | | | | | | | | | adf1e32f Help: Add notes for topic 'ctest-capture-error' d328dc68 CTest: Add CAPTURE_CMAKE_ERROR val to `ctest_*` commands 9ac2e189 ctest_coverage: If gcov is not found just warn, not error
| * | Help: Add notes for topic 'ctest-capture-error'Brad King2016-09-201-0/+8
| | |
| * | CTest: Add CAPTURE_CMAKE_ERROR val to `ctest_*` commandsBill Hoffman2016-09-2018-6/+192
| | | | | | | | | | | | | | | | | | | | | If a `ctest_*` command has CAPTURE_CMAKE_ERROR then any errors generated by cmake during that command will cause the value to be assigned `-1`. This will prevent a `ctest -S` script from returning non-zero unless the script explicitly calls `message(FATAL_ERROR)`.
| * | ctest_coverage: If gcov is not found just warn, not errorBill Hoffman2016-09-201-2/+1
| | |
* | | Merge topic 'cmake-server-more-info'Brad King2016-09-215-46/+219
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4fb2b41a server-mode: Add debug support 537efe05 server-mode: Report Messages from cmake to clients ca779948 server-mode: Automate progress reporting 70b8ba9a cmake-server: Use consistent constant naming style
| * | | server-mode: Add debug supportTobias Hunger2016-09-203-15/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Enable the server to support development with some helper tools: You can now request debug information with statistics on how long execution of a command took, how long it took to serialize the JSON files, and how big the serialized JSON string is. Also allow to dump results into a file.
| * | | server-mode: Report Messages from cmake to clientsTobias Hunger2016-09-205-1/+64
| | | | | | | | | | | | | | | | | | | | Pass messages sent from cmake via Error(...) or Message(...) on to clients.
| * | | server-mode: Automate progress reportingTobias Hunger2016-09-203-5/+25
| | | | | | | | | | | | | | | | | | | | Wire up cmake::SetProgressUpdate to do progress reporting via the cmake server.
| * | | cmake-server: Use consistent constant naming styleTobias Hunger2016-09-202-31/+27
| | |/ | |/|
* | | Merge topic 'fortran-submodules'Brad King2016-09-217-523/+660
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | df4aeb31 Help: Add notes for topic 'fortran-submodules' b5ac8b8a Fortran: Add support for submodule syntax in dependency scanning bdcc1f51 cmFortranParser: Skip module procedures/functions/subroutines
| * | | Help: Add notes for topic 'fortran-submodules'Brad King2016-09-201-0/+7
| | | |
| * | | Fortran: Add support for submodule syntax in dependency scanningBrad King2016-09-206-521/+643
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fortran 2008 [1] adds support for a new syntax related to modules: submodule ( ParentModule ) SubModule submodule ( ParentModule : SubModule ) NestedSubModule Both of these mean that the current source file requires the module `ParentModule` to be available if it is not provided in the current file. Teach our Fortran dependency scanner to parse this syntax to extract this relationship. For now simply tolerate the nested submodule case and extract only the dependency it expresses on the main module. Further work will be needed to extract dependencies among nested submodules. [1] http://fortranwiki.org/fortran/show/Fortran+2008 Closes: #16234
| * | | cmFortranParser: Skip module procedures/functions/subroutinesBrad King2016-09-202-47/+55
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fortran allows the syntax MODULE PROCEDURE ... MODULE FUNCTION ... MODULE SUBROUTINE ... to declare procedures/functions/subroutines that are members of modules. Do not treat such syntax as the definition of a module with one of these names. Issue: #16234
* | | Merge topic 'ninja-implicit-outputs'Brad King2016-09-214-12/+39
|\ \ \ | | | | | | | | | | | | | | | | | | | | 501f9c93 cmGlobalNinjaGenerator: Add API to check for implicit outputs support 144a24dc cmGlobalNinjaGenerator: Teach WriteBuild about implicit outputs
| * | | cmGlobalNinjaGenerator: Add API to check for implicit outputs supportBrad King2016-09-202-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | Ninja 1.7 introduced support for implicit outputs on build statements. Add an internal API to check whether the Ninja version in use for the build supports this feature.
| * | | cmGlobalNinjaGenerator: Teach WriteBuild about implicit outputsBrad King2016-09-204-12/+30
| |/ / | | | | | | | | | | | | | | | | | | | | | Ninja 1.7 introduced support for implicit outputs on build statements. Teach WriteBuild to generate the corresponding syntax. Leave it up to callers to decide whether implicit outputs are supported by the Ninja version in use. For now simply update all call sites to pass an empty list of implicit outputs.
* | | Merge topic 'refactor-fortran-module-dir-lookup'Brad King2016-09-214-9/+27
|\ \ \ | | | | | | | | | | | | | | | | | | | | 7b5f8567 Fortran: Use module dir flag if needed for default module directory 1777570f cmGeneratorTarget: Refactor Fortran module directory lookup
| * | | Fortran: Use module dir flag if needed for default module directoryBrad King2016-09-204-7/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Our buildsystem model says that the default Fortran module output directory is the build tree directory corresponding to the source tree `CMakeLists.txt` file adding the current target. Extend `cmGeneratorTarget::GetFortranModuleDirectory` to allow generators to pass in the compiler working directory. If the working directory does not match the default Fortran module output directory then we need an explicit module directory flag (e.g. `-J`) to tell the compiler to put/use modules in the latter. This does not affect the Makefile generator but will be useful for future introduction of Fortran support to the Ninja generator.
| * | | cmGeneratorTarget: Refactor Fortran module directory lookupBrad King2016-09-201-2/+5
| |/ / | | | | | | | | | Make `target_module_dir` and owned value so we can modify it.
* | | Merge topic 'update-kwsys'Brad King2016-09-213-67/+175
|\ \ \ | | | | | | | | | | | | | | | | | | | | 3876e297 Merge branch 'upstream-KWSys' into update-kwsys 9783ed1e KWSys 2016-09-20 (3f69ac40)
| * \ \ Merge branch 'upstream-KWSys' into update-kwsysBrad King2016-09-203-67/+175
| |\ \ \ | | |/ / | |/| | | | | | | | | | * upstream-KWSys: KWSys 2016-09-20 (3f69ac40)
| | * | KWSys 2016-09-20 (3f69ac40)KWSys Upstream2016-09-203-67/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Code extracted from: http://public.kitware.com/KWSys.git at commit 3f69ac4009443743e17d6335f1952b8755aee054 (master). Upstream Shortlog ----------------- Dāvis Mosāns (6): f53440fe ConsoleBuf: Improve test error messages fd9e86e8 ConsoleBuf: Use two separate events for test sync fb8530ed ConsoleBuf: Make test more reliable c49ddccb ConsoleBuf: Fix test registry restoration 10e3f947 ConsoleBuf: Fix test to compare all bytes of wide character strings 3f69ac40 ConsoleBuf: Output console and test buffers on test failure
* | | | Merge topic 'runcmake-cpack-test-framework-fix'Brad King2016-09-211-70/+17
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | cb851a7c Tests: Fix RunCMake.CPack test infrastructure after logical conflict
| * | | | Tests: Fix RunCMake.CPack test infrastructure after logical conflictDomen Vrankar2016-09-201-70/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The changes in commit d9cec8ad (CPack/RPM: Generate source rpm (SRPM) packages on demand, 2016-09-19) logically conflict with the infrastructure updates in commit 4682b42b (Tests: Add subtest support to RunCMake/CPack infrastructure, 2016-09-13). Integrate the two changes so they work together.
* | | | | CMake Nightly Date StampKitware Robot2016-09-211-1/+1
| |/ / / |/| | |
* | | | Merge topic 'directory-list-targets-and-subdirs'Brad King2016-09-2014-1/+134
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | d0be1e15 Add directory properties to get source and binary directories cbca6582 Add directory property to list buildsystem targets 7a4b8d0d Add a directory property to list subdirectories 089868a2 cmState: Record buildsystem target names in each directory
| * | | | Add directory properties to get source and binary directoriesBrad King2016-09-197-1/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add SOURCE_DIR and BINARY_DIR directory properties that return the absolute paths to the corresponding directories. These correspond to the target properties of the same names that we already have.
| * | | | Add directory property to list buildsystem targetsBrad King2016-09-197-1/+36
| | | | | | | | | | | | | | | | | | | | | | | | | Add a BUILDSYSTEM_TARGETS property to allow project code to traverse the list of its own targets in a given directory.
| * | | | Add a directory property to list subdirectoriesBrad King2016-09-199-1/+46
| | | | | | | | | | | | | | | | | | | | | | | | | Add a SUBDIRECTORIES directory property to allow project code to traverse the directory structure of itself as CMake sees it.
| * | | | cmState: Record buildsystem target names in each directoryBrad King2016-09-193-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Maintain in the directory state the list of target names added to be built. These are normal, non-imported targets (but do include INTERFACE libraries).
* | | | | Merge topic 'cpack-rpm-policy-warnings'Brad King2016-09-201-1/+4
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | edb3f6ee CPackRPM: Avoid CMP0007 warnings
| * | | | CPackRPM: Avoid CMP0007 warningsDomen Vrankar2016-09-201-1/+4
| |/ / / | | | | | | | | | | | | | | | | For older versions of CMake minimum required version CMP0007 policy warning was printed out.
* | | | Merge topic 'cpack-rpm-srpm-package'Brad King2016-09-209-26/+359
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | d9cec8ad CPack/RPM: Generate source rpm (SRPM) packages on demand
| * | | | CPack/RPM: Generate source rpm (SRPM) packages on demandDomen Vrankar2016-09-209-26/+359
| |/ / / | | | | | | | | | | | | Closes: #15839
* | | | Merge topic 'cpack.hash_computing'Brad King2016-09-2011-13/+116
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | 1c63aa4d CPack: Add option to generate a checksum file next to each package file 4682b42b Tests: Add subtest support to RunCMake/CPack infrastructure