diff options
-rw-r--r-- | Help/manual/cmake-presets.7.rst | 21 | ||||
-rw-r--r-- | Help/manual/cmake.1.rst | 13 | ||||
-rw-r--r-- | Source/cmBuildOptions.h | 18 | ||||
-rw-r--r-- | Source/cmGlobalVisualStudio10Generator.cxx | 2 | ||||
-rw-r--r-- | Source/cmake.cxx | 3 | ||||
-rw-r--r-- | Source/cmakemain.cxx | 2 |
6 files changed, 29 insertions, 30 deletions
diff --git a/Help/manual/cmake-presets.7.rst b/Help/manual/cmake-presets.7.rst index 31bd9c0..346e821 100644 --- a/Help/manual/cmake-presets.7.rst +++ b/Help/manual/cmake-presets.7.rst @@ -498,17 +498,16 @@ that may contain the following fields: .. note:: - If this setting is not specified in a preset, CMake will instead - use the setting specified by the ``--resolve-package-references`` - command line parameter. If the command line parameter is not - provided either, an environment-specific cache variable will be - evaluated to decide, if package restoration should be performed. - - When using the Visual Studio generator, package references are - defined using the :prop_tgt:`VS_PACKAGE_REFERENCES` property. - Package references are restored using NuGet. It can be disabled - by setting the ``CMAKE_VS_NUGET_PACKAGE_RESTORE`` variable to - ``OFF``. This can also be done from within a configure preset. + The command line parameter ``--resolve-package-references`` will take + priority over this setting. If the command line parameter is not provided + and this setting is not specified, an environment-specific cache variable + will be evaluated to decide, if package restoration should be performed. + + When using the Visual Studio generator, package references are defined + using the :prop_tgt:`VS_PACKAGE_REFERENCES` property. Package references + are restored using NuGet. It can be disabled by setting the + ``CMAKE_VS_NUGET_PACKAGE_RESTORE`` variable to ``OFF``. This can also be + done from within a configure preset. ``verbose`` diff --git a/Help/manual/cmake.1.rst b/Help/manual/cmake.1.rst index 7eb7dec..c68e7a9 100644 --- a/Help/manual/cmake.1.rst +++ b/Help/manual/cmake.1.rst @@ -472,16 +472,15 @@ following options: target. When set to ``only``, the packages will be restored, but no build will be performed. When set to ``off``, no packages will be restored. - If the target does not define any package references, this option does - nothing. + If the target does not define any package references, this option does nothing. This setting can be specified in a build preset (using - ``resolvePackageReferences``). In this case, the command line option will - be ignored. + ``resolvePackageReferences``). The preset setting will be ignored, if this + command line option is specified. - If the no command line parameter or preset option is not provided, an - environment-specific cache variable will be evaluated to decide, if package - restoration should be performed. + If no command line parameter or preset option are provided, an environment- + specific cache variable will be evaluated to decide, if package restoration + should be performed. When using the Visual Studio generator, package references are defined using the :prop_tgt:`VS_PACKAGE_REFERENCES` property. Package references diff --git a/Source/cmBuildOptions.h b/Source/cmBuildOptions.h index 58baeef..aa3184e 100644 --- a/Source/cmBuildOptions.h +++ b/Source/cmBuildOptions.h @@ -7,20 +7,20 @@ /** \brief Defines how to resolve packages **/ enum class PackageResolveMode { - /** \brief Defines behavior based on cache variable (e.g. + /** \brief Behavior is defined by preset or cache variable (e.g. CMAKE_VS_NUGET_PACKAGE_RESTORE). This is the default. **/ - FromCacheVariable, + Default, - /** \brief Ignore behavior defined by cache variable and forces packages to - be resolved prior to build. **/ + /** \brief Ignore behavior defined by preset or cache variable and forces + packages to be resolved prior to build. **/ Force, - /** \brief Ignore behavior defined by cache variable and forces packages to - be resolved, but skip the actual build. **/ + /** \brief Ignore behavior defined by preset or cache variable and forces + packages to be resolved, but skip the actual build. **/ OnlyResolve, - /** \brief Ignore behavior defined by cache variable and dont resolve any - packages **/ + /** \brief Ignore behavior defined by preset or cache variable and don't + resolve any packages **/ Disable }; @@ -40,5 +40,5 @@ public: bool Clean = false; bool Fast = false; - PackageResolveMode ResolveMode = PackageResolveMode::FromCacheVariable; + PackageResolveMode ResolveMode = PackageResolveMode::Default; }; diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index a96f6f0..db54b86 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -1222,7 +1222,7 @@ cmGlobalVisualStudio10Generator::GenerateBuildCommand( "Studio 2017 and later. You have to manually restore the " "packages using NuGet before building the project."); restorePackages = false; - } else if (restoreMode == PackageResolveMode::FromCacheVariable) { + } else if (restoreMode == PackageResolveMode::Default) { // Decide if a restore is performed, based on a cache variable. if (cmValue cached = this->CMakeInstance->GetState()->GetCacheEntryValue( diff --git a/Source/cmake.cxx b/Source/cmake.cxx index ef4e37b..e1ba12c 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -3356,7 +3356,8 @@ int cmake::Build(int jobs, std::string dir, std::vector<std::string> targets, buildOptions.Clean = *expandedPreset->CleanFirst; } - if (expandedPreset->ResolvePackageReferences) { + if (buildOptions.ResolveMode == PackageResolveMode::Default && + expandedPreset->ResolvePackageReferences) { buildOptions.ResolveMode = *expandedPreset->ResolvePackageReferences; } diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx index f3d5536..0554c3e 100644 --- a/Source/cmakemain.cxx +++ b/Source/cmakemain.cxx @@ -447,7 +447,7 @@ int do_build(int ac, char const* const* av) bool cleanFirst = false; bool foundClean = false; bool foundNonClean = false; - PackageResolveMode resolveMode = PackageResolveMode::FromCacheVariable; + PackageResolveMode resolveMode = PackageResolveMode::Default; bool verbose = cmSystemTools::HasEnv("VERBOSE"); std::string presetName; bool listPresets = false; |