summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Notify extra generators about languagesBen Boeckel2013-11-193-0/+13
| | | | | | Some generators can use the any enabled languages to add extra support in the relevant build tool. One such is Eclipse since there are many plugins available for various languages.
* Merge topic 'cleanup-build-commands'Brad King2013-11-1965-1041/+892
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4cce44b Help: Document the CMAKE_MAKE_PROGRAM variable in more detail 558c74d VS: Switch to internal CMAKE_MAKE_PROGRAM lookup by generators 5229f2d Tests: Do not use an explicit make program for VS generators 72dd738 Tests: Fix MFC test heuristic for empty CMAKE_TEST_MAKEPROGRAM fd6076d Tests: Pass CMAKE_MAKE_PROGRAM instead of --build-makeprogram 68031ab Tests: Configure SubProject-Stage2 test more robustly 003d10c Tests: Simplify VSExcludeFromDefaultBuild configuration e47d934 Tests: Simplify VSProjectInSubdir configuration e965cb1 Tests: Simplify CTest.BuildCommand.ProjectInSubdir configuration 72bf255 Tests: Pass --build-options to every test 4d1d772 ctest: Teach --build-options to allow zero options 96966b5 ctest: Make the --build-makeprogram optional for --build-and-test 91a0211 Simplify some calls to cmGlobalGenerator::Build 123a060 Teach GenerateBuildCommand to find its own make program 5f5c92b VS: Add internal APIs to find MSBuild, devenv/VCExpress, and msdev 4ac75fd Prefer CMAKE_MAKE_PROGRAM over CMAKE_BUILD_TOOL (#14548) ...
| * Help: Document the CMAKE_MAKE_PROGRAM variable in more detailBrad King2013-11-181-6/+47
| | | | | | | | | | Explain how it is set for each group of generators. Also explain the build-time selection behavior used by Visual Studio generators.
| * VS: Switch to internal CMAKE_MAKE_PROGRAM lookup by generatorsBrad King2013-11-1822-292/+20
| | | | | | | | | | | | | | | | Drop the "Modules/CMakeVS*FindMake.cmake" files. Override the cmGlobalGenerator::FindMakeProgram method for VS generators to use their internal APIs to locate the build tool. Set the CMAKE_MAKE_PROGRAM as a normal variable for use by project code, but do not cache it. This will allow CMake and CTest to select the proper tool at build time.
| * Tests: Do not use an explicit make program for VS generatorsBrad King2013-11-181-1/+5
| | | | | | | | | | Do not pass the CMAKE_MAKE_PROGRAM cache entry to tests when using the VS generators. Allow them to pick the correct build tool automatically.
| * Tests: Fix MFC test heuristic for empty CMAKE_TEST_MAKEPROGRAMBrad King2013-11-181-1/+1
| | | | | | | | Also disable the MFC test if CMAKE_MAKE_PROGRAM is vcexpress.
| * Tests: Pass CMAKE_MAKE_PROGRAM instead of --build-makeprogramBrad King2013-11-186-9/+9
| | | | | | | | | | | | | | | | | | | | Pass the CMAKE_TEST_MAKEPROGRAM, if any, to each test at CMake time in the CMAKE_MAKE_PROGRAM cache entry. Pass the CMAKE_TEST_MAKEPROGRAM into the ExportImport, Fortran, and MacRuntimePath tests so that they may do the same for the nested project configurations. Now "ctest --build-and-test" can get the make program from the test build tree cache, so drop the explicit --build-makeprogram.
| * Tests: Configure SubProject-Stage2 test more robustlyBrad King2013-11-181-13/+12
| | | | | | | | | | | | | | | | | | | | | | Fix the condition that adds the test to check CMAKE_TEST_GENERATOR rather than the tools used to build CMake. Drop the test on Ninja because the generator does not support subproject generation anyway. Stop using the general build_generator_args and pass the --build-generator options explicitly. Also pass --build-makeprogram explicitly when CMAKE_TEST_MAKEPROGRAM is available because there is no CMakeCache.txt in the test project subdirectory from which to pick up the make program.
| * Tests: Simplify VSExcludeFromDefaultBuild configurationBrad King2013-11-181-2/+9
| | | | | | | | | | | | | | | | | | | | | | Create a CTEST_TEST_DEVENV variable that is set to the CMAKE_MAKE_PROGRAM used for Visual Studio 7, 8, and 9. It will always be either "devenv" or "VCExpress", and not "MSBuild". Add the VSExcludeFromDefaultBuild test only when this variable is set, and use its value as the --build-makeprogram value. More work will be needed later to restore the test on VS 10 and above when devenv is available, but this is the simplest approach for now.
| * Tests: Simplify VSProjectInSubdir configurationBrad King2013-11-181-25/+11
| | | | | | | | | | | | | | | | The test is only enabled on VS 10 and above, where the generators now select for "ctest --build-and-test" the MSBuild tool by default. Simplify the test configuration by dropping the --build-makeprogram option and all the logic needed to compute its value. The test will automatically use MSBuild.
| * Tests: Simplify CTest.BuildCommand.ProjectInSubdir configurationBrad King2013-11-182-7/+8
| | | | | | | | | | Collect all ctest_configure options in a list to configure it into the test script. Drop the unused -DCMAKE_MAKE_PROGRAM argument to ctest.
| * Tests: Pass --build-options to every testBrad King2013-11-181-27/+98
| | | | | | | | | | Create a "build_options" variable whose value is passed to every "ctest --build-and-test" call through the --build-options argument.
| * ctest: Teach --build-options to allow zero optionsBrad King2013-11-181-14/+5
| | | | | | | | | | | | The --build-options option consumes all following arguments until either --build-target or --test-command. Fix the logic to allow this to be zero options.
| * ctest: Make the --build-makeprogram optional for --build-and-testBrad King2013-11-182-7/+12
| | | | | | | | | | | | | | | | | | | | GenerateBuildCommand now knows how to lookup CMAKE_MAKE_PROGRAM or choose a generator-provided default build tool. Therefore the --build-makeprogram can now be optional and simply override the default selection when provided. Note that with --build-nocmake we now need to load the cache in order to make the CMAKE_MAKE_PROGRAM entry available to GenerateBuildCommand.
| * Simplify some calls to cmGlobalGenerator::BuildBrad King2013-11-182-18/+2
| | | | | | | | | | | | | | | | Code paths that look up CMAKE_MAKE_PROGRAM from the cache only to pass it to Build, which only passes it to GenerateBuildCommand, no longer need to do so. GenerateBuildCommand now knows how to look up CMAKE_MAKE_PROGRAM in the cache when no explicit value is given, so simply pass 0 now.
| * Teach GenerateBuildCommand to find its own make programBrad King2013-11-188-59/+96
| | | | | | | | | | | | | | | | Add a cmGlobalGenerator::SelectMakeProgram method to select a caller-provided make program, the CMAKE_MAKE_PROGRAM cache entry, or a generator-provided default. Call it from all implementations of the GenerateBuildCommand method with the corresponding generator's default, if any.
| * VS: Add internal APIs to find MSBuild, devenv/VCExpress, and msdevBrad King2013-11-188-0/+139
| | | | | | | | | | Teach the VS generators to compute the locations of these tools directly from registry entries. Add internal APIs to get the locations on demand.
| * Prefer CMAKE_MAKE_PROGRAM over CMAKE_BUILD_TOOL (#14548)Brad King2013-11-187-20/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | Historically these were both added for the Makefile and Visual Studio generators, respectively. Later the VS generators started using the CMAKE_MAKE_PROGRAM cache entry to find the IDE build tool, and the CMAKE_BUILD_TOOL was simply set as an alias. Fix the documentation to explain that CMAKE_MAKE_PROGRAM is the modern variable and that CMAKE_BUILD_TOOL is the compatibility alias, not the other way around. Replace uses of CMAKE_BUILD_TOOL with CMAKE_MAKE_PROGRAM in CMake-provided modules. Nothing needs to lookup CMAKE_BUILD_TOOL in the cache, so simply set it as a normal variable.
| * Tests: Split <test>_EXTRA_OPTIONS into <test>_(CTEST|BUILD)_OPTIONSBrad King2013-11-181-10/+12
| | | | | | | | | | | | Some extra options are for "ctest --build-and-test" directly, and others are values for "--build-options". Split these two roles out into two separate variables and update existing uses.
| * Tests: Simplify ExternalProjectUpdate test argumentsBrad King2013-11-181-1/+0
| | | | | | | | | | Drop the -DCMAKE_TEST_MAKEPROGRAM argument because the value is not used inside the test script.
| * Tests: Fix make capability selection for empty CMAKE_TEST_MAKEPROGRAMBrad King2013-11-181-3/+3
| |
| * Tests: Teach MakeClean to use "cmake --build"Brad King2013-11-181-9/+2
| | | | | | | | | | Switch from "ctest --build-and-test" to "cmake --build" to drive the clean target in the MakeClean test.
| * Tests: Teach SimpleInstall to use "cmake --build"Brad King2013-11-182-28/+22
| | | | | | | | | | Switch from "ctest --build-and-test" to "cmake --build" to drive the install and package targets in the SimpleInstall test.
| * Tests: Launch CMake.Install test through 'cmake --build'Brad King2013-11-181-18/+4
| | | | | | | | | | | | Use "cmake --build" to drive the "install" target from the CMake build tree itself. This avoids using the heavier "ctest --build-and-test" just to run the native build tool to drive installation.
| * Tests: Launch BootstrapTest through cmake instead of ctestBrad King2013-11-182-10/+16
| | | | | | | | | | | | Run the bootstrap script through "cmake -P" instead of "ctest --build-and-test" so that we do not need to abuse the --build-makeprogram option of the latter.
| * Tests: Move CMAKE_TEST_MAKEPROGRAM into Tests/CMakeLists.txtBrad King2013-11-182-5/+4
| | | | | | | | | | Also drop the temporary MAKEPROGRAM variable and the DART_ROOT special case. We never run dashboard clients with Dart anymore.
| * Tests: Remove unused Source/cmaketest.h.in fileBrad King2013-11-181-16/+0
| | | | | | | | | | This file has not been used since commit 2c2291bb (add new feature to ctest so that it can cmake, build and run a test executable, 2004-01-07).
| * Tests: Drop remnants of unused ShellInstall testBrad King2013-11-182-76/+0
| | | | | | | | The ShellInstall test has long been replaced by the CMake.Install test.
| * cmGlobalGenerator: Cleanup GenerateBuildCommand APIBrad King2013-11-1816-305/+234
| | | | | | | | | | | | | | | | | | All cmGlobalGenerator::GenerateBuildCommand call sites that need to produce a string now generate "cmake --build" commands. The remaining call sites immediately pass the result to cmSystemTools::RunSingleCommand. Avoid the intermediate string and argument parsing by directly producing a vector of strings. Also drop the ignoreErrors argument because no call sites remain that use it.
| * cmSystemTools: Add PrintSingleCommand methodBrad King2013-11-152-0/+19
| | | | | | | | | | Add a method to print a command line for human reference by simply double-quoting every argument.
| * cmSystemTools: Add RunSingleCommand overload for std::vector<std::string>Brad King2013-11-152-1/+22
| |
| * ctest_build: Use "cmake --build" to launch the native build toolBrad King2013-11-151-7/+2
| | | | | | | | | | | | | | | | | | | | This avoids requiring cmGlobalGenerator::GenerateBuildCommand to produce a string so that it can be later refactored to produce a vector with no quoting or escaping. It also makes the ctest_build command match what "ctest -T Build" would run in a build tree configured with the new build_command() command behavior. It also ensures that the native build tool used matches that selected by the configuration of the tree to be built.
| * build_command: Return a "cmake --build" command-lineBrad King2013-11-156-54/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Re-implement the build_command() command to use "cmake --build" instead of generating a native build tool invocation directly. This command will internally invoke the proper native build tool. This avoids requiring cmGlobalGenerator::GenerateBuildCommand to produce a string so that it can be later refactored to produce a vector with no quoting or escaping. It will also allow us to later teach CMake to delay the decision about which build tool to invoke until after the project build system is generated to disk. For example, on Visual Studio 10 and above the preferred command-line tool is MSBuild, but we need to fall back to devenv if the .sln has Intel Fortran .vfproj files.
| * cmGlobalGenerator: Add method to compute "cmake --build" command lineBrad King2013-11-143-0/+48
| | | | | | | | | | | | Create a GenerateCMakeBuildCommand method to generate a command-line string invoking "cmake --build" for a given target and configuration. Optionally allow the "-i" make flag and additional native options.
| * cmGlobalGenerator: Drop unused GenerateBuildCommand implementationBrad King2013-11-141-33/+5
| | | | | | | | | | | | This is a virtual method that is overridden by every generator subclass. The base class implementation should never be called, so replace it with a dummy implementation.
* | Merge topic 'doc-ExternalProject-formatting'Brad King2013-11-191-70/+59
|\ \ | | | | | | | | | | | | 01ecd24 ExternalProject: Format module documentation
| * | ExternalProject: Format module documentationBrad King2013-11-191-70/+59
| | | | | | | | | | | | | | | | | | | | | | | | Manually revise the .rst format of the documentation. Use inline literal quotes appropriately in paragraph text. Move the :: literal block openers to the end of the preceding paragraphs. Convert the command signature documentation and examples to cmake code-block directives.
* | | Merge topic 'forbid-reserved-targets'Brad King2013-11-1924-59/+273
|\ \ \ | | | | | | | | | | | | | | | | 3900fcf CMP0037: Extend policy to reserved names and custom targets
| * | | CMP0037: Extend policy to reserved names and custom targetsNils Gladitz2013-11-1924-59/+273
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach add_custom_target to check the policy too. Extend the policy to disallow reserved target names that we use for builtin targets like "all". Extend the RunCMake.CMP0037 test to cover these cases.
* | | | Merge topic 'emacs-mode-no-reserved-bindings'Brad King2013-11-191-17/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 0f21261 cmake-mode.el: drop reserved keybindings (#14576)
| * | | | cmake-mode.el: drop reserved keybindings (#14576)Brad King2013-11-181-17/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The keybindings added by commit 301e67e3 (cmake-mode.el: add local keybindings, 2012-09-20) overlap the reserved C-c space: http://www.gnu.org/software/emacs/manual/html_node/elisp/Key-Binding-Conventions.html Revert the commit to drop them. Reported-by: Paul Smith <paul@mad-scientist.net> Reviewed-by: Eric NOULARD <eric.noulard@gmail.com>
* | | | | Merge topic 'cpack-internal-variables'Brad King2013-11-191-31/+31
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 7621ad6 CPack: don't write internal variables to CPackConfig.cmake
| * | | | | CPack: don't write internal variables to CPackConfig.cmakeNils Gladitz2013-11-171-31/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The internal variables CPACK_ADDCOMP_COMPONENTS, CPACK_ADDCOMP_STR and CPACK_ADDCOMP_UNAME were being needlessly exported to CPackConfig.cmake. Prefixing them with an underscore prevents this. CPACK_ADDCOMP_STR was particularily problematic since it contains unescaped quotes.
* | | | | | Merge topic 'fix-remove-forbidden-flags'Brad King2013-11-191-1/+34
|\ \ \ \ \ \ | |_|_|_|/ / |/| | | | | | | | | | | | | | | | | 3a8f34b Makefile: Remove "forbidden" flags only as a whole
| * | | | | Makefile: Remove "forbidden" flags only as a wholeNils Gladitz2013-11-191-1/+34
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | Fix CMAKE_<LANG>_CREATE_SHARED_LIBRARY_FORBIDDEN_FLAGS implementation to only remove whole flags. Without this n the Mac we were incorrectly removing -w from -Wno-write-strings.
* | | | | CMake Nightly Date StampKitware Robot2013-11-191-1/+1
| |_|/ / |/| | |
* | | | Merge topic 'doc-ctest-upload-part'Brad King2013-11-181-0/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 7eb9940 CTest: added documentation for the "Upload" submission PART
| * | | | CTest: added documentation for the "Upload" submission PARTNils Gladitz2013-11-151-0/+1
| |/ / /
* | | | CMake Nightly Date StampKitware Robot2013-11-181-1/+1
| |/ / |/| |
* | | CMake Nightly Date StampKitware Robot2013-11-171-1/+1
| | |