summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2023-11-08 15:31:41 (GMT)
committerKitware Robot <kwrobot@kitware.com>2023-11-08 15:32:03 (GMT)
commit56544c1874f449d76da5da66379b5f3af966482a (patch)
tree7f5dc98a750e49df82851fa4f45f0dc70911850a
parent4f26c238a68619d2603f970375096a1eb64eae85 (diff)
parenta0fabc47691a0bc76038c8fdf5f0e0a23ed954d0 (diff)
downloadCMake-56544c1874f449d76da5da66379b5f3af966482a.zip
CMake-56544c1874f449d76da5da66379b5f3af966482a.tar.gz
CMake-56544c1874f449d76da5da66379b5f3af966482a.tar.bz2
Merge topic 'cxx23' into release-3.28
a0fabc4769 cmGlobalGeneratorFactory: Provide complete cmGlobalGenerator to deleter 85627a93c9 cmCTestBuildCommand: Avoid requiring complete cmGlobalGenerator type publicly 641c02a3ce cmList: Avoid using operator-> on input iterator e4483b8871 Tests: Avoid compiling call to dap::optional<dap::string>(nullptr) Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Acked-by: scivision <michael@scivision.dev> Merge-request: !8950
-rw-r--r--Source/CTest/cmCTestBuildCommand.cxx10
-rw-r--r--Source/CTest/cmCTestBuildCommand.h11
-rw-r--r--Source/cmGlobalGeneratorFactory.h2
-rw-r--r--Source/cmList.h2
-rw-r--r--Tests/CMakeLib/testDebugger.h2
-rw-r--r--Tests/CMakeLib/testDebuggerVariables.cxx4
6 files changed, 17 insertions, 14 deletions
diff --git a/Source/CTest/cmCTestBuildCommand.cxx b/Source/CTest/cmCTestBuildCommand.cxx
index 50d69df..d8ef195 100644
--- a/Source/CTest/cmCTestBuildCommand.cxx
+++ b/Source/CTest/cmCTestBuildCommand.cxx
@@ -3,11 +3,13 @@
#include "cmCTestBuildCommand.h"
#include <sstream>
+#include <utility>
#include <cmext/string_view>
#include "cmCTest.h"
#include "cmCTestBuildHandler.h"
+#include "cmCommand.h"
#include "cmGlobalGenerator.h"
#include "cmMakefile.h"
#include "cmMessageType.h"
@@ -18,6 +20,14 @@
class cmExecutionStatus;
+std::unique_ptr<cmCommand> cmCTestBuildCommand::Clone()
+{
+ auto ni = cm::make_unique<cmCTestBuildCommand>();
+ ni->CTest = this->CTest;
+ ni->CTestScriptHandler = this->CTestScriptHandler;
+ return std::unique_ptr<cmCommand>(std::move(ni));
+}
+
void cmCTestBuildCommand::BindArguments()
{
this->cmCTestHandlerCommand::BindArguments();
diff --git a/Source/CTest/cmCTestBuildCommand.h b/Source/CTest/cmCTestBuildCommand.h
index 1254dad..3b7f4f9 100644
--- a/Source/CTest/cmCTestBuildCommand.h
+++ b/Source/CTest/cmCTestBuildCommand.h
@@ -5,14 +5,13 @@
#include "cmConfigure.h" // IWYU pragma: keep
#include <string>
-#include <utility>
#include <vector>
#include <cm/memory>
#include "cmCTestHandlerCommand.h"
-#include "cmCommand.h"
+class cmCommand;
class cmCTestBuildHandler;
class cmCTestGenericHandler;
class cmExecutionStatus;
@@ -31,13 +30,7 @@ public:
/**
* This is a virtual constructor for the command.
*/
- std::unique_ptr<cmCommand> Clone() override
- {
- auto ni = cm::make_unique<cmCTestBuildCommand>();
- ni->CTest = this->CTest;
- ni->CTestScriptHandler = this->CTestScriptHandler;
- return std::unique_ptr<cmCommand>(std::move(ni));
- }
+ std::unique_ptr<cmCommand> Clone() override;
/**
* The name of the command as specified in CMakeList.txt.
diff --git a/Source/cmGlobalGeneratorFactory.h b/Source/cmGlobalGeneratorFactory.h
index a935079..b06da42 100644
--- a/Source/cmGlobalGeneratorFactory.h
+++ b/Source/cmGlobalGeneratorFactory.h
@@ -5,6 +5,7 @@
#include "cmConfigure.h" // IWYU pragma: keep
#include "cmDocumentationEntry.h" // IWYU pragma: export
+#include "cmGlobalGenerator.h" // IWYU pragma: keep
// TODO The following headers are parts of the `cmGlobalGeneratorFactory`
// public API, so could be defined as export to IWYU
@@ -13,7 +14,6 @@
#include <cm/memory>
-class cmGlobalGenerator;
class cmake;
/** \class cmGlobalGeneratorFactory
diff --git a/Source/cmList.h b/Source/cmList.h
index 1b94c2f..c29aae7 100644
--- a/Source/cmList.h
+++ b/Source/cmList.h
@@ -1192,7 +1192,7 @@ private:
}
} else {
for (; first != last; ++first) {
- if (!first->empty() || emptyElements == EmptyElements::Yes) {
+ if (!(*first).empty() || emptyElements == EmptyElements::Yes) {
insertPos = container.insert(insertPos, *first);
++insertPos;
}
diff --git a/Tests/CMakeLib/testDebugger.h b/Tests/CMakeLib/testDebugger.h
index d8d2caa..df67278 100644
--- a/Tests/CMakeLib/testDebugger.h
+++ b/Tests/CMakeLib/testDebugger.h
@@ -19,7 +19,7 @@
do { \
ASSERT_TRUE(x.name == expectedName); \
ASSERT_TRUE(x.value == expectedValue); \
- if (expectedType == nullptr) { \
+ if (expectedType == std::string()) { \
ASSERT_TRUE(x.type == dap::optional<dap::string>()); \
} else { \
ASSERT_TRUE(x.type == dap::optional<dap::string>(expectedType)); \
diff --git a/Tests/CMakeLib/testDebuggerVariables.cxx b/Tests/CMakeLib/testDebuggerVariables.cxx
index 0d8d18d..bb3f14d 100644
--- a/Tests/CMakeLib/testDebuggerVariables.cxx
+++ b/Tests/CMakeLib/testDebuggerVariables.cxx
@@ -196,8 +196,8 @@ static bool testNoSupportsVariableType()
CreateVariablesRequest(vars->GetId()));
ASSERT_TRUE(variables.size() == 2);
- ASSERT_VARIABLE(variables[0], "Children", "", nullptr);
- ASSERT_VARIABLE(variables[1], "test", "value", nullptr);
+ ASSERT_VARIABLE(variables[0], "Children", "", "");
+ ASSERT_VARIABLE(variables[1], "test", "value", "");
return true;
}