Commit 431dd59b authored by Kyle Edwards's avatar Kyle Edwards Committed by Brad King
Browse files

CMakePresets.json: Remove undocumented support for comments

Fixes: #21858
parent d5401de6
...@@ -409,7 +409,6 @@ Changes made since CMake 3.19.0 include the following. ...@@ -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 :generator:`Visual Studio 14 2015` generator. It has now been fixed to
work with :ref:`Visual Studio Generators` for later VS versions too. work with :ref:`Visual Studio Generators` for later VS versions too.
3.19.5 3.19.5
------ ------
...@@ -425,3 +424,11 @@ Changes made since CMake 3.19.0 include the following. ...@@ -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 *Link Binaries With Libraries* build phase broke the ability to switch
between device and simulator builds without reconfiguring. That capability between device and simulator builds without reconfiguring. That capability
has now been restored. 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.
...@@ -839,6 +839,7 @@ cmCMakePresetsFile::ReadFileResult cmCMakePresetsFile::ReadJSONFile( ...@@ -839,6 +839,7 @@ cmCMakePresetsFile::ReadFileResult cmCMakePresetsFile::ReadJSONFile(
Json::Value root; Json::Value root;
Json::CharReaderBuilder builder; Json::CharReaderBuilder builder;
Json::CharReaderBuilder::strictMode(&builder.settings_);
if (!Json::parseFromStream(builder, fin, &root, nullptr)) { if (!Json::parseFromStream(builder, fin, &root, nullptr)) {
return ReadFileResult::JSON_PARSE_ERROR; return ReadFileResult::JSON_PARSE_ERROR;
} }
......
/*
* Block comment
*/
{ {
// Inline comment
"version": 1, "version": 1,
"cmakeMinimumRequired": { "cmakeMinimumRequired": {
"major": 3, "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"
}
]
}
...@@ -77,6 +77,7 @@ endfunction() ...@@ -77,6 +77,7 @@ endfunction()
# Test CMakePresets.json errors # Test CMakePresets.json errors
set(CMakePresets_SCHEMA_EXPECTED_RESULT 1) set(CMakePresets_SCHEMA_EXPECTED_RESULT 1)
run_cmake_presets(NoCMakePresets) run_cmake_presets(NoCMakePresets)
run_cmake_presets(Comment)
run_cmake_presets(JSONParseError) run_cmake_presets(JSONParseError)
run_cmake_presets(InvalidRoot) run_cmake_presets(InvalidRoot)
run_cmake_presets(NoVersion) run_cmake_presets(NoVersion)
......
import jsmin
import json import json
import jsonschema import jsonschema
import os.path import os.path
...@@ -6,7 +5,7 @@ import sys ...@@ -6,7 +5,7 @@ import sys
with open(sys.argv[1], "rb") as f: 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( schema_file = os.path.join(
os.path.dirname(__file__), 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