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`` ``baseDirectories``
A JSON array of strings specifying the base directories containing sources 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. 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; Json::Value baseDirs = Json::arrayValue;
for (auto const& directory : directories) { for (auto const& directory : directories) {
baseDirs.append(directory); baseDirs.append(RelativeIfUnder(this->TopSource, directory));
} }
fileSet["baseDirectories"] = baseDirs; fileSet["baseDirectories"] = baseDirs;

View File

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

View File

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