| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Since commit fd6076d0 (Tests: Pass CMAKE_MAKE_PROGRAM instead of
--build-makeprogram, 2013-11-15) the ExportImport, Fortran, and
MacRuntimePath tests use the value of CMAKE_TEST_MAKEPROGRAM as the
CMAKE_MAKE_PROGRAM for their nested projects configurations.
Teach these tests to initialize CMAKE_TEST_MAKEPROGRAM when it is
not provided, such as when building the tests manually.
|
|
|
|
|
|
|
|
|
| |
In the code path for launching the VS IDE tools, avoid using
CMAKE_MAKE_PROGRAM. Instead use the variables CMAKE_VS_DEVENV_COMMAND,
CMAKE_VS_MSBUILD_COMMAND, and CMAKE_VS_MSDEV_COMMAND to lookup the
location of the build tool needed. Choose the proper tool based on
availability and necessity for the language (e.g. Intel Fortran must
build with devenv.com and not MSBuild.exe).
|
|
|
|
|
|
|
|
| |
Since commit 5f5c92b9 (VS: Add internal APIs to find MSBuild,
devenv/VCExpress, and msdev, 2013-11-13) the VS generators have
known how to lookup the locations of their build tools directly.
Expose this information to CMake language code by defining new
variables to hold the paths to these tools.
|
|
|
|
|
| |
Explain how it is set for each group of generators. Also explain
the build-time selection behavior used by Visual Studio generators.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
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.
|
|
|
|
| |
Also disable the MFC test if CMAKE_MAKE_PROGRAM is vcexpress.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Collect all ctest_configure options in a list to configure it into the
test script. Drop the unused -DCMAKE_MAKE_PROGRAM argument to ctest.
|
|
|
|
|
| |
Create a "build_options" variable whose value is passed to every
"ctest --build-and-test" call through the --build-options argument.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Teach the VS generators to compute the locations of these tools directly
from registry entries. Add internal APIs to get the locations on demand.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Drop the -DCMAKE_TEST_MAKEPROGRAM argument because the value is not
used inside the test script.
|
| |
|
|
|
|
|
| |
Switch from "ctest --build-and-test" to "cmake --build" to drive the
clean target in the MakeClean test.
|
|
|
|
|
| |
Switch from "ctest --build-and-test" to "cmake --build" to drive the
install and package targets in the SimpleInstall test.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Also drop the temporary MAKEPROGRAM variable and the DART_ROOT special
case. We never run dashboard clients with Dart anymore.
|
|
|
|
|
| |
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).
|
|
|
|
| |
The ShellInstall test has long been replaced by the CMake.Install test.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Add a method to print a command line for human reference by simply
double-quoting every argument.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| |
| | |
3442f2b Help: Format manual/*.1.rst options as definition lists
|
| |
| |
| |
| |
| | |
Convert the command-line option documentation formatting from bullet
lists to definition lists.
|
|\ \
| | |
| | |
| | |
| | | |
e130b9e GetPrerequisites: Preserve search path order from caller.
|
| |/ |
|
|\ \
| | |
| | |
| | |
| | | |
ebf70b0 FindOpenMP: fix detecting compilers that do not need any special flag (#14567)
|
| | | |
|
|\ \ \
| | | |
| | | |
| | | |
| | | | |
58e3d49 MSVC: Fix encoding of Visual Studio 10+ project files.
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Use Windows-1252, which is the same encoding as older
Visual Studio project files.
|
|\ \ \ \
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
bf755c7 set: Add unit tests for set/unset PARENT_SCOPE
bc280f1 set: Fix handling of empty value with PARENT_SCOPE
20afbd5 set: Handle value-less PARENT_SCOPE explicitly
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Create a RunCMake.set test to cover set() command cases, starting with
PARENT_SCOPE.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Just as
set(VAR "")
sets VAR to an empty string in the current scope, the code
set(VAR "" PARENT_SCOPE)
is documented to set the variable to an empty string in the parent
scope. Fix the implementation to make it so.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The code "set(VAR PARENT_SCOPE)" unsets VAR in the parent scope.
Implement this case explicitly next to where "set(VAR)" is explicitly
handled to unset VAR in the current scope.
|
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
15610bb Drop use of configure_file IMMEDIATE option
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Since commit 7d47c693 (Drop compatibility with CMake < 2.4, 2013-10-08)
we no longer need to use the configure_file IMMEDIATE option to support
compatibility modes less than 2.0.
|