diff options
author | Brad King <brad.king@kitware.com> | 2023-11-20 14:12:42 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2023-11-20 14:12:59 (GMT) |
commit | 2f30b29ac3cbd4ba36ccaf2bee89a4a565a03c6d (patch) | |
tree | da4dbe56a0198a038d37a6b1f2a7f5ceb4e0f0eb | |
parent | a03780c4c36e6402731f65e0e43a115caf85365c (diff) | |
parent | a3a85524cd133888288689871e69da76f2267eda (diff) | |
download | CMake-2f30b29ac3cbd4ba36ccaf2bee89a4a565a03c6d.zip CMake-2f30b29ac3cbd4ba36ccaf2bee89a4a565a03c6d.tar.gz CMake-2f30b29ac3cbd4ba36ccaf2bee89a4a565a03c6d.tar.bz2 |
Merge topic 'fileapi-file-sets-base-dirs-relative' into release-3.28
a3a85524cd fileapi: Fix file sets' base directories relative to top source
Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: buildbot <buildbot@kitware.com>
Reviewed-by: Ben Boeckel <ben.boeckel@kitware.com>
Merge-request: !8977
4 files changed, 9 insertions, 7 deletions
diff --git a/Help/manual/cmake-file-api.7.rst b/Help/manual/cmake-file-api.7.rst index 5f16a8b..a6d2345 100644 --- a/Help/manual/cmake-file-api.7.rst +++ b/Help/manual/cmake-file-api.7.rst @@ -1094,7 +1094,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. diff --git a/Source/cmFileAPICodemodel.cxx b/Source/cmFileAPICodemodel.cxx index 3c1bc14..d069186 100644 --- a/Source/cmFileAPICodemodel.cxx +++ b/Source/cmFileAPICodemodel.cxx @@ -1635,7 +1635,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; diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_1.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_1.json index faf0eaa..0e10b52 100644 --- a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_1.json +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_1.json @@ -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": [ diff --git a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_2.json b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_2.json index b4f2f9d..04fdc36 100644 --- a/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_2.json +++ b/Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_2.json @@ -10,7 +10,7 @@ "name": "HEADERS", "type": "HEADERS", "visibility": "INTERFACE", - "baseDirectories": [".*/Tests/RunCMake/FileAPI/fileset$"] + "baseDirectories": ["^fileset$"] } ], "sources": [ |