/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file LICENSE.rst or https://cmake.org/licensing for details. */ #include #include #include #include #include #include #include #include "cmCMakePresetsErrors.h" #include "cmCMakePresetsGraph.h" #include "cmCMakePresetsGraphInternal.h" #include "cmJSONHelpers.h" #include "cmJSONState.h" namespace { using PackagePreset = cmCMakePresetsGraph::PackagePreset; auto const OutputHelper = cmJSONHelperBuilder::Object( JsonErrors::INVALID_NAMED_OBJECT_KEY, false) .Bind("debug"_s, &PackagePreset::DebugOutput, cmCMakePresetsGraphInternal::PresetOptionalBoolHelper, false) .Bind("verbose"_s, &PackagePreset::VerboseOutput, cmCMakePresetsGraphInternal::PresetOptionalBoolHelper, false); auto const VariableHelper = cmJSONHelperBuilder::String(cmCMakePresetsErrors::INVALID_VARIABLE); auto const VariablesHelper = cmJSONHelperBuilder::Map( cmCMakePresetsErrors::INVALID_VARIABLE, VariableHelper); auto const PackagePresetHelper = cmCMakePresetsGraphInternal::BindDependentPresetFields( cmCMakePresetsGraphInternal::BindPresetIdentityFields( cmJSONHelperBuilder::Object( cmCMakePresetsErrors::INVALID_PRESET_OBJECT, false))) .Bind("generators"_s, &PackagePreset::Generators, cmCMakePresetsGraphInternal::PresetVectorStringHelper, false) .Bind("configurations"_s, &PackagePreset::Configurations, cmCMakePresetsGraphInternal::PresetVectorStringHelper, false) .Bind("variables"_s, &PackagePreset::Variables, VariablesHelper, false) .Bind("configFile"_s, &PackagePreset::ConfigFile, cmCMakePresetsGraphInternal::PresetStringHelper, false) .Bind("output"_s, OutputHelper, false) .Bind("packageName"_s, &PackagePreset::PackageName, cmCMakePresetsGraphInternal::PresetStringHelper, false) .Bind("packageVersion"_s, &PackagePreset::PackageVersion, cmCMakePresetsGraphInternal::PresetStringHelper, false) .Bind("packageDirectory"_s, &PackagePreset::PackageDirectory, cmCMakePresetsGraphInternal::PresetStringHelper, false) .Bind("vendorName"_s, &PackagePreset::VendorName, cmCMakePresetsGraphInternal::PresetStringHelper, false); } namespace cmCMakePresetsGraphInternal { bool PackagePresetsHelper(std::vector& out, Json::Value const* value, cmJSONState* state) { static auto const helper = cmJSONHelperBuilder::Vector( cmCMakePresetsErrors::INVALID_PRESETS, PackagePresetHelper); return helper(out, value, state); } }