Просмотр исходного кода

Merge topic 'fileapi-file-sets-base-dirs-relative'

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

Acked-by: Kitware Robot <[email protected]>
Acked-by: buildbot <[email protected]>
Reviewed-by: Ben Boeckel <[email protected]>
Merge-request: !8977
Brad King 2 лет назад
Родитель
Сommit
b6845a689e

+ 3 - 1
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.
 

+ 1 - 1
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;
 

+ 4 - 4
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": [

+ 1 - 1
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": [