mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-16 14:08:35 +08:00
Refactor: Move some common code into separate file
This code is going to be needed by both cmCMakePresetsFile and cmCMakePresetsFileReadJSON when the upcoming condition types are created. Move it into a header file.
This commit is contained in:
@@ -198,6 +198,7 @@ set(SRCS
|
|||||||
cmCMakePath.cxx
|
cmCMakePath.cxx
|
||||||
cmCMakePresetsFile.cxx
|
cmCMakePresetsFile.cxx
|
||||||
cmCMakePresetsFile.h
|
cmCMakePresetsFile.h
|
||||||
|
cmCMakePresetsFileInternal.h
|
||||||
cmCMakePresetsFileReadJSON.cxx
|
cmCMakePresetsFileReadJSON.cxx
|
||||||
cmCommandArgumentParserHelper.cxx
|
cmCommandArgumentParserHelper.cxx
|
||||||
cmCommonTargetGenerator.cxx
|
cmCommonTargetGenerator.cxx
|
||||||
|
@@ -9,16 +9,10 @@
|
|||||||
#include <iterator>
|
#include <iterator>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
|
|
||||||
|
#include "cmCMakePresetsFileInternal.h"
|
||||||
#include "cmStringAlgorithms.h"
|
#include "cmStringAlgorithms.h"
|
||||||
#include "cmSystemTools.h"
|
#include "cmSystemTools.h"
|
||||||
|
|
||||||
#define CHECK_OK(expr) \
|
|
||||||
{ \
|
|
||||||
auto _result = expr; \
|
|
||||||
if (_result != ReadFileResult::READ_OK) \
|
|
||||||
return _result; \
|
|
||||||
}
|
|
||||||
|
|
||||||
#define CHECK_EXPAND(out, field, expanders, version) \
|
#define CHECK_EXPAND(out, field, expanders, version) \
|
||||||
{ \
|
{ \
|
||||||
switch (ExpandMacros(field, expanders, version)) { \
|
switch (ExpandMacros(field, expanders, version)) { \
|
||||||
@@ -44,6 +38,8 @@ using ReadFileResult = cmCMakePresetsFile::ReadFileResult;
|
|||||||
using ConfigurePreset = cmCMakePresetsFile::ConfigurePreset;
|
using ConfigurePreset = cmCMakePresetsFile::ConfigurePreset;
|
||||||
using BuildPreset = cmCMakePresetsFile::BuildPreset;
|
using BuildPreset = cmCMakePresetsFile::BuildPreset;
|
||||||
using TestPreset = cmCMakePresetsFile::TestPreset;
|
using TestPreset = cmCMakePresetsFile::TestPreset;
|
||||||
|
using ExpandMacroResult = cmCMakePresetsFileInternal::ExpandMacroResult;
|
||||||
|
using MacroExpander = cmCMakePresetsFileInternal::MacroExpander;
|
||||||
|
|
||||||
void InheritString(std::string& child, const std::string& parent)
|
void InheritString(std::string& child, const std::string& parent)
|
||||||
{
|
{
|
||||||
@@ -166,16 +162,6 @@ bool IsValidMacroNamespace(const std::string& str)
|
|||||||
[&str](const char* prefix) -> bool { return str == prefix; });
|
[&str](const char* prefix) -> bool { return str == prefix; });
|
||||||
}
|
}
|
||||||
|
|
||||||
enum class ExpandMacroResult
|
|
||||||
{
|
|
||||||
Ok,
|
|
||||||
Ignore,
|
|
||||||
Error,
|
|
||||||
};
|
|
||||||
|
|
||||||
using MacroExpander = std::function<ExpandMacroResult(
|
|
||||||
const std::string&, const std::string&, std::string&, int version)>;
|
|
||||||
|
|
||||||
ExpandMacroResult VisitEnv(std::string& value, CycleStatus& status,
|
ExpandMacroResult VisitEnv(std::string& value, CycleStatus& status,
|
||||||
const std::vector<MacroExpander>& macroExpanders,
|
const std::vector<MacroExpander>& macroExpanders,
|
||||||
int version);
|
int version);
|
||||||
|
22
Source/cmCMakePresetsFileInternal.h
Normal file
22
Source/cmCMakePresetsFileInternal.h
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||||
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
||||||
|
#include "cmCMakePresetsFile.h"
|
||||||
|
|
||||||
|
#define CHECK_OK(expr) \
|
||||||
|
{ \
|
||||||
|
auto _result = expr; \
|
||||||
|
if (_result != ReadFileResult::READ_OK) \
|
||||||
|
return _result; \
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace cmCMakePresetsFileInternal {
|
||||||
|
enum class ExpandMacroResult
|
||||||
|
{
|
||||||
|
Ok,
|
||||||
|
Ignore,
|
||||||
|
Error,
|
||||||
|
};
|
||||||
|
|
||||||
|
using MacroExpander = std::function<ExpandMacroResult(
|
||||||
|
const std::string&, const std::string&, std::string&, int version)>;
|
||||||
|
}
|
Reference in New Issue
Block a user