mirror of
https://github.com/Kitware/CMake.git
synced 2026-08-04 14:50:23 +00:00
Merge topic 'file-api-FILE_SET-SOURCES'
56b3136f60 fileapi: Add build properties for SOURCES file set type to codemodel
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !12006
This commit is contained in:
@@ -1017,6 +1017,9 @@ with members:
|
||||
|
||||
This field was added in codemodel version 2.4.
|
||||
|
||||
Since codemodel version 2.11, this field additionally accounts for
|
||||
``SOURCES`` file sets.
|
||||
|
||||
``fileSetDirectories``
|
||||
Optional member that is present when ``type`` is ``fileSet``. The value
|
||||
is a list of strings with the file set's base directories (determined by
|
||||
|
||||
@@ -34,6 +34,9 @@
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/codemodelV2_10"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/codemodelV2_11"
|
||||
}
|
||||
],
|
||||
"definitions": {
|
||||
@@ -68,7 +71,25 @@
|
||||
},
|
||||
"minor": {
|
||||
"type": "integer",
|
||||
"minimum": 10
|
||||
"const": 10
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"codemodelVersionV2_11": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"major",
|
||||
"minor"
|
||||
],
|
||||
"properties": {
|
||||
"major": {
|
||||
"type": "integer",
|
||||
"const": 2
|
||||
},
|
||||
"minor": {
|
||||
"type": "integer",
|
||||
"minimum": 11
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
@@ -81,7 +102,22 @@
|
||||
"type": "string",
|
||||
"description": "Unique identifier for the target. The format is unspecified and should not be interpreted by clients."
|
||||
},
|
||||
"typeV2_0": {
|
||||
"fileset-typeV2_5": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"HEADERS",
|
||||
"CXX_MODULES"
|
||||
]
|
||||
},
|
||||
"fileset-typeV2_11": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"HEADERS",
|
||||
"CXX_MODULES",
|
||||
"SOURCES"
|
||||
]
|
||||
},
|
||||
"target-typeV2_0": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"EXECUTABLE",
|
||||
@@ -93,7 +129,7 @@
|
||||
"UTILITY"
|
||||
]
|
||||
},
|
||||
"typeV2_9": {
|
||||
"target-typeV2_9": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"EXECUTABLE",
|
||||
@@ -530,12 +566,45 @@
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/fileset-typeV2_5"
|
||||
},
|
||||
"visibility": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"HEADERS",
|
||||
"CXX_MODULES"
|
||||
"PUBLIC",
|
||||
"PRIVATE",
|
||||
"INTERFACE"
|
||||
]
|
||||
},
|
||||
"baseDirectories": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "Base directories containing the file set's files. If a directory is inside the top level source directory, its path is specified relative to that directory. Otherwise, its path is absolute."
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
},
|
||||
"fileSetsV2_11": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"name",
|
||||
"type",
|
||||
"visibility",
|
||||
"baseDirectories"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/fileset-typeV2_11"
|
||||
},
|
||||
"visibility": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
@@ -1094,7 +1163,7 @@
|
||||
"$ref": "#/definitions/id"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/typeV2_0"
|
||||
"$ref": "#/definitions/target-typeV2_0"
|
||||
},
|
||||
"backtrace": {
|
||||
"$ref": "#/definitions/backtrace"
|
||||
@@ -1158,7 +1227,7 @@
|
||||
"$ref": "#/definitions/id"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/typeV2_0"
|
||||
"$ref": "#/definitions/target-typeV2_0"
|
||||
},
|
||||
"backtrace": {
|
||||
"$ref": "#/definitions/backtrace"
|
||||
@@ -1222,7 +1291,7 @@
|
||||
"$ref": "#/definitions/id"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/typeV2_0"
|
||||
"$ref": "#/definitions/target-typeV2_0"
|
||||
},
|
||||
"backtrace": {
|
||||
"$ref": "#/definitions/backtrace"
|
||||
@@ -1286,7 +1355,7 @@
|
||||
"$ref": "#/definitions/id"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/typeV2_0"
|
||||
"$ref": "#/definitions/target-typeV2_0"
|
||||
},
|
||||
"backtrace": {
|
||||
"$ref": "#/definitions/backtrace"
|
||||
@@ -1353,7 +1422,7 @@
|
||||
"$ref": "#/definitions/id"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/typeV2_0"
|
||||
"$ref": "#/definitions/target-typeV2_0"
|
||||
},
|
||||
"backtrace": {
|
||||
"$ref": "#/definitions/backtrace"
|
||||
@@ -1420,7 +1489,7 @@
|
||||
"$ref": "#/definitions/id"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/typeV2_0"
|
||||
"$ref": "#/definitions/target-typeV2_0"
|
||||
},
|
||||
"backtrace": {
|
||||
"$ref": "#/definitions/backtrace"
|
||||
@@ -1490,7 +1559,7 @@
|
||||
"$ref": "#/definitions/id"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/typeV2_0"
|
||||
"$ref": "#/definitions/target-typeV2_0"
|
||||
},
|
||||
"backtrace": {
|
||||
"$ref": "#/definitions/backtrace"
|
||||
@@ -1567,7 +1636,7 @@
|
||||
"$ref": "#/definitions/id"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/typeV2_9"
|
||||
"$ref": "#/definitions/target-typeV2_9"
|
||||
},
|
||||
"imported": {
|
||||
"$ref": "#/definitions/importedV2_9"
|
||||
@@ -1674,7 +1743,7 @@
|
||||
"$ref": "#/definitions/id"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/typeV2_9"
|
||||
"$ref": "#/definitions/target-typeV2_9"
|
||||
},
|
||||
"imported": {
|
||||
"$ref": "#/definitions/importedV2_9"
|
||||
@@ -1762,6 +1831,116 @@
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"codemodelV2_11": {
|
||||
"required": [
|
||||
"codemodelVersion",
|
||||
"name",
|
||||
"id",
|
||||
"type",
|
||||
"paths",
|
||||
"sources",
|
||||
"backtraceGraph"
|
||||
],
|
||||
"properties": {
|
||||
"codemodelVersion": {
|
||||
"$ref": "#/definitions/codemodelVersionV2_11"
|
||||
},
|
||||
"name": {
|
||||
"$ref": "#/definitions/name"
|
||||
},
|
||||
"id": {
|
||||
"$ref": "#/definitions/id"
|
||||
},
|
||||
"type": {
|
||||
"$ref": "#/definitions/target-typeV2_9"
|
||||
},
|
||||
"imported": {
|
||||
"$ref": "#/definitions/importedV2_9"
|
||||
},
|
||||
"local": {
|
||||
"$ref": "#/definitions/localV2_9"
|
||||
},
|
||||
"abstract": {
|
||||
"$ref": "#/definitions/abstractV2_9"
|
||||
},
|
||||
"backtrace": {
|
||||
"$ref": "#/definitions/backtrace"
|
||||
},
|
||||
"folder": {
|
||||
"$ref": "#/definitions/folder"
|
||||
},
|
||||
"paths": {
|
||||
"$ref": "#/definitions/paths"
|
||||
},
|
||||
"nameOnDisk": {
|
||||
"$ref": "#/definitions/nameOnDisk"
|
||||
},
|
||||
"artifacts": {
|
||||
"$ref": "#/definitions/artifacts"
|
||||
},
|
||||
"isGeneratorProvided": {
|
||||
"$ref": "#/definitions/isGeneratorProvided"
|
||||
},
|
||||
"install": {
|
||||
"$ref": "#/definitions/install"
|
||||
},
|
||||
"launchers": {
|
||||
"$ref": "#/definitions/launchersV2_7"
|
||||
},
|
||||
"link": {
|
||||
"$ref": "#/definitions/link"
|
||||
},
|
||||
"archive": {
|
||||
"$ref": "#/definitions/archive"
|
||||
},
|
||||
"debugger": {
|
||||
"$ref": "#/definitions/debuggerV2_8"
|
||||
},
|
||||
"dependencies": {
|
||||
"$ref": "#/definitions/dependencies"
|
||||
},
|
||||
"linkLibraries": {
|
||||
"$ref": "#/definitions/linkLibrariesV2_9"
|
||||
},
|
||||
"interfaceLinkLibraries": {
|
||||
"$ref": "#/definitions/interfaceLinkLibrariesV2_9"
|
||||
},
|
||||
"compileDependencies": {
|
||||
"$ref": "#/definitions/compileDependenciesV2_9"
|
||||
},
|
||||
"interfaceCompileDependencies": {
|
||||
"$ref": "#/definitions/interfaceCompileDependenciesV2_9"
|
||||
},
|
||||
"objectDependencies": {
|
||||
"$ref": "#/definitions/onlyTargetDependenciesArrayV2_9"
|
||||
},
|
||||
"orderDependencies": {
|
||||
"$ref": "#/definitions/onlyTargetDependenciesArrayV2_9"
|
||||
},
|
||||
"fileSets": {
|
||||
"$ref": "#/definitions/fileSetsV2_11"
|
||||
},
|
||||
"sources": {
|
||||
"$ref": "#/definitions/sourcesV2_5"
|
||||
},
|
||||
"interfaceSources": {
|
||||
"$ref": "#/definitions/interfaceSourcesV2_10"
|
||||
},
|
||||
"symbolic": {
|
||||
"$ref": "#/definitions/symbolicV2_9"
|
||||
},
|
||||
"sourceGroups": {
|
||||
"$ref": "#/definitions/sourceGroupsV2_10"
|
||||
},
|
||||
"compileGroups": {
|
||||
"$ref": "#/definitions/compileGroupsV2_6"
|
||||
},
|
||||
"backtraceGraph": {
|
||||
"$ref": "#/definitions/backtraceGraph"
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
8
Help/release/dev/file-api-FILE_SET-SOURCES.rst
Normal file
8
Help/release/dev/file-api-FILE_SET-SOURCES.rst
Normal file
@@ -0,0 +1,8 @@
|
||||
file-api-FILE_SET-SOURCES
|
||||
-------------------------
|
||||
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 object has been
|
||||
updated to 2.11.
|
||||
* The :manual:`cmake-file-api(7)` "codemodel" version 2 "installers" object's
|
||||
optional ``fileSetType`` field gained a new ``SOURCES`` value to incorporate
|
||||
the new :ref:`file set <file sets>` ``SOURCES`` type in codemodel replies.
|
||||
@@ -823,7 +823,7 @@ std::string cmFileAPI::NoSupportedVersion(
|
||||
// Update the following files as well when updating this constant:
|
||||
// Help/manual/cmake-file-api.7.rst
|
||||
// Tests/RunCMake/FileAPI/codemodel-v2-check.py (check_objects())
|
||||
static unsigned int const CodeModelV2Minor = 10;
|
||||
static unsigned int const CodeModelV2Minor = 11;
|
||||
|
||||
void cmFileAPI::BuildClientRequestCodeModel(
|
||||
ClientRequest& r, std::vector<RequestVersion> const& versions)
|
||||
|
||||
@@ -1495,6 +1495,9 @@ CompileData Target::BuildCompileData(cmSourceFile* sf)
|
||||
cmGeneratorExpressionInterpreter genexInterpreter(lg, this->Config, this->GT,
|
||||
fd.Language);
|
||||
|
||||
cmGeneratorFileSet const* fileSet =
|
||||
GT->GetFileSetForSource(this->Config, sf);
|
||||
|
||||
std::string const COMPILE_FLAGS("COMPILE_FLAGS");
|
||||
if (cmValue cflags = sf->GetProperty(COMPILE_FLAGS)) {
|
||||
std::string flags = genexInterpreter.Evaluate(*cflags, COMPILE_FLAGS);
|
||||
@@ -1511,6 +1514,19 @@ CompileData Target::BuildCompileData(cmSourceFile* sf)
|
||||
BT<std::string> opt(tmp, tmpOpt.Backtrace);
|
||||
fd.Flags.emplace_back(this->ToJBT(opt));
|
||||
}
|
||||
// File set compile options, if any
|
||||
if (fileSet) {
|
||||
for (BT<std::string> const& tmpOpt : fileSet->BelongsTo(this->GT)
|
||||
? fileSet->GetCompileOptions(this->Config, fd.Language)
|
||||
: fileSet->GetInterfaceCompileOptions(this->Config, fd.Language)) {
|
||||
// We need to use the AppendCompileOptions method so we handle situations
|
||||
// where backtrace entries have list and properly escape flags.
|
||||
std::string tmp;
|
||||
lg->AppendCompileOptions(tmp, tmpOpt.Value);
|
||||
BT<std::string> opt(tmp, tmpOpt.Backtrace);
|
||||
fd.Flags.emplace_back(this->ToJBT(opt));
|
||||
}
|
||||
}
|
||||
|
||||
// Add precompile headers compile options.
|
||||
std::vector<std::string> pchArchs =
|
||||
@@ -1548,9 +1564,31 @@ CompileData Target::BuildCompileData(cmSourceFile* sf)
|
||||
fd.Flags.emplace_back(this->ToJBT(opt));
|
||||
}
|
||||
|
||||
std::string const INCLUDE_DIRECTORIES("INCLUDE_DIRECTORIES");
|
||||
// Add include directories from file set properties.
|
||||
if (fileSet) {
|
||||
for (BT<std::string> const& tmpInclude : fileSet->BelongsTo(this->GT)
|
||||
? fileSet->GetIncludeDirectories(this->Config, fd.Language)
|
||||
: fileSet->GetInterfaceIncludeDirectories(this->Config,
|
||||
fd.Language)) {
|
||||
// We need to use the AppendIncludeDirectories method so we handle
|
||||
// situations where backtrace entries have lists.
|
||||
std::vector<std::string> tmp;
|
||||
lg->AppendIncludeDirectories(tmp, tmpInclude.Value, *sf);
|
||||
for (std::string& i : tmp) {
|
||||
bool const isSystemInclude =
|
||||
this->GT->IsSystemIncludeDirectory(i, this->Config, fd.Language);
|
||||
BT<std::string> include(i, tmpInclude.Backtrace);
|
||||
if (this->GT->IsApple() && cmSystemTools::IsPathToFramework(i)) {
|
||||
fd.Frameworks.emplace_back(this->ToJBT(include), isSystemInclude);
|
||||
} else {
|
||||
fd.Includes.emplace_back(this->ToJBT(include), isSystemInclude);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Add include directories from source file properties.
|
||||
{
|
||||
std::string const INCLUDE_DIRECTORIES("INCLUDE_DIRECTORIES");
|
||||
for (BT<std::string> tmpInclude : sf->GetIncludeDirectories()) {
|
||||
tmpInclude.Value =
|
||||
genexInterpreter.Evaluate(tmpInclude.Value, INCLUDE_DIRECTORIES);
|
||||
@@ -1597,7 +1635,25 @@ CompileData Target::BuildCompileData(cmSourceFile* sf)
|
||||
genexInterpreter.Evaluate(*config_defs, COMPILE_DEFINITIONS));
|
||||
}
|
||||
|
||||
fd.Defines.reserve(fileDefines.size() + configFileDefines.size());
|
||||
std::set<BT<std::string>> fileSetDefines;
|
||||
if (fileSet) {
|
||||
for (BT<std::string> const& tmpDef : fileSet->BelongsTo(this->GT)
|
||||
? fileSet->GetCompileDefinitions(this->Config, fd.Language)
|
||||
: fileSet->GetInterfaceCompileDefinitions(this->Config,
|
||||
fd.Language)) {
|
||||
// We need to use the AppendDefines method so we handle situations where
|
||||
// backtrace entries have lists.
|
||||
std::set<std::string> tmp;
|
||||
lg->AppendDefines(tmp, tmpDef.Value);
|
||||
for (std::string const& i : tmp) {
|
||||
BT<std::string> def(i, tmpDef.Backtrace);
|
||||
fileSetDefines.insert(def);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fd.Defines.reserve(fileDefines.size() + configFileDefines.size() +
|
||||
fileSetDefines.size());
|
||||
|
||||
for (BT<std::string> const& def : fileDefines) {
|
||||
fd.Defines.emplace_back(this->ToJBT(def));
|
||||
@@ -1607,6 +1663,10 @@ CompileData Target::BuildCompileData(cmSourceFile* sf)
|
||||
fd.Defines.emplace_back(d, JBTIndex());
|
||||
}
|
||||
|
||||
for (BT<std::string> const& def : fileSetDefines) {
|
||||
fd.Defines.emplace_back(this->ToJBT(def));
|
||||
}
|
||||
|
||||
return fd;
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
^{"debugger":(true|false),"fileApi":{"requests":\[{"kind":"codemodel","version":\[{"major":2,"minor":10}]},{"kind":"configureLog","version":\[{"major":1,"minor":0}]},{"kind":"cache","version":\[{"major":2,"minor":0}]},{"kind":"cmakeFiles","version":\[{"major":1,"minor":1}]},{"kind":"toolchains","version":\[{"major":1,"minor":1}]}]},"generators":\[.*\],"serverMode":false,"tls":(true|false),"version":{.*}}$
|
||||
^{"debugger":(true|false),"fileApi":{"requests":\[{"kind":"codemodel","version":\[{"major":2,"minor":11}]},{"kind":"configureLog","version":\[{"major":1,"minor":0}]},{"kind":"cache","version":\[{"major":2,"minor":0}]},{"kind":"cmakeFiles","version":\[{"major":1,"minor":1}]},{"kind":"toolchains","version":\[{"major":1,"minor":1}]}]},"generators":\[.*\],"serverMode":false,"tls":(true|false),"version":{.*}}$
|
||||
|
||||
@@ -13,7 +13,7 @@ def check_objects(o, g):
|
||||
assert is_list(o)
|
||||
assert len(o) == 1
|
||||
major = 2
|
||||
minor = 10
|
||||
minor = 11
|
||||
check_index_object(o[0], "codemodel", major, minor, check_object_codemodel(g, major, minor))
|
||||
|
||||
def check_backtrace(t, b, backtrace):
|
||||
@@ -1077,6 +1077,8 @@ def gen_check_build_system_targets(c, g, inSource):
|
||||
|
||||
read_codemodel_json_data("targets/c_headers_1.json"),
|
||||
read_codemodel_json_data("targets/c_headers_2.json"),
|
||||
read_codemodel_json_data("targets/c_sources_1.json"),
|
||||
read_codemodel_json_data("targets/c_sources_2.json"),
|
||||
]
|
||||
|
||||
if sys.platform == "darwin":
|
||||
|
||||
@@ -5,7 +5,9 @@
|
||||
"childSources": null,
|
||||
"targetIds": [
|
||||
"^c_headers_1::@6b8db101d64c125f29fe$",
|
||||
"^c_headers_2::@6b8db101d64c125f29fe$"
|
||||
"^c_headers_2::@6b8db101d64c125f29fe$",
|
||||
"^c_sources_1::@6b8db101d64c125f29fe$",
|
||||
"^c_sources_2::@6b8db101d64c125f29fe$"
|
||||
],
|
||||
"abstractTargetIds": null,
|
||||
"projectName": "codemodel-v2",
|
||||
|
||||
@@ -32,7 +32,9 @@
|
||||
"^c_static_exe::@6890427a1f51a3e7e1df$",
|
||||
"^c_subdir::@6890427a1f51a3e7e1df$",
|
||||
"^c_headers_1::@6b8db101d64c125f29fe$",
|
||||
"^c_headers_2::@6b8db101d64c125f29fe$"
|
||||
"^c_headers_2::@6b8db101d64c125f29fe$",
|
||||
"^c_sources_1::@6b8db101d64c125f29fe$",
|
||||
"^c_sources_2::@6b8db101d64c125f29fe$"
|
||||
],
|
||||
"abstractTargetIds": [
|
||||
"^interface_lib::@6890427a1f51a3e7e1df$"
|
||||
|
||||
@@ -229,6 +229,14 @@
|
||||
"id": "^c_headers_2::@6b8db101d64c125f29fe$",
|
||||
"backtrace": null
|
||||
},
|
||||
{
|
||||
"id": "^c_sources_1::@6b8db101d64c125f29fe$",
|
||||
"backtrace": null
|
||||
},
|
||||
{
|
||||
"id": "^c_sources_2::@6b8db101d64c125f29fe$",
|
||||
"backtrace": null
|
||||
},
|
||||
{
|
||||
"id": "^static_framework::@217a96c3a62328a73ef4$",
|
||||
"backtrace": null
|
||||
@@ -420,6 +428,14 @@
|
||||
"id": "^c_headers_2::@6b8db101d64c125f29fe$",
|
||||
"backtrace": null
|
||||
},
|
||||
{
|
||||
"id": "^c_sources_1::@6b8db101d64c125f29fe$",
|
||||
"backtrace": null
|
||||
},
|
||||
{
|
||||
"id": "^c_sources_2::@6b8db101d64c125f29fe$",
|
||||
"backtrace": null
|
||||
},
|
||||
{
|
||||
"id": "^static_framework::@217a96c3a62328a73ef4$",
|
||||
"backtrace": null
|
||||
|
||||
@@ -0,0 +1,188 @@
|
||||
{
|
||||
"name": "c_sources_1",
|
||||
"id": "^c_sources_1::@6b8db101d64c125f29fe$",
|
||||
"directorySource": "^fileset$",
|
||||
"projectName": "codemodel-v2",
|
||||
"type": "STATIC_LIBRARY",
|
||||
"imported": null,
|
||||
"local": null,
|
||||
"abstract": null,
|
||||
"symbolic": null,
|
||||
"isGeneratorProvided": null,
|
||||
"fileSets": [
|
||||
{
|
||||
"name": "SOURCES",
|
||||
"type": "SOURCES",
|
||||
"visibility": "PRIVATE",
|
||||
"baseDirectories": [
|
||||
"^fileset$"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "public_srcs",
|
||||
"type": "SOURCES",
|
||||
"visibility": "PUBLIC",
|
||||
"baseDirectories": [
|
||||
"^fileset$"
|
||||
]
|
||||
}
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"path": "^fileset/empty\\.c$",
|
||||
"isGenerated": null,
|
||||
"fileSetName": "public_srcs",
|
||||
"sourceGroupName": "Source Files",
|
||||
"compileGroupLanguage": "C",
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 40,
|
||||
"command": "target_sources",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"path": "^fileset/other\\.c$",
|
||||
"isGenerated": null,
|
||||
"fileSetName": "SOURCES",
|
||||
"sourceGroupName": "Source Files",
|
||||
"compileGroupLanguage": null,
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 35,
|
||||
"command": "target_sources",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"interfaceSources": [
|
||||
{
|
||||
"path": "^fileset/empty\\.c$",
|
||||
"isGenerated": null,
|
||||
"fileSetName": "SOURCES",
|
||||
"sourceGroupName": "Source Files"
|
||||
}
|
||||
],
|
||||
"sourceGroups": [
|
||||
{
|
||||
"name": "Source Files",
|
||||
"sourcePaths": [
|
||||
"^fileset/empty\\.c$",
|
||||
"^fileset/other\\.c$"
|
||||
],
|
||||
"interfaceSourcePaths": [
|
||||
"^fileset/empty\\.c$"
|
||||
]
|
||||
}
|
||||
],
|
||||
"compileGroups": [
|
||||
{
|
||||
"language": "C",
|
||||
"sourcePaths": [
|
||||
"^fileset/empty\\.c$"
|
||||
],
|
||||
"includes": [
|
||||
{
|
||||
"path": "^.*/Tests/RunCMake/FileAPI/fileset/dir$",
|
||||
"isSystem": null,
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 46,
|
||||
"command": "set_property",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"frameworks": null,
|
||||
"defines": [
|
||||
{
|
||||
"define": "DEF2",
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 43,
|
||||
"command": "set_property",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"define": "_MBCS",
|
||||
"backtrace": null
|
||||
}
|
||||
],
|
||||
"compileCommandFragments": null
|
||||
}
|
||||
],
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 33,
|
||||
"command": "add_library",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
],
|
||||
"folder": null,
|
||||
"nameOnDisk": "^(lib)?c_sources_1\\.(a|lib|l)$",
|
||||
"artifacts": [
|
||||
{
|
||||
"path": "^fileset/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?c_sources_1\\.(a|lib|l)$",
|
||||
"_dllExtra": false
|
||||
}
|
||||
],
|
||||
"build": "^fileset$",
|
||||
"source": "^fileset$",
|
||||
"install": null,
|
||||
"link": null,
|
||||
"archive": {
|
||||
"lto": null
|
||||
},
|
||||
"dependencies": [
|
||||
{
|
||||
"id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
|
||||
"backtrace": null
|
||||
}
|
||||
],
|
||||
"linkLibraries": null,
|
||||
"interfaceLinkLibraries": null,
|
||||
"compileDependencies": null,
|
||||
"interfaceCompileDependencies": null,
|
||||
"objectDependencies": null,
|
||||
"orderDependencies": null
|
||||
}
|
||||
@@ -0,0 +1,218 @@
|
||||
{
|
||||
"name": "c_sources_2",
|
||||
"id": "^c_sources_2::@6b8db101d64c125f29fe$",
|
||||
"directorySource": "^fileset$",
|
||||
"projectName": "codemodel-v2",
|
||||
"type": "STATIC_LIBRARY",
|
||||
"imported": null,
|
||||
"local": null,
|
||||
"abstract": null,
|
||||
"symbolic": null,
|
||||
"isGeneratorProvided": null,
|
||||
"fileSets": null,
|
||||
"sources": [
|
||||
{
|
||||
"path": "^fileset/empty\\.c$",
|
||||
"isGenerated": null,
|
||||
"fileSetName": null,
|
||||
"sourceGroupName": "Source Files",
|
||||
"compileGroupLanguage": "C",
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 50,
|
||||
"command": "target_link_libraries",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"interfaceSources": null,
|
||||
"sourceGroups": [
|
||||
{
|
||||
"name": "Source Files",
|
||||
"sourcePaths": [
|
||||
"^fileset/empty\\.c$"
|
||||
],
|
||||
"interfaceSourcePaths": null
|
||||
}
|
||||
],
|
||||
"compileGroups": [
|
||||
{
|
||||
"language": "C",
|
||||
"sourcePaths": [
|
||||
"^fileset/empty\\.c$"
|
||||
],
|
||||
"includes": [
|
||||
{
|
||||
"path": "^.*/Tests/RunCMake/FileAPI/fileset/dir$",
|
||||
"isSystem": null,
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 47,
|
||||
"command": "set_property",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"frameworks": null,
|
||||
"defines": [
|
||||
{
|
||||
"define": "DEF3",
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 44,
|
||||
"command": "set_property",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"define": "_MBCS",
|
||||
"backtrace": null
|
||||
}
|
||||
],
|
||||
"compileCommandFragments": null
|
||||
}
|
||||
],
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 49,
|
||||
"command": "add_library",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
],
|
||||
"folder": null,
|
||||
"nameOnDisk": "^(lib)?c_sources_2\\.(a|lib|l)$",
|
||||
"artifacts": [
|
||||
{
|
||||
"path": "^fileset/((Debug|Release|RelWithDebInfo|MinSizeRel)/)?(lib)?c_sources_2\\.(a|lib|l)$",
|
||||
"_dllExtra": false
|
||||
}
|
||||
],
|
||||
"build": "^fileset$",
|
||||
"source": "^fileset$",
|
||||
"install": null,
|
||||
"link": null,
|
||||
"archive": {
|
||||
"lto": null
|
||||
},
|
||||
"dependencies": [
|
||||
{
|
||||
"id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
|
||||
"backtrace": null
|
||||
},
|
||||
{
|
||||
"id": "^c_sources_1::@6b8db101d64c125f29fe$",
|
||||
"fragment": null,
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 50,
|
||||
"command": "target_link_libraries",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
],
|
||||
"fromDependency": null
|
||||
}
|
||||
],
|
||||
"linkLibraries": [
|
||||
{
|
||||
"id": "^c_sources_1::@6b8db101d64c125f29fe$",
|
||||
"fragment": null,
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 50,
|
||||
"command": "target_link_libraries",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
],
|
||||
"fromDependency": null
|
||||
}
|
||||
],
|
||||
"interfaceLinkLibraries": [
|
||||
{
|
||||
"id": "^c_sources_1::@6b8db101d64c125f29fe$",
|
||||
"fragment": null,
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 50,
|
||||
"command": "target_link_libraries",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"compileDependencies": [
|
||||
{
|
||||
"id": "^c_sources_1::@6b8db101d64c125f29fe$",
|
||||
"fragment": null,
|
||||
"backtrace": [
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": 50,
|
||||
"command": "target_link_libraries",
|
||||
"hasParent": true
|
||||
},
|
||||
{
|
||||
"file": "^fileset/CMakeLists\\.txt$",
|
||||
"line": null,
|
||||
"command": null,
|
||||
"hasParent": false
|
||||
}
|
||||
],
|
||||
"fromDependency": null
|
||||
}
|
||||
],
|
||||
"interfaceCompileDependencies": null,
|
||||
"objectDependencies": null,
|
||||
"orderDependencies": null
|
||||
}
|
||||
@@ -26,3 +26,25 @@ install(TARGETS c_headers_1
|
||||
FILE_SET d
|
||||
)
|
||||
install(TARGETS c_headers_2)
|
||||
|
||||
#
|
||||
# SOURCES file set type
|
||||
#
|
||||
add_library(c_sources_1 STATIC)
|
||||
|
||||
target_sources(c_sources_1
|
||||
PRIVATE FILE_SET SOURCES BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}" FILES other.c
|
||||
)
|
||||
set_property(FILE_SET SOURCES TARGET c_sources_1 PROPERTY COMPILE_DEFINITIONS DEF1)
|
||||
|
||||
target_sources(c_sources_1
|
||||
PUBLIC FILE_SET public_srcs TYPE SOURCES BASE_DIRS "${CMAKE_CURRENT_SOURCE_DIR}" FILES empty.c
|
||||
)
|
||||
set_property(FILE_SET public_srcs TARGET c_sources_1 PROPERTY COMPILE_DEFINITIONS DEF2)
|
||||
set_property(FILE_SET public_srcs TARGET c_sources_1 PROPERTY INTERFACE_COMPILE_DEFINITIONS DEF3)
|
||||
|
||||
set_property(FILE_SET public_srcs TARGET c_sources_1 PROPERTY INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/dir")
|
||||
set_property(FILE_SET public_srcs TARGET c_sources_1 PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/dir")
|
||||
|
||||
add_library(c_sources_2 STATIC)
|
||||
target_link_libraries(c_sources_2 PRIVATE c_sources_1)
|
||||
|
||||
Reference in New Issue
Block a user