fileapi: Fix file sets' base directories relative to top source

This field was added by commit b3e9fb67bb (file-api: support exporting
file set information, 2022-11-03, v3.26.0-rc1~389^2) but the relative
path convention used elsewhere was accidentally left out.

Fixes: #25422
This commit is contained in:
Kyle Edwards 2023-11-16 14:36:25 -05:00 committed by Brad King
parent d6c81467aa
commit a3a85524cd
4 changed files with 9 additions and 7 deletions

View File

@ -1088,7 +1088,9 @@ with members:
``baseDirectories``
A JSON array of strings specifying the base directories containing sources
in the file set.
in the file set. If the file is inside the top-level source directory
then the path is specified relative to that directory. Otherwise the path
is absolute.
This field was added in codemodel version 2.5.

View File

@ -1611,7 +1611,7 @@ Json::Value Target::DumpFileSet(cmFileSet const* fs,
Json::Value baseDirs = Json::arrayValue;
for (auto const& directory : directories) {
baseDirs.append(directory);
baseDirs.append(RelativeIfUnder(this->TopSource, directory));
}
fileSet["baseDirectories"] = baseDirs;

View File

@ -10,25 +10,25 @@
"name": "HEADERS",
"type": "HEADERS",
"visibility": "PUBLIC",
"baseDirectories": [".*/Tests/RunCMake/FileAPI/fileset$"]
"baseDirectories": ["^fileset$"]
},
{
"name": "a",
"type": "HEADERS",
"visibility": "PRIVATE",
"baseDirectories": [".*/Tests/RunCMake/FileAPI/fileset$"]
"baseDirectories": ["^fileset$"]
},
{
"name": "b",
"type": "HEADERS",
"visibility": "PUBLIC",
"baseDirectories": [".*/Tests/RunCMake/FileAPI/fileset/dir$"]
"baseDirectories": ["^fileset/dir$"]
},
{
"name": "c",
"type": "HEADERS",
"visibility": "INTERFACE",
"baseDirectories": [".*/Tests/RunCMake/FileAPI/fileset$"]
"baseDirectories": ["^fileset$"]
}
],
"sources": [

View File

@ -10,7 +10,7 @@
"name": "HEADERS",
"type": "HEADERS",
"visibility": "INTERFACE",
"baseDirectories": [".*/Tests/RunCMake/FileAPI/fileset$"]
"baseDirectories": ["^fileset$"]
}
],
"sources": [