diff options
author | Brad King <brad.king@kitware.com> | 2023-11-20 14:11:37 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2023-11-20 14:11:37 (GMT) |
commit | fa272fa91e772bf060950473c4616e8a0d6806e5 (patch) | |
tree | 1d0cccdf4bc6e94ad9a4317fc950082d6aa2f129 | |
parent | d6c81467aad117a68ce80f76c9df811d18675a42 (diff) | |
parent | a3a85524cd133888288689871e69da76f2267eda (diff) | |
download | CMake-fa272fa91e772bf060950473c4616e8a0d6806e5.zip CMake-fa272fa91e772bf060950473c4616e8a0d6806e5.tar.gz CMake-fa272fa91e772bf060950473c4616e8a0d6806e5.tar.bz2 |
Merge branch 'fileapi-file-sets-base-dirs-relative' into release-3.26
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 7ff9728..878a174 100644 --- a/Help/manual/cmake-file-api.7.rst +++ b/Help/manual/cmake-file-api.7.rst @@ -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. diff --git a/Source/cmFileAPICodemodel.cxx b/Source/cmFileAPICodemodel.cxx index d3683d4..ee09cc3 100644 --- a/Source/cmFileAPICodemodel.cxx +++ b/Source/cmFileAPICodemodel.cxx @@ -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; 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 715514d..aad3a94 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 4757a9c..3f95a0b 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": [ |