summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'cross-compiling-toolchain-variables'Brad King2013-11-223-1/+31
|\ | | | | | | | | 7521da2 Introduce CMAKE_STAGING_PREFIX variable.
| * Introduce CMAKE_STAGING_PREFIX variable.Stephen Kelly2013-11-213-1/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This variable can be useful in cross-compiling contexts where the sysroot is read-only or where the sysroot should otherwise remain pristine. If the new CMAKE_STAGING_PREFIX variable is set, it is used instead of CMAKE_INSTALL_PREFIX when generating the installation rules in cmake_install.cmake. This way, the CMAKE_INSTALL_PREFIX variable always refers to the installation prefix on the target device, regardless of whether host==target. If any -rpath paths passed to the linker contain the CMAKE_STAGING_PREFIX, the matching path fragments are replaced with the CMAKE_INSTALL_PREFIX. Matching paths in the -rpath-link are not transformed. The cross-prefix usr-move workaround is assumed not to require extension regarding CMAKE_STAGING_PREFIX. The staging area is a single prefix, so there is no scope for cross-prefix symlinks. The CMAKE_INSTALL_PREFIX is still used to determine the workaround path, and that variable remains the relevant one even if CMAKE_STAGING_PREFIX is used. If the generated export files are deployed to the target, the workaround will still be in place, and still be employed if required.
* | Merge topic 'qt-dialog-reconfigure'Brad King2013-11-221-0/+1
|\ \ | | | | | | | | | | | | b566987 cmake-gui: Configure again if a variable is changed before Generate is pushed.
| * | cmake-gui: Configure again if a variable is changed before Generate is pushed.Clinton Stimpson2013-11-211-0/+1
| | |
* | | CMake Nightly Date StampKitware Robot2013-11-221-1/+1
| | |
* | | Merge topic 'missing-target-error'Brad King2013-11-213-23/+57
|\ \ \ | | | | | | | | | | | | | | | | a02f3d2 Add policy CMP0040 to disallow custom commands on missing targets
| * | | Add policy CMP0040 to disallow custom commands on missing targetsNils Gladitz2013-11-213-23/+57
| |/ /
* | | Merge topic 'cmake-credits'Brad King2013-11-212-6/+14
|\ \ \ | | | | | | | | | | | | | | | | 6fc4ab9 Credit Kitware and csimsoft for their maintenance roles
| * | | Credit Kitware and csimsoft for their maintenance rolesBrad King2013-11-192-6/+14
| | |/ | |/| | | | | | | | | | Add maintenance credit to command-line "--version" output and the cmake-gui "About" dialog.
* | | CMake Nightly Date StampKitware Robot2013-11-211-1/+1
| |/ |/|
* | Merge topic 'constify'Brad King2013-11-2012-74/+83
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 15eeace cmTarget: Trivially make more API const. be9dfb6 cmTarget: Make GetExportMacro const. 0794c13 cmTarget: Make NameResolvesToFramework const. 1c27521 cmGlobalGenerator: Make NameResolvesToFramework const. 37554ac cmMakefile: Make FindTarget const. 8841d73 cmMakefile: Make IsAlias const. 36e31cd cmTarget: Make GetInterfaceLinkLibraries const. 04d398d cmTarget: Make GetTargetSourceFileFlags const. 50d1520 cmTarget: Make custom command accessors API const. 0f87643 cmGeneratorTarget: Make GetIncludeDirectories const.
| * | cmTarget: Trivially make more API const.Stephen Kelly2013-11-192-25/+26
| | |
| * | cmTarget: Make GetExportMacro const.Stephen Kelly2013-11-192-3/+3
| | | | | | | | | | | | The std::string member is only used for memory management.
| * | cmTarget: Make NameResolvesToFramework const.Stephen Kelly2013-11-192-3/+3
| | |
| * | cmGlobalGenerator: Make NameResolvesToFramework const.Stephen Kelly2013-11-192-9/+11
| | |
| * | cmMakefile: Make FindTarget const.Stephen Kelly2013-11-192-8/+6
| | |
| * | cmMakefile: Make IsAlias const.Stephen Kelly2013-11-192-2/+2
| | |
| * | cmTarget: Make GetInterfaceLinkLibraries const.Stephen Kelly2013-11-192-2/+2
| | |
| * | cmTarget: Make GetTargetSourceFileFlags const.Stephen Kelly2013-11-192-6/+7
| | |
| * | cmTarget: Make custom command accessors API const.Stephen Kelly2013-11-197-13/+20
| | | | | | | | | | | | Add specific mutators instead of providing non-const refs.
| * | cmGeneratorTarget: Make GetIncludeDirectories const.Stephen Kelly2013-11-192-3/+3
| | |
* | | Merge topic 'dev/better-eclipse-language-support'Brad King2013-11-205-6/+60
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | a990722 eclipse: Support custom natures via a global property 51726cc eclipse: Add natures for Eclipse based on enabled languages 4a352d4 Notify extra generators about languages
| * | | eclipse: Support custom natures via a global propertyBen Boeckel2013-11-191-0/+12
| | | | | | | | | | | | | | | | | | | | This is useful for enabling natures not recognized by the Eclipse generator directly in a project.
| * | | eclipse: Add natures for Eclipse based on enabled languagesBen Boeckel2013-11-192-6/+35
| | | | | | | | | | | | | | | | Also adds support for the Java nature if Java is being used.
| * | | 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 'remove-LOCATION-property-use'Brad King2013-11-201-1/+1
|\ \ \ | | | | | | | | | | | | | | | | | | | | a247911 Tests: Don't read the LOCATION property from build targets. cffcdd8 KDevelop: Use GetLocation(0) instead of LOCATION property.
| * | | KDevelop: Use GetLocation(0) instead of LOCATION property.Stephen Kelly2013-11-191-1/+1
| |/ / | | | | | | | | | This can be migrated to use cmGeneratorTarget later.
* | | Merge topic 'fix-help-format-warning-exit'Brad King2013-11-202-13/+16
|\ \ \ | | | | | | | | | | | | | | | | e7434d4 cmDocumentation: Fix exit after help output format warnings
| * | | cmDocumentation: Fix exit after help output format warningsBrad King2013-11-192-13/+16
| |/ / | | | | | | | | | | | | | | | | | | | | | After warning that a help output format is no longer supported, fix the return value from cmDocumentation::CheckOptions to indicate that it was still a help option that was parsed. Otherwise CMake moves on to treat the help output file name as a source tree and complains that it does not exist.
* | | Merge topic 'vs9-map-Fd'Brad King2013-11-201-0/+2
|\ \ \ | | | | | | | | | | | | | | | | bf1db49 VS: Map /Fd to ProgramDataBaseFileName for VS 7,8,9 (#14577)
| * | | VS: Map /Fd to ProgramDataBaseFileName for VS 7,8,9 (#14577)Brad King2013-11-181-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit 42ba1b08 (VS: Separate compiler and linker PDB files, 2013-04-05) the VS generators no longer add ProgramDataBaseFileName. Therefore we should allow projects to do so by mapping the /Fd option. For VS >= 10 our flag tables map /Fd to ProgramDataBaseFileName already. Add the mapping for VS 7, 8, and 9.
* | | | CMake Nightly Date StampKitware Robot2013-11-201-1/+1
| |_|/ |/| |
* | | Merge topic 'cross-compiling-toolchain-variables'Brad King2013-11-194-7/+114
|\ \ \ | |_|/ |/| | | | | | | | | | | | | | | | | 7cd65c9 Add CMAKE_SYSROOT variable to set --sysroot when cross compiling. 5096967 Allow toolchain files to specify an external toolchain. 76552d5 Add compiler target compile options. f41ecd1 CMakeDetermineCompilerId: Look for internal file only on host
| * | Add CMAKE_SYSROOT variable to set --sysroot when cross compiling.Stephen Kelly2013-11-194-7/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As CMAKE_ROOT_FIND_PATH can be a list, a new CMAKE_SYSROOT is introduced, which is never a list. The contents of this variable is passed to supporting compilers as --sysroot. It is also accounted for when processing implicit link directories reported by the compiler, and when generating RPATH information.
| * | Allow toolchain files to specify an external toolchain.Stephen Kelly2013-11-192-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | Clang can compile code, but uses the gcc tools for other tasks such as linking. The -gcc-toolchain option can be used for that, but generalize so that other compilers can be treated the same. If such a location is specified, use it as a hint for finding the binutils executables.
| * | Add compiler target compile options.Stephen Kelly2013-11-192-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For clang, this allows passing -target <triple> to the compiler, and for qcc, -V<arch> using toolchain files containing something like set(triple arm-linux-gnueabihf) set(CMAKE_C_COMPILER "/usr/bin/clang") set(CMAKE_C_COMPILER_TARGET ${triple}) set(CMAKE_CXX_COMPILER "/usr/bin/clang++") set(CMAKE_CXX_COMPILER_TARGET ${triple}) or set(arch gcc_ntoarmv7le) set(CMAKE_C_COMPILER /opt/qnx650/host/linux/x86/usr/bin/qcc) set(CMAKE_C_COMPILER_TARGET ${arch}) set(CMAKE_CXX_COMPILER /opt/qnx650/host/linux/x86/usr/bin/QCC) set(CMAKE_CXX_COMPILER_TARGET ${arch}) Both clang and qcc are inherently cross compiler( driver)s. When cross-compiling with clang, use the CMAKE_${lang}_COMPILER_TARGET as the _CMAKE_TOOLCHAIN_PREFIX to find the appropriate binutils. When cross-compiling with QNX qcc, use the CMAKE_${lang}_COMPILER_TARGET to set the appropriate _CMAKE_TOOLCHAIN_PREFIX.
* | | Merge topic 'cleanup-build-commands'Brad King2013-11-1931-464/+582
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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) ...
| * | | VS: Switch to internal CMAKE_MAKE_PROGRAM lookup by generatorsBrad King2013-11-1814-9/+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.
| * | | 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-181-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: 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).
| * | | 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-151-25/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.