Commit 06e16ea0 authored by Brad King's avatar Brad King
Browse files

Merge branch 'backport-3.19-preset-no-comments' into preset-no-comments

parents afaa69f5 431dd59b
......@@ -409,7 +409,6 @@ Changes made since CMake 3.19.0 include the following.
:generator:`Visual Studio 14 2015` generator. It has now been fixed to
work with :ref:`Visual Studio Generators` for later VS versions too.
3.19.5
------
......@@ -425,3 +424,11 @@ Changes made since CMake 3.19.0 include the following.
*Link Binaries With Libraries* build phase broke the ability to switch
between device and simulator builds without reconfiguring. That capability
has now been restored.
3.19.6
------
* The :manual:`cmake-presets(7)` feature no longer allows comments in
``CMakePresets.json`` or ``CMakeUserPresets.json`` files.
This was mistakenly allowed by the implementation in CMake 3.19.0 through
CMake 3.19.5, and was not documented.
......@@ -1519,6 +1519,7 @@ cmCMakePresetsFile::ReadFileResult cmCMakePresetsFile::ReadJSONFile(
Json::Value root;
Json::CharReaderBuilder builder;
Json::CharReaderBuilder::strictMode(&builder.settings_);
if (!Json::parseFromStream(builder, fin, &root, nullptr)) {
return ReadFileResult::JSON_PARSE_ERROR;
}
......
/*
* Block comment
*/
{
// Inline comment
"version": 1,
"cmakeMinimumRequired": {
"major": 3,
......
^CMake Error: Could not read presets from [^
]*/Tests/RunCMake/CMakePresets/Comment: JSON parse error$
// Comment
{
"version": 1,
"configurePresets": [
{
"name": "Comment",
"generator": "@RunCMake_GENERATOR@",
"binaryDir": "${sourceDir}/build"
}
]
}
......@@ -63,6 +63,7 @@ endfunction()
# Test CMakePresets.json errors
set(CMakePresets_SCHEMA_EXPECTED_RESULT 1)
run_cmake_presets(NoCMakePresets)
run_cmake_presets(Comment)
run_cmake_presets(JSONParseError)
run_cmake_presets(InvalidRoot)
run_cmake_presets(NoVersion)
......
import jsmin
import json
import jsonschema
import os.path
......@@ -6,7 +5,7 @@ import sys
with open(sys.argv[1], "rb") as f:
contents = json.loads(jsmin.jsmin(f.read().decode("utf-8-sig")))
contents = json.loads(f.read().decode("utf-8-sig"))
schema_file = os.path.join(
os.path.dirname(__file__),
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment