Browse Source

fileAPI: Add direct dependencies to target codemodel files

This adds the following new arrays, which together capture all direct
dependencies and interface dependencies of a target:

- linkLibraries
- interfaceLinkLibraries
- compileDependencies
- interfaceCompileDependencies
- objectDependencies
- orderDependencies

Fixes: #21995, #25213
Craig Scott 4 weeks ago
parent
commit
f38f325e08
90 changed files with 2729 additions and 81 deletions
  1. 223 3
      Help/manual/cmake-file-api.7.rst
  2. 140 0
      Help/manual/file_api/schema_target.json
  3. 5 0
      Help/release/dev/fileapi-direct-dependencies.rst
  4. 145 0
      Source/cmFileAPICodemodel.cxx
  5. 2 2
      Source/cmGeneratorTarget.cxx
  6. 1 1
      Source/cmGeneratorTarget.h
  7. 1 0
      Source/cmGeneratorTarget_Link.cxx
  8. 5 5
      Source/cmGlobalXCodeGenerator.cxx
  9. 3 0
      Source/cmLinkItem.h
  10. 4 3
      Source/cmLinkItemGraphVisitor.cxx
  11. 140 1
      Tests/RunCMake/FileAPI/codemodel-v2-check.py
  12. 15 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_alias.json
  13. 11 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_custom.json
  14. 55 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_cxx.json
  15. 31 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_direct.json
  16. 11 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_external.json
  17. 19 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_framework.json
  18. 31 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_imported.json
  19. 11 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_interface.json
  20. 23 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_object.json
  21. 191 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_top.json
  22. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_alias_exe.json
  23. 69 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_exe.json
  24. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_1.json
  25. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_2.json
  26. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_lib.json
  27. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_object_exe.json
  28. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_object_lib.json
  29. 70 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_shared_exe.json
  30. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_shared_lib.json
  31. 70 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_static_exe.json
  32. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_static_lib.json
  33. 66 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_subdir.json
  34. 26 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/compile_usage_exe.json
  35. 24 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/custom_exe.json
  36. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/custom_tgt.json
  37. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_alias_exe.json
  38. 45 0
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe.json
  39. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_cross_emulator.json
  40. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_cross_emulator_args.json
  41. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_test_launcher.json
  42. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_test_launcher_and_cross_emulator.json
  43. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_lib.json
  44. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_object_exe.json
  45. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_object_lib.json
  46. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_shared_exe.json
  47. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_shared_lib.json
  48. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_standard_compile_feature_exe.json
  49. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_standard_exe.json
  50. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_static_exe.json
  51. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_static_lib.json
  52. 120 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/exe_framework.json
  53. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/generated_exe.json
  54. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/iface_none.json
  55. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/iface_srcs.json
  56. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/iface_symbolic.json
  57. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/import_framework.json
  58. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_exe.json
  59. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_interface_lib.json
  60. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_interface_symbolic_lib.json
  61. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_lib.json
  62. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_object_lib.json
  63. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_shared_lib.json
  64. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_static_lib.json
  65. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/inject_direct_lib.json
  66. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/inject_direct_lib_impl.json
  67. 94 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/interface_exe.json
  68. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/interface_lib.json
  69. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_exe.json
  70. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_interface_exe.json
  71. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_interface_symbolic_exe.json
  72. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_object_exe.json
  73. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_shared_exe.json
  74. 46 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_static_exe.json
  75. 83 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_transitive_direct_exe.json
  76. 27 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_usage_exe.json
  77. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/shared_framework.json
  78. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/static_framework.json
  79. 101 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/transitive_direct_lib.json
  80. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/usage_lib.json
  81. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_alias.json
  82. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_custom.json
  83. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_cxx.json
  84. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_direct.json
  85. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_external.json
  86. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_framework.json
  87. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_imported.json
  88. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_interface.json
  89. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_object.json
  90. 7 1
      Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_top.json

+ 223 - 3
Help/manual/cmake-file-api.7.rst

@@ -1337,9 +1337,19 @@ with members:
 
 ``dependencies``
   Optional member that is present when the target depends on other targets.
-  It is not present if the target is not part of the build system (i.e. it is
-  not an imported target or an interface library with no generated sources).
-  The value is a JSON array of entries corresponding to the dependencies.
+  It is only present if the target is part of the build system.
+  Imported targets are not part of the build system.  Interface libraries
+  are only part of the build system if they have sources or file sets.
+
+  The value is a JSON array of entries corresponding to the build dependencies.
+  The array includes not just direct dependencies, but also transitive
+  dependencies.  All listed targets will build before this one.
+
+  The list of dependencies reflects the *build graph* dependencies, not
+  necessarily the link dependencies.  If there are cycles in the link
+  dependencies of static libraries, not all link dependencies will be
+  reflected in this list of build graph dependencies.
+
   Each entry is a JSON object with members:
 
   ``id``
@@ -1353,6 +1363,216 @@ with members:
     available.  The value is an unsigned integer 0-based index into
     the ``backtraceGraph`` member's ``nodes`` array.
 
+``linkLibraries``
+  Optional member that may be present when the target links directly to one or
+  more other targets or libraries.  It contains items that are used when
+  linking this target.  These come from the target's
+  :prop_tgt:`LINK_LIBRARIES` property (evaluated non-transitively), or the
+  :prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT` property of another target it
+  links to directly or transitively.
+
+  Items that are only applied as usage requirements (such as being wrapped in a
+  :genex:`$<COMPILE_ONLY:...>` expression) will not be present in this member.
+
+  The value is a JSON array of entries.  Each entry is a JSON object with
+  members:
+
+  ``id``
+    Optional member that is present when the library to be linked is a target.
+    It uniquely identifies the target on which this one has a direct link
+    relationship.  This matches the main ``id`` member of that other target.
+
+    The target this ``id`` identifies is not necessarily part of the build
+    system.  It may be an imported target or an interface library with no
+    sources or file sets.
+
+    Exactly one of ``id`` or ``fragment`` will always be present.
+
+  ``fragment``
+    Optional member that is present when the library to be linked is not a
+    target.  It is a string containing the raw linker command line arguments
+    that capture the relationship.  These will typically be linking to
+    libraries or frameworks by name rather than as a target.
+
+    Exactly one of ``id`` or ``fragment`` will always be present.
+
+  ``backtrace``
+    Optional member that is present when a CMake language backtrace to
+    the command invocation that created this relationship is available.
+    The value is an unsigned integer 0-based index into the
+    ``backtraceGraph`` member's ``nodes`` array.
+
+  ``fromDependency``
+    Optional member that is only present when the relationship is the result of
+    an :prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT` target property on one of
+    this target's directly or transitively linked libraries.  It is a JSON
+    object with one member:
+
+    ``id``
+      A string uniquely identifying the target whose
+      :prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT` property created the
+      relationship.  The value matches the main ``id`` member of that target.
+
+  This field was added in codemodel version 2.9.
+
+``interfaceLinkLibraries``
+  Optional member that may be present when the target has one or more interface
+  link libraries.  It contains items that are used when linking consumers of
+  this target.  These come from the target's
+  :prop_tgt:`INTERFACE_LINK_LIBRARIES` property.
+
+  Items that are only applied as usage requirements (such as being wrapped in a
+  :genex:`$<COMPILE_ONLY:...>` expression) will not be present in this member.
+
+  The value is a JSON array of entries.  Each entry is a JSON object with
+  members:
+
+  ``id``
+    Optional member that is present when the interface link library is for a
+    target.  It uniquely identifies that target, with the value matching the
+    main ``id`` member of that target.
+
+    The target this ``id`` identifies is not necessarily part of the build
+    system.  It may be an imported target or an interface library with no
+    sources or file sets.
+
+    Exactly one of ``id`` or ``fragment`` will always be present.
+
+  ``fragment``
+    Optional member that is present when the interface link library is not for
+    a target.  It is a string containing the raw linker command line arguments
+    to be applied to consumers of this target's interface link libraries.
+    These will typically be linker arguments for linking to libraries or
+    frameworks by name rather than as a target.
+
+    Exactly one of ``id`` or ``fragment`` will always be present.
+
+  ``backtrace``
+    Optional member that is present when a CMake language backtrace to the
+    command invocation that created this interface relationship is available.
+    The value is an unsigned integer 0-based index into the
+    ``backtraceGraph`` member's ``nodes`` array.
+
+  This field was added in codemodel version 2.9.
+
+``compileDependencies``
+  Optional member that may be present when the target links directly to one or
+  more other targets that may provide usage requirements to this one.  They
+  affect how this target's sources are compiled.  These relationships are
+  defined by the target's :prop_tgt:`LINK_LIBRARIES` property (evaluated
+  non-transitively) and the :prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT`
+  property of other targets it links to directly or transitively.
+
+  Relationships that only apply linking requirements (such as being wrapped
+  in a :genex:`$<LINK_ONLY:...>` expression) will not be present in this
+  member.
+
+  The value is a JSON array of entries.  Each entry is a JSON object with
+  members:
+
+  ``id``
+    A string uniquely identifying the target on which this target directly
+    depends.  This matches the main ``id`` member of the other target.
+
+    The target this ``id`` identifies is not necessarily part of the build
+    system.  It may be an imported target or an interface library with no
+    sources or file sets.
+
+  ``backtrace``
+    Optional member that is present when a CMake language backtrace to
+    the command invocation that created this relationship is available.
+    The value is an unsigned integer 0-based index into the
+    ``backtraceGraph`` member's ``nodes`` array.
+
+  ``fromDependency``
+    Optional member that is only present when the relationship is the result of
+    an :prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT` target property on one of
+    this target's directly or transitively linked libraries.  It is a JSON
+    object with one member:
+
+    ``id``
+      A string uniquely identifying the target whose
+      :prop_tgt:`INTERFACE_LINK_LIBRARIES_DIRECT` property created the
+      relationship.  The value matches the main ``id`` member of that target.
+
+  This field was added in codemodel version 2.9.
+
+``interfaceCompileDependencies``
+  Optional member that may be present when the target has one or more interface
+  linking relationships to other targets.  It contains items that affect how
+  consumers' sources are compiled.  These relationships are defined by the
+  target's :prop_tgt:`INTERFACE_LINK_LIBRARIES` property.
+
+  Relationships that only apply linking requirements (such as being wrapped
+  in a :genex:`$<LINK_ONLY:...>` expression) will not be present in this
+  member.
+
+  The value is a JSON array of entries.  Each entry is a JSON object with
+  members:
+
+  ``id``
+    A string uniquely identifying the target on which this target specifies
+    an interface relationship.  This matches the main ``id`` member of the
+    other target.
+
+    The target this ``id`` identifies is not necessarily part of the build
+    system.  It may be an imported target or an interface library with no
+    sources or file sets.
+
+  ``backtrace``
+    Optional member that is present when a CMake language backtrace to
+    the command invocation that created this relationship is available.
+    The value is an unsigned integer 0-based index into the
+    ``backtraceGraph`` member's ``nodes`` array.
+
+  This field was added in codemodel version 2.9.
+
+``objectDependencies``
+  Optional member that is present when the target has one or more entries in
+  its :prop_tgt:`SOURCES` property where the entry is specified using
+  :genex:`$<TARGET_OBJECTS:...>`, and where no other generator expression is
+  used within the :genex:`$<TARGET_OBJECTS:...>` expression.
+
+  The value is a JSON array of entries.  Each entry is a JSON object with
+  members:
+
+  ``id``
+    A string uniquely identifying the target whose objects are referred to in
+    the :genex:`$<TARGET_OBJECTS:...>` expression.  This matches the main
+    ``id`` member of that other target.
+
+  ``backtrace``
+    Optional member that is present when a CMake language backtrace to
+    the command invocation that created this dependency is available.
+    The value is an unsigned integer 0-based index into the
+    ``backtraceGraph`` member's ``nodes`` array.
+
+  This field was added in codemodel version 2.9.
+
+``orderDependencies``
+  Optional member that is present when the target has one or more direct order
+  dependencies on other targets.  Such dependencies may arise from calls to
+  :command:`add_dependencies` or from internal CMake processing.
+  Unlike the ``dependencies`` array, the ``ZERO_CHECK`` target will not be
+  included in ``orderDependencies`` (this is only relevant for
+  :generator:`Xcode` and :ref:`Visual Studio <Visual Studio Generators>`
+  generators).
+
+  The value is a JSON array of entries.  Each entry is a JSON object with
+  members:
+
+  ``id``
+    A string uniquely identifying the target on which this target depends.
+    This matches the main ``id`` member of the other target.
+
+  ``backtrace``
+    Optional member that is present when a CMake language backtrace to
+    the command invocation that created this dependency is available.
+    The value is an unsigned integer 0-based index into the
+    ``backtraceGraph`` member's ``nodes`` array.
+
+  This field was added in codemodel version 2.9.
+
 ``fileSets``
   An optional member that is present when a target defines one or more
   file sets.  The value is a JSON array of entries corresponding to the

+ 140 - 0
Help/manual/file_api/schema_target.json

@@ -372,6 +372,128 @@
         "additionalProperties": false
       }
     },
+    "linkLibrariesV2_9": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "properties": {
+          "id": {
+            "type": "string",
+            "description": "Unique identifier of the target for the dependency"
+          },
+          "fragment": {
+            "type": "string",
+            "description": "Raw linker command line arguments that capture the dependency"
+          },
+          "backtrace": {
+            "type": "integer",
+            "minimum": 0,
+            "description": "Index into backtraceGraph nodes array of the command that created the dependency, if available"
+          },
+          "fromDependency": {
+            "type": "object",
+            "properties": {
+              "id": {
+                "type": "string",
+                "description": "Unique identifier of another target whose INTERFACE_LINK_LIBRARIES_DIRECT property created this dependency"
+              }
+            }
+          }
+        },
+        "additionalProperties": false
+      }
+    },
+    "interfaceLinkLibrariesV2_9": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "properties": {
+          "id": {
+            "type": "string",
+            "description": "Unique identifier of the target for the dependency"
+          },
+          "fragment": {
+            "type": "string",
+            "description": "Raw linker command line arguments that capture the dependency"
+          },
+          "backtrace": {
+            "type": "integer",
+            "minimum": 0,
+            "description": "Index into backtraceGraph nodes array of the command that created the dependency, if available"
+          }
+        },
+        "additionalProperties": false
+      }
+    },
+    "compileDependenciesV2_9": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "required": [
+          "id"
+        ],
+        "properties": {
+          "id": {
+            "type": "string",
+            "description": "Unique identifier of the target for the dependency"
+          },
+          "backtrace": {
+            "type": "integer",
+            "minimum": 0,
+            "description": "Index into backtraceGraph nodes array of the command that created the dependency, if available"
+          },
+          "fromDependency": {
+            "type": "object",
+            "properties": {
+              "id": {
+                "type": "string",
+                "description": "Unique identifier of another target whose INTERFACE_LINK_LIBRARIES_DIRECT property created this dependency"
+              }
+            }
+          }
+        },
+        "additionalProperties": false
+      }
+    },
+    "interfaceCompileDependenciesV2_9": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "required": [
+          "id"
+        ],
+        "properties": {
+          "id": {
+            "type": "string",
+            "description": "Unique identifier of the target for the dependency"
+          },
+          "backtrace": {
+            "type": "integer",
+            "minimum": 0,
+            "description": "Index into backtraceGraph nodes array of the command that created the dependency, if available"
+          }
+        },
+        "additionalProperties": false
+      }
+    },
+    "onlyTargetDependenciesArrayV2_9": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "properties": {
+          "id": {
+            "type": "string",
+            "description": "Unique identifier of the target for the dependency"
+          },
+          "backtrace": {
+            "type": "integer",
+            "minimum": 0,
+            "description": "Index into backtraceGraph nodes array of the command that created the dependency, if available"
+          }
+        },
+        "additionalProperties": false
+      }
+    },
     "fileSetsV2_5": {
       "type": "array",
       "items": {
@@ -1414,6 +1536,24 @@
         "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_5"
         },

+ 5 - 0
Help/release/dev/fileapi-direct-dependencies.rst

@@ -15,3 +15,8 @@ fileapi-direct-dependencies
   * Entries in the ``directories`` and ``projects`` arrays of the "codemodel"
     object's ``configurations`` entries gained a new ``abstractTargetIndexes``
     array.
+
+* The :manual:`cmake-file-api(7)` "codemodel" version 2 "target" object gained
+  new ``linkLibraries``, ``interfaceLinkLibraries``, ``compileDependencies``,
+  ``interfaceCompileDependencies``, ``objectDependencies``, and
+  ``orderDependencies`` fields.

+ 145 - 0
Source/cmFileAPICodemodel.cxx

@@ -41,6 +41,7 @@
 #include "cmInstallScriptGenerator.h"
 #include "cmInstallSubdirectoryGenerator.h"
 #include "cmInstallTargetGenerator.h"
+#include "cmLinkItem.h"
 #include "cmLinkLineComputer.h" // IWYU pragma: keep
 #include "cmList.h"
 #include "cmListFileCache.h"
@@ -521,6 +522,13 @@ class Target
                                   std::string const& role = std::string());
   Json::Value DumpDependencies();
   Json::Value DumpDependency(cmTargetDepend const& td);
+
+  Json::Value DumpLinkItem(cmLinkItem const& linkItem);
+  Json::Value DumpLinkImplementationLibraries(cmGeneratorTarget::UseTo usage);
+  Json::Value DumpLinkInterfaceLibraries(cmGeneratorTarget::UseTo usage);
+  Json::Value DumpObjectDependencies();
+  Json::Value DumpOrderDependencies();
+
   Json::Value DumpFolder();
   Json::Value DumpLauncher(char const* name, char const* type);
   Json::Value DumpLaunchers();
@@ -1322,6 +1330,36 @@ Json::Value Target::Dump()
   }
 
   {
+    Json::Value linkLibraries =
+      this->DumpLinkImplementationLibraries(cmGeneratorTarget::UseTo::Link);
+    if (!linkLibraries.empty()) {
+      target["linkLibraries"] = std::move(linkLibraries);
+    }
+    Json::Value ifaceLinkLibraries =
+      this->DumpLinkInterfaceLibraries(cmGeneratorTarget::UseTo::Link);
+    if (!ifaceLinkLibraries.empty()) {
+      target["interfaceLinkLibraries"] = std::move(ifaceLinkLibraries);
+    }
+    Json::Value compileDependencies =
+      this->DumpLinkImplementationLibraries(cmGeneratorTarget::UseTo::Compile);
+    if (!compileDependencies.empty()) {
+      target["compileDependencies"] = std::move(compileDependencies);
+    }
+    Json::Value ifaceCompileDependencies =
+      this->DumpLinkInterfaceLibraries(cmGeneratorTarget::UseTo::Compile);
+    if (!ifaceCompileDependencies.empty()) {
+      target["interfaceCompileDependencies"] =
+        std::move(ifaceCompileDependencies);
+    }
+    Json::Value objectDependencies = this->DumpObjectDependencies();
+    if (!objectDependencies.empty()) {
+      target["objectDependencies"] = std::move(objectDependencies);
+    }
+    Json::Value orderDependencies = this->DumpOrderDependencies();
+    if (!orderDependencies.empty()) {
+      target["orderDependencies"] = std::move(orderDependencies);
+    }
+
     if (!this->GT->IsImported()) {
       this->ProcessLanguages();
     }
@@ -2170,6 +2208,113 @@ Json::Value Target::DumpDependency(cmTargetDepend const& td)
   return dependency;
 }
 
+Json::Value Target::DumpLinkItem(cmLinkItem const& linkItem)
+{
+  Json::Value itemJson = Json::objectValue;
+  if (linkItem.Target) {
+    itemJson["id"] = TargetId(linkItem.Target, this->TopBuild);
+  } else {
+    itemJson["fragment"] = linkItem.AsStr();
+  }
+  if (linkItem.InterfaceDirectFrom) {
+    Json::Value jsonDirectFrom = Json::objectValue;
+    jsonDirectFrom["id"] =
+      TargetId(linkItem.InterfaceDirectFrom, this->TopBuild);
+    itemJson["fromDependency"] = jsonDirectFrom;
+  }
+  this->AddBacktrace(itemJson, linkItem.Backtrace);
+  return itemJson;
+}
+
+Json::Value Target::DumpLinkImplementationLibraries(
+  cmGeneratorTarget::UseTo usage)
+{
+  Json::Value jsonLibs = Json::arrayValue;
+
+  cmLinkImplementationLibraries const* implLibs =
+    this->GT->GetLinkImplementationLibraries(this->Config, usage);
+  if (implLibs) {
+    for (cmLinkItem const& linkItem : implLibs->Libraries) {
+      // Non-target compile items are never used, so we drop them here too
+      if (usage == cmGeneratorTarget::UseTo::Link || linkItem.Target) {
+        jsonLibs.append(this->DumpLinkItem(linkItem));
+      }
+    }
+  }
+  return jsonLibs;
+}
+
+Json::Value Target::DumpLinkInterfaceLibraries(cmGeneratorTarget::UseTo usage)
+{
+  Json::Value jsonLibs = Json::arrayValue;
+
+  cmLinkInterfaceLibraries const* ifaceLibs =
+    this->GT->GetLinkInterfaceLibraries(this->Config, this->GT, usage);
+  if (ifaceLibs) {
+    for (cmLinkItem const& linkItem : ifaceLibs->Libraries) {
+      // Non-target compile items are never used, so we drop them here too
+      if (usage == cmGeneratorTarget::UseTo::Link || linkItem.Target) {
+        jsonLibs.append(this->DumpLinkItem(linkItem));
+      }
+    }
+  }
+  return jsonLibs;
+}
+
+Json::Value Target::DumpObjectDependencies()
+{
+  // Object dependencies are a special case. They cannot be config-specific
+  // because they are obtained by matching the pattern $<TARGET_OBJECTS:xxx>
+  // against the SOURCES property, and the matcher rejects any cases where
+  // "xxx" contains a generator expression. We can't use
+  // GetSourceObjectLibraries() either because that also returns object
+  // libraries added via LINK_LIBRARIES rather than $<TARGET_OBJECTS:xxx>,
+  // and the whole point of orderDependencies is to capture those that are
+  // not listed in LINK_LIBRARIES.
+  std::vector<BT<cmGeneratorTarget*>> objectLibraries;
+  this->GT->GetObjectLibrariesInSources(objectLibraries);
+
+  // We don't want to repeat the same target in the list. We will only
+  // retain one backtrace for cases where the same target is added multiple
+  // times from different commands. We also need a deterministic ordering,
+  // so we can't use cmGeneratorTarget* pointers in a std::set here.
+  using TargetIdMap = std::map<std::string, BT<cmGeneratorTarget*>>;
+  TargetIdMap uniqueObjectLibraries;
+  for (BT<cmGeneratorTarget*> const& target : objectLibraries) {
+    uniqueObjectLibraries[TargetId(target.Value, this->TopBuild)] = target;
+  }
+
+  Json::Value jsonDependencies = Json::arrayValue;
+  for (TargetIdMap::value_type const& idTargetPair : uniqueObjectLibraries) {
+    Json::Value jsonDependency = Json::objectValue;
+    jsonDependency["id"] = idTargetPair.first;
+    this->AddBacktrace(jsonDependency, idTargetPair.second.Backtrace);
+    jsonDependencies.append(jsonDependency);
+  }
+  return jsonDependencies;
+}
+
+Json::Value Target::DumpOrderDependencies()
+{
+  // The generated build systems don't account for per-config dependencies.
+  // This is due to limitations of Xcode and/or Visual Studio, which have
+  // (or at least once had) no way to express a per-config inter-target
+  // dependency.
+  Json::Value jsonDependencies = Json::arrayValue;
+  for (cmLinkItem const& linkItem : this->GT->GetUtilityItems()) {
+    // We don't want to dump dependencies on reserved targets like ZERO_CHECK
+    if (linkItem.Target &&
+        cmGlobalGenerator::IsReservedTarget(linkItem.Target->GetName())) {
+      continue;
+    }
+    Json::Value jsonDependency = Json::objectValue;
+    jsonDependency["id"] = TargetId(linkItem.Target, this->TopBuild);
+    this->AddBacktrace(jsonDependency, linkItem.Backtrace);
+    jsonDependencies.append(jsonDependency);
+  }
+  return jsonDependencies;
+}
+
 Json::Value Target::DumpFolder()
 {
   Json::Value folder;

+ 2 - 2
Source/cmGeneratorTarget.cxx

@@ -4953,7 +4953,7 @@ bool cmGeneratorTarget::GetConfigCommonSourceFilesForXcode(
 }
 
 void cmGeneratorTarget::GetObjectLibrariesInSources(
-  std::vector<cmGeneratorTarget*>& objlibs) const
+  std::vector<BT<cmGeneratorTarget*>>& objlibs) const
 {
   // FIXME: This searches SOURCES for TARGET_OBJECTS for backwards
   // compatibility with the OLD behavior of CMP0026 since this
@@ -4974,7 +4974,7 @@ void cmGeneratorTarget::GetObjectLibrariesInSources(
         cmGeneratorTarget* objLib =
           this->LocalGenerator->FindGeneratorTargetToUse(objLibName);
         if (objLib) {
-          objlibs.push_back(objLib);
+          objlibs.emplace_back(objLib, entry.Backtrace);
         }
       }
     }

+ 1 - 1
Source/cmGeneratorTarget.h

@@ -511,7 +511,7 @@ public:
   bool IsDotNetSdkTarget() const;
 
   void GetObjectLibrariesInSources(
-    std::vector<cmGeneratorTarget*>& objlibs) const;
+    std::vector<BT<cmGeneratorTarget*>>& objlibs) const;
 
   std::string GetFullNameImported(std::string const& config,
                                   cmStateEnums::ArtifactType artifact) const;

+ 1 - 0
Source/cmGeneratorTarget_Link.cxx

@@ -583,6 +583,7 @@ void cmGeneratorTarget::ExpandLinkItems(std::string const& prop,
         cmLinkItem item = std::move(*maybeItem);
 
         if (field == LinkInterfaceField::HeadInclude) {
+          item.InterfaceDirectFrom = this;
           iface.HeadInclude.emplace_back(std::move(item));
           continue;
         }

+ 5 - 5
Source/cmGlobalXCodeGenerator.cxx

@@ -5053,10 +5053,10 @@ void cmGlobalXCodeGenerator::CreateXCodeDependHackMakefile(
           }
         }
 
-        std::vector<cmGeneratorTarget*> objlibs;
+        std::vector<BT<cmGeneratorTarget*>> objlibs;
         gt->GetObjectLibrariesInSources(objlibs);
-        for (auto* objLib : objlibs) {
-          makefileStream << this->PostBuildMakeTarget(objLib->GetName(),
+        for (auto const& objLib : objlibs) {
+          makefileStream << this->PostBuildMakeTarget(objLib.Value->GetName(),
                                                       configName)
                          << ": " << trel << '\n';
         }
@@ -5074,9 +5074,9 @@ void cmGlobalXCodeGenerator::CreateXCodeDependHackMakefile(
           }
         }
 
-        for (auto* objLib : objlibs) {
+        for (auto const& objLib : objlibs) {
 
-          std::string const objLibName = objLib->GetName();
+          std::string const& objLibName = objLib.Value->GetName();
           std::string d = cmStrCat(this->GetTargetTempDir(gt, configName),
                                    "/lib", objLibName, ".a");
 

+ 3 - 0
Source/cmLinkItem.h

@@ -41,6 +41,9 @@ public:
   cmSourceFile const* ObjectSource = nullptr;
   std::string Feature;
   bool Cross = false;
+  // When the item was the result of a target's INTERFACE_LINK_LIBRARIES_DIRECT
+  // property, that originating target is provided here
+  cmGeneratorTarget const* InterfaceDirectFrom = nullptr;
   cmListFileBacktrace Backtrace;
   friend bool operator<(cmLinkItem const& l, cmLinkItem const& r);
   friend bool operator==(cmLinkItem const& l, cmLinkItem const& r);

+ 4 - 3
Source/cmLinkItemGraphVisitor.cxx

@@ -8,6 +8,7 @@
 
 #include "cmGeneratorTarget.h"
 #include "cmLinkItem.h"
+#include "cmListFileCache.h"
 #include "cmMakefile.h"
 
 void cmLinkItemGraphVisitor::VisitItem(cmLinkItem const& item)
@@ -120,12 +121,12 @@ void cmLinkItemGraphVisitor::GetDependencies(cmGeneratorTarget const& target,
     }
   }
 
-  std::vector<cmGeneratorTarget*> objectLibraries;
+  std::vector<BT<cmGeneratorTarget*>> objectLibraries;
   target.GetObjectLibrariesInSources(objectLibraries);
   for (auto const& lib : objectLibraries) {
-    auto const& name = lib->GetName();
+    auto const& name = lib.Value->GetName();
     if (dependencies.find(name) == dependencies.cend()) {
-      auto objectItem = cmLinkItem(lib, false, lib->GetBacktrace());
+      auto objectItem = cmLinkItem(lib.Value, false, lib.Backtrace);
       dependencies[name] = Dependency(DependencyType::Object, objectItem);
     }
   }

+ 140 - 1
Tests/RunCMake/FileAPI/codemodel-v2-check.py

@@ -567,6 +567,144 @@ def check_target(c, major, minor):
                              missing_exception=lambda e: "Dependency ID: %s" % e["id"],
                              extra_exception=lambda a: "Dependency ID: %s" % a["id"])
 
+        def is_same_link_library(actual, expected):
+            if "id" in actual:
+                return expected["id"] is not None and matches(actual["id"], expected["id"])
+            if "fragment" in actual:
+                return expected["fragment"] is not None and is_string(actual["fragment"], expected["fragment"])
+            assert False  # actual must have one of id or fragment
+
+        if expected["linkLibraries"] is not None:
+            expected_keys.append("linkLibraries")
+
+            def check_link_library(actual, expected):
+                assert is_dict(actual)
+                expected_keys = []
+
+                # We always require exactly one of id or fragment
+                if expected["id"] is not None:
+                    expected_keys.append("id")
+                    assert matches(actual["id"], expected["id"])
+                    assert "fragment" not in actual
+                else:
+                    expected_keys.append("fragment")
+                    assert is_string(actual["fragment"], expected["fragment"])
+                    assert "id" not in actual
+
+                if expected["backtrace"] is not None:
+                    expected_keys.append("backtrace")
+                    check_backtrace(obj, actual["backtrace"], expected["backtrace"])
+
+                if expected["fromDependency"] is not None:
+                    expected_keys.append("fromDependency")
+                    assert is_dict(actual["fromDependency"])
+                    assert matches(actual["fromDependency"]["id"], expected["fromDependency"])
+                    assert sorted(actual["fromDependency"].keys()) == ["id"]
+
+                assert sorted(actual.keys()) == sorted(expected_keys)
+
+            check_list_match(is_same_link_library,
+                             obj["linkLibraries"], expected["linkLibraries"],
+                             check=check_link_library,
+                             check_exception=lambda a, e: "Mismatched link library: %s" % (a["id"] if "id" in a else a["fragment"]),
+                             missing_exception=lambda e: "Missing link library: %s" % (e["id"] if e["id"] is not None else e["fragment"]),
+                             extra_exception=lambda a: "Extra link library: %s" % (a["id"] if "id" in a else a["fragment"]))
+
+        if expected["interfaceLinkLibraries"] is not None:
+            expected_keys.append("interfaceLinkLibraries")
+
+            def check_interface_link_library(actual, expected):
+                assert is_dict(actual)
+                expected_keys = []
+
+                # We always require exactly one of id or fragment
+                if expected["id"] is not None:
+                    expected_keys.append("id")
+                    assert matches(actual["id"], expected["id"])
+                    assert "fragment" not in actual
+                else:
+                    expected_keys.append("fragment")
+                    assert is_string(actual["fragment"], expected["fragment"])
+                    assert "id" not in actual
+
+                if expected["backtrace"] is not None:
+                    expected_keys.append("backtrace")
+                    check_backtrace(obj, actual["backtrace"], expected["backtrace"])
+
+                assert sorted(actual.keys()) == sorted(expected_keys)
+
+            check_list_match(is_same_link_library,
+                             obj["interfaceLinkLibraries"], expected["interfaceLinkLibraries"],
+                             check=check_interface_link_library,
+                             check_exception=lambda a, e: "Mismatched interface link library: %s" % (a["id"] if "id" in a else a["fragment"]),
+                             missing_exception=lambda e: "Missing interface link library: %s" % (e["id"] if e["id"] is not None else e["fragment"]),
+                             extra_exception=lambda a: "Extra interface link library: %s" % (a["id"] if "id" in a else a["fragment"]))
+
+        if expected["compileDependencies"] is not None:
+            expected_keys.append("compileDependencies")
+
+            def check_usage_dependency(actual, expected):
+                assert is_dict(actual)
+                assert matches(actual["id"], expected["id"])
+                expected_keys = ["id"]
+
+                if expected["backtrace"] is not None:
+                    expected_keys.append("backtrace")
+                    check_backtrace(obj, actual["backtrace"], expected["backtrace"])
+
+                if expected["fromDependency"] is not None:
+                    expected_keys.append("fromDependency")
+                    assert is_dict(actual["fromDependency"])
+                    assert matches(actual["fromDependency"]["id"], expected["fromDependency"])
+                    assert sorted(actual["fromDependency"].keys()) == ["id"]
+
+                assert sorted(actual.keys()) == sorted(expected_keys)
+
+            check_list_match(lambda a, e: matches(a["id"], e["id"]),
+                             obj["compileDependencies"], expected["compileDependencies"],
+                             check=check_usage_dependency,
+                             check_exception=lambda a, e: "Mismatched compile dependency: %s" % a["id"],
+                             missing_exception=lambda e: "Missing compile dependency: %s" % e["id"],
+                             extra_exception=lambda a: "Extra compile dependency: %s" % a["id"])
+
+        def check_only_target_dependency(actual, expected):
+            assert is_dict(actual)
+            assert matches(actual["id"], expected["id"])
+            expected_keys = ["id"]
+
+            if expected["backtrace"] is not None:
+                expected_keys.append("backtrace")
+                check_backtrace(obj, actual["backtrace"], expected["backtrace"])
+
+            assert sorted(actual.keys()) == sorted(expected_keys)
+
+        if expected["interfaceCompileDependencies"] is not None:
+            expected_keys.append("interfaceCompileDependencies")
+            check_list_match(lambda a, e: matches(a["id"], e["id"]),
+                             obj["interfaceCompileDependencies"], expected["interfaceCompileDependencies"],
+                             check=check_only_target_dependency,
+                             check_exception=lambda a, e: "Mismatched interface compile dependency: %s" % a["id"],
+                             missing_exception=lambda e: "Missing interface compile dependency: %s" % e["id"],
+                             extra_exception=lambda a: "Extra interface compile dependency: %s" % a["id"])
+
+        if expected["objectDependencies"] is not None:
+            expected_keys.append("objectDependencies")
+            check_list_match(lambda a, e: matches(a["id"], e["id"]),
+                             obj["objectDependencies"], expected["objectDependencies"],
+                             check=check_only_target_dependency,
+                             check_exception=lambda a, e: "Mismatched object dependency: %s" % a["id"],
+                             missing_exception=lambda e: "Missing object dependency: %s" % e["id"],
+                             extra_exception=lambda a: "Extra object dependency: %s" % a["id"])
+
+        if expected["orderDependencies"] is not None:
+            expected_keys.append("orderDependencies")
+            check_list_match(lambda a, e: matches(a["id"], e["id"]),
+                             obj["orderDependencies"], expected["orderDependencies"],
+                             check=check_only_target_dependency,
+                             check_exception=lambda a, e: "Mismatched order dependency: %s" % a["id"],
+                             missing_exception=lambda e: "Missing order dependency: %s" % e["id"],
+                             extra_exception=lambda a: "Extra order dependency: %s" % a["id"])
+
         if expected["sourceGroups"] is not None:
             expected_keys.append("sourceGroups")
 
@@ -1046,7 +1184,8 @@ def gen_check_build_system_targets(c, g, inSource):
             expected = filter_list(lambda e: e["name"] not in ("link_imported_object_exe"), expected)
             for e in expected:
                 e["dependencies"] = filter_list(lambda d: not matches(d["id"], "^\\^link_imported_object_exe::@"), e["dependencies"])
-                if e["name"] in ("c_object_lib", "cxx_object_lib"):
+                e["orderDependencies"] = filter_list(lambda d: not matches(d["id"], "^\\^link_imported_object_exe::@"), e["orderDependencies"])
+                if e["name"] in ("c_object_lib", "cxx_object_lib", "inject_direct_lib_impl"):
                     e["artifacts"] = None
 
     else:

+ 15 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_alias.json

@@ -86,5 +86,20 @@
             "id": "^cxx_alias_exe::@53632cba2752272bb008$",
             "backtrace": null
         }
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": [
+        {
+            "id": "^c_alias_exe::@53632cba2752272bb008$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_alias_exe::@53632cba2752272bb008$",
+            "backtrace": null
+        }
     ]
 }

+ 11 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_custom.json

@@ -82,5 +82,16 @@
             "id": "^custom_exe::@c11385ffed57b860da63$",
             "backtrace": null
         }
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": [
+        {
+            "id": "^custom_exe::@c11385ffed57b860da63$",
+            "backtrace": null
+        }
     ]
 }

+ 55 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_cxx.json

@@ -126,5 +126,60 @@
             "id": "^cxx_static_exe::@a56b12a3f5c0529fb296$",
             "backtrace": null
         }
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": [
+        {
+            "id": "^cxx_lib::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_exe::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_exe_cross_emulator::@ee4a268216d1f53c4e2e$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_exe_cross_emulator_args::@ee4a268216d1f53c4e2e$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_exe_test_launcher_and_cross_emulator::@ee4a268216d1f53c4e2e$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_exe_test_launcher::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_standard_compile_feature_exe::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_standard_exe::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_shared_exe::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_static_exe::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        }
     ]
 }

+ 31 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_direct.json

@@ -102,5 +102,36 @@
             "id": "^compile_usage_exe::@79b6367c9e05c77f6a80$",
             "backtrace": null
         }
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": [
+        {
+            "id": "^link_transitive_direct_exe::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        },
+        {
+            "id": "^transitive_direct_lib::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        },
+        {
+            "id": "^inject_direct_lib_impl::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        },
+        {
+            "id": "^usage_lib::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_usage_exe::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        },
+        {
+            "id": "^compile_usage_exe::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        }
     ]
 }

+ 11 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_external.json

@@ -82,5 +82,16 @@
             "id": "^generated_exe::@[0-9a-f]+$",
             "backtrace": null
         }
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": [
+        {
+            "id": "^generated_exe::@[0-9a-f]+$",
+            "backtrace": null
+        }
     ]
 }

+ 19 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_framework.json

@@ -90,5 +90,24 @@
             "id": "^exe_framework::@217a96c3a62328a73ef4$",
             "backtrace": null
         }
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": [
+        {
+            "id": "^shared_framework::@217a96c3a62328a73ef4$",
+            "backtrace": null
+        },
+        {
+            "id": "^static_framework::@217a96c3a62328a73ef4$",
+            "backtrace": null
+        },
+        {
+            "id": "^exe_framework::@217a96c3a62328a73ef4$",
+            "backtrace": null
+        }
     ]
 }

+ 31 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_imported.json

@@ -102,5 +102,36 @@
             "id": "^link_imported_interface_symbolic_exe::@ba7eb709d0b48779c6c8$",
             "backtrace": null
         }
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": [
+        {
+            "id": "^link_imported_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_imported_static_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_imported_object_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_imported_interface_symbolic_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        }
     ]
 }

+ 11 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_interface.json

@@ -82,5 +82,16 @@
             "id": "^iface_srcs::@25b7fa8ea00134654b85$",
             "backtrace": null
         }
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": [
+        {
+            "id": "^iface_srcs::@25b7fa8ea00134654b85$",
+            "backtrace": null
+        }
     ]
 }

+ 23 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_object.json

@@ -94,5 +94,28 @@
             "id": "^cxx_object_exe::@5ed5358f70faf8d8af7a$",
             "backtrace": null
         }
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": [
+        {
+            "id": "^c_object_lib::@5ed5358f70faf8d8af7a$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_object_exe::@5ed5358f70faf8d8af7a$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_object_exe::@5ed5358f70faf8d8af7a$",
+            "backtrace": null
+        }
     ]
 }

+ 191 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/all_build_top.json

@@ -262,5 +262,196 @@
             "id": "^compile_usage_exe::@79b6367c9e05c77f6a80$",
             "backtrace": null
         }
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": [
+        {
+            "id": "^interface_exe::@6890427a1f51a3e7e1df$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_lib::@6890427a1f51a3e7e1df$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_exe::@6890427a1f51a3e7e1df$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_shared_lib::@6890427a1f51a3e7e1df$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_shared_exe::@6890427a1f51a3e7e1df$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_static_lib::@6890427a1f51a3e7e1df$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_subdir::@6890427a1f51a3e7e1df$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_static_exe::@6890427a1f51a3e7e1df$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_alias_exe::@53632cba2752272bb008$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_alias_exe::@53632cba2752272bb008$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_lib::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_exe::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_exe_cross_emulator::@ee4a268216d1f53c4e2e$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_exe_cross_emulator_args::@ee4a268216d1f53c4e2e$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_exe_test_launcher_and_cross_emulator::@ee4a268216d1f53c4e2e$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_exe_test_launcher::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_standard_compile_feature_exe::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_standard_exe::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_shared_exe::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_static_exe::@a56b12a3f5c0529fb296$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_object_lib::@5ed5358f70faf8d8af7a$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_object_exe::@5ed5358f70faf8d8af7a$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$",
+            "backtrace": null
+        },
+        {
+            "id": "^cxx_object_exe::@5ed5358f70faf8d8af7a$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_imported_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_imported_shared_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_imported_static_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_imported_object_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_imported_interface_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_imported_interface_symbolic_exe::@ba7eb709d0b48779c6c8$",
+            "backtrace": null
+        },
+        {
+            "id": "^iface_srcs::@25b7fa8ea00134654b85$",
+            "backtrace": null
+        },
+        {
+            "id": "^custom_exe::@c11385ffed57b860da63$",
+            "backtrace": null
+        },
+        {
+            "id": "^generated_exe::@[0-9a-f]+$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_headers_1::@6b8db101d64c125f29fe$",
+            "backtrace": null
+        },
+        {
+            "id": "^c_headers_2::@6b8db101d64c125f29fe$",
+            "backtrace": null
+        },
+        {
+            "id": "^static_framework::@217a96c3a62328a73ef4$",
+            "backtrace": null
+        },
+        {
+            "id": "^shared_framework::@217a96c3a62328a73ef4$",
+            "backtrace": null
+        },
+        {
+            "id": "^exe_framework::@217a96c3a62328a73ef4$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_transitive_direct_exe::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        },
+        {
+            "id": "^transitive_direct_lib::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        },
+        {
+            "id": "^inject_direct_lib_impl::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        },
+        {
+            "id": "^usage_lib::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        },
+        {
+            "id": "^link_usage_exe::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        },
+        {
+            "id": "^compile_usage_exe::@79b6367c9e05c77f6a80$",
+            "backtrace": null
+        }
     ]
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_alias_exe.json

@@ -115,5 +115,50 @@
             "id": "^ZERO_CHECK::@53632cba2752272bb008$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^c_lib::@6890427a1f51a3e7e1df$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^alias/CMakeLists\\.txt$",
+                    "line": 6,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^alias/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^c_lib::@6890427a1f51a3e7e1df$",
+            "backtrace": [
+                {
+                    "file": "^alias/CMakeLists\\.txt$",
+                    "line": 6,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^alias/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 69 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_exe.json

@@ -152,6 +152,75 @@
             "backtrace": null
         }
     ],
+    "linkLibraries": [
+        {
+            "id": "^c_lib::@6890427a1f51a3e7e1df$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": 14,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": 3,
+                    "command": "include",
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^c_lib::@6890427a1f51a3e7e1df$",
+            "backtrace": [
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": 14,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": 3,
+                    "command": "include",
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null,
     "debugger": {
         "workingDirectory": "^/test/debugger/workingDirectory$"
     }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_1.json

@@ -276,5 +276,11 @@
       "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
       "backtrace": null
     }
-  ]
+  ],
+  "linkLibraries": null,
+  "interfaceLinkLibraries": null,
+  "compileDependencies": null,
+  "interfaceCompileDependencies": null,
+  "objectDependencies": null,
+  "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_headers_2.json

@@ -122,5 +122,11 @@
       "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
       "backtrace": null
     }
-  ]
+  ],
+  "linkLibraries": null,
+  "interfaceLinkLibraries": null,
+  "compileDependencies": null,
+  "interfaceCompileDependencies": null,
+  "objectDependencies": null,
+  "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_lib.json

@@ -116,5 +116,11 @@
             "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_object_exe.json

@@ -163,5 +163,50 @@
             "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^c_object_lib::@5ed5358f70faf8d8af7a$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^object/CMakeLists\\.txt$",
+                    "line": 10,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^object/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^c_object_lib::@5ed5358f70faf8d8af7a$",
+            "backtrace": [
+                {
+                    "file": "^object/CMakeLists\\.txt$",
+                    "line": 10,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^object/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_object_lib.json

@@ -90,5 +90,11 @@
             "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 70 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_shared_exe.json

@@ -151,5 +151,74 @@
             "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^c_shared_lib::@6890427a1f51a3e7e1df$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": 19,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": 3,
+                    "command": "include",
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^c_shared_lib::@6890427a1f51a3e7e1df$",
+            "backtrace": [
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": 19,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": 3,
+                    "command": "include",
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_shared_lib.json

@@ -227,5 +227,11 @@
             "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 70 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_static_exe.json

@@ -151,5 +151,74 @@
             "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^c_static_lib::@6890427a1f51a3e7e1df$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": 23,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": 3,
+                    "command": "include",
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^c_static_lib::@6890427a1f51a3e7e1df$",
+            "backtrace": [
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": 23,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": 3,
+                    "command": "include",
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_static_lib.json

@@ -116,5 +116,11 @@
             "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 66 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/c_subdir.json

@@ -157,5 +157,70 @@
             "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^c_lib::@6890427a1f51a3e7e1df$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^subdir/CMakeLists\\.txt$",
+                    "line": 3,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^subdir/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": [
+        {
+            "id": "^c_lib::@6890427a1f51a3e7e1df$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^subdir/CMakeLists\\.txt$",
+                    "line": 3,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^subdir/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "compileDependencies": [
+        {
+            "id": "^c_lib::@6890427a1f51a3e7e1df$",
+            "backtrace": [
+                {
+                    "file": "^subdir/CMakeLists\\.txt$",
+                    "line": 3,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^subdir/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 26 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/compile_usage_exe.json

@@ -98,5 +98,30 @@
             "id": "^ZERO_CHECK::@79b6367c9e05c77f6a80$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^usage_lib::@79b6367c9e05c77f6a80$",
+            "backtrace": [
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": 40,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 24 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/custom_exe.json

@@ -115,5 +115,29 @@
             "id": "^ZERO_CHECK::@c11385ffed57b860da63$",
             "backtrace": null
         }
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": [
+        {
+            "id": "^custom_tgt::@c11385ffed57b860da63$",
+            "backtrace": [
+                {
+                    "file": "^custom/CMakeLists\\.txt$",
+                    "line": 5,
+                    "command": "add_dependencies",
+                    "hasParent": true
+                },
+                {
+                    "file": "^custom/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ]
+        }
     ]
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/custom_tgt.json

@@ -90,5 +90,11 @@
             "id": "^ZERO_CHECK::@c11385ffed57b860da63$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_alias_exe.json

@@ -115,5 +115,50 @@
             "id": "^ZERO_CHECK::@53632cba2752272bb008$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^cxx_lib::@a56b12a3f5c0529fb296$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^alias/CMakeLists\\.txt$",
+                    "line": 10,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^alias/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^cxx_lib::@a56b12a3f5c0529fb296$",
+            "backtrace": [
+                {
+                    "file": "^alias/CMakeLists\\.txt$",
+                    "line": 10,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^alias/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 45 - 0
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe.json

@@ -258,6 +258,51 @@
             "backtrace": null
         }
     ],
+    "linkLibraries": [
+        {
+            "id": "^cxx_lib::@a56b12a3f5c0529fb296$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": 6,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^cxx_lib::@a56b12a3f5c0529fb296$",
+            "backtrace": [
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": 6,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null,
     "debugger": {
         "workingDirectory": "^/test/debugger/workingDirectory$"
     }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_cross_emulator.json

@@ -104,5 +104,11 @@
             "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_cross_emulator_args.json

@@ -108,5 +108,11 @@
             "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_test_launcher.json

@@ -104,5 +104,11 @@
             "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_exe_test_launcher_and_cross_emulator.json

@@ -108,5 +108,11 @@
             "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_lib.json

@@ -92,5 +92,11 @@
             "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_object_exe.json

@@ -163,5 +163,50 @@
             "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^object/CMakeLists\\.txt$",
+                    "line": 14,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^object/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^cxx_object_lib::@5ed5358f70faf8d8af7a$",
+            "backtrace": [
+                {
+                    "file": "^object/CMakeLists\\.txt$",
+                    "line": 14,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^object/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_object_lib.json

@@ -90,5 +90,11 @@
             "id": "^ZERO_CHECK::@5ed5358f70faf8d8af7a$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_shared_exe.json

@@ -115,5 +115,50 @@
             "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": 13,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies":  [
+        {
+            "id": "^cxx_shared_lib::@a56b12a3f5c0529fb296$",
+            "backtrace": [
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": 13,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_shared_lib.json

@@ -203,5 +203,11 @@
             "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_standard_compile_feature_exe.json

@@ -117,5 +117,11 @@
             "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_standard_exe.json

@@ -117,5 +117,11 @@
             "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_static_exe.json

@@ -115,5 +115,50 @@
             "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": 17,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^cxx_static_lib::@a56b12a3f5c0529fb296$",
+            "backtrace": [
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": 17,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^cxx/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/cxx_static_lib.json

@@ -92,5 +92,11 @@
             "id": "^ZERO_CHECK::@a56b12a3f5c0529fb296$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 120 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/exe_framework.json

@@ -169,5 +169,124 @@
             "id": "^ZERO_CHECK::@217a96c3a62328a73ef4$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^import_framework::@217a96c3a62328a73ef4$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": 17,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        },
+        {
+            "id": "^shared_framework::@217a96c3a62328a73ef4$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": 17,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        },
+        {
+            "id": "^static_framework::@217a96c3a62328a73ef4$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": 17,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^import_framework::@217a96c3a62328a73ef4$",
+            "backtrace": [
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": 17,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        },
+        {
+            "id": "^shared_framework::@217a96c3a62328a73ef4$",
+            "backtrace": [
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": 17,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        },
+        {
+            "id": "^static_framework::@217a96c3a62328a73ef4$",
+            "backtrace": [
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": 17,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^framework/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/generated_exe.json

@@ -316,5 +316,11 @@
             "id": "^ZERO_CHECK::@[0-9a-f]+$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/iface_none.json

@@ -35,5 +35,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/iface_srcs.json

@@ -69,5 +69,11 @@
             "id": "^ZERO_CHECK::@25b7fa8ea00134654b85$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/iface_symbolic.json

@@ -35,5 +35,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/import_framework.json

@@ -44,5 +44,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_exe.json

@@ -40,5 +40,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_interface_lib.json

@@ -35,5 +35,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_interface_symbolic_lib.json

@@ -35,5 +35,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_lib.json

@@ -35,5 +35,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_object_lib.json

@@ -35,5 +35,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_shared_lib.json

@@ -44,5 +44,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/imported_static_lib.json

@@ -40,5 +40,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/inject_direct_lib.json

@@ -35,5 +35,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/inject_direct_lib_impl.json

@@ -90,5 +90,11 @@
             "id": "^ZERO_CHECK::@79b6367c9e05c77f6a80$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 94 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/interface_exe.json

@@ -200,5 +200,98 @@
             "id": "^ZERO_CHECK::@6890427a1f51a3e7e1df$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^interface_lib::@6890427a1f51a3e7e1df$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^include_test\\.cmake$",
+                    "line": 4,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^include_test\\.cmake$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": true
+                },
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": 10,
+                    "command": "include",
+                    "hasParent": true
+                },
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": 3,
+                    "command": "include",
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^interface_lib::@6890427a1f51a3e7e1df$",
+            "backtrace": [
+                {
+                    "file": "^include_test\\.cmake$",
+                    "line": 4,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^include_test\\.cmake$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": true
+                },
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": 10,
+                    "command": "include",
+                    "hasParent": true
+                },
+                {
+                    "file": "^codemodel-v2\\.cmake$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": 3,
+                    "command": "include",
+                    "hasParent": true
+                },
+                {
+                    "file": "^CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/interface_lib.json

@@ -59,5 +59,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_exe.json

@@ -98,5 +98,50 @@
             "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^imported_lib::@ba7eb709d0b48779c6c8$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 10,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^imported_lib::@ba7eb709d0b48779c6c8$",
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 10,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_interface_exe.json

@@ -98,5 +98,50 @@
             "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^imported_interface_lib::@ba7eb709d0b48779c6c8$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 33,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^imported_interface_lib::@ba7eb709d0b48779c6c8$",
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 33,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_interface_symbolic_exe.json

@@ -98,5 +98,50 @@
             "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^imported_interface_symbolic_lib::@ba7eb709d0b48779c6c8$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 37,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^imported_interface_symbolic_lib::@ba7eb709d0b48779c6c8$",
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 37,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_object_exe.json

@@ -98,5 +98,50 @@
             "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^imported_object_lib::@ba7eb709d0b48779c6c8$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 28,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^imported_object_lib::@ba7eb709d0b48779c6c8$",
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 28,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_shared_exe.json

@@ -98,5 +98,50 @@
             "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^imported_shared_lib::@ba7eb709d0b48779c6c8$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 18,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^imported_shared_lib::@ba7eb709d0b48779c6c8$",
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 18,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 46 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_imported_static_exe.json

@@ -98,5 +98,50 @@
             "id": "^ZERO_CHECK::@ba7eb709d0b48779c6c8$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^imported_static_lib::@ba7eb709d0b48779c6c8$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 23,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^imported_static_lib::@ba7eb709d0b48779c6c8$",
+            "backtrace": [
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": 23,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^imported/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 83 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_transitive_direct_exe.json

@@ -159,5 +159,87 @@
             "id": "^ZERO_CHECK::@79b6367c9e05c77f6a80$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^transitive_direct_lib::@79b6367c9e05c77f6a80$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": 18,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        },
+        {
+            "id": "^inject_direct_lib_impl::@79b6367c9e05c77f6a80$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": 13,
+                    "command": "set_property",
+                    "hasParent": true
+                },
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": "^inject_direct_lib::@79b6367c9e05c77f6a80$"
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": [
+        {
+            "id": "^transitive_direct_lib::@79b6367c9e05c77f6a80$",
+            "backtrace": [
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": 18,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        },
+        {
+            "id": "^inject_direct_lib_impl::@79b6367c9e05c77f6a80$",
+            "backtrace": [
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": 13,
+                    "command": "set_property",
+                    "hasParent": true
+                },
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": "^inject_direct_lib::@79b6367c9e05c77f6a80$"
+        }
+    ],
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 27 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/link_usage_exe.json

@@ -115,5 +115,31 @@
             "id": "^ZERO_CHECK::@79b6367c9e05c77f6a80$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^usage_lib::@79b6367c9e05c77f6a80$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": 39,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/shared_framework.json

@@ -110,5 +110,11 @@
             "id": "^ZERO_CHECK::@217a96c3a62328a73ef4$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/static_framework.json

@@ -92,5 +92,11 @@
             "id": "^ZERO_CHECK::@217a96c3a62328a73ef4$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 101 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/transitive_direct_lib.json

@@ -92,5 +92,105 @@
             "id": "^ZERO_CHECK::@79b6367c9e05c77f6a80$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": [
+        {
+            "id": "^inject_direct_lib::@79b6367c9e05c77f6a80$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": 28,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceLinkLibraries": [
+        {
+            "id": "^inject_direct_lib::@79b6367c9e05c77f6a80$",
+            "fragment": null,
+            "backtrace": [
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": 28,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ]
+        },
+        {
+            "id": null,
+            "fragment": "-lm",
+            "backtrace": [
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": 28,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ]
+        }
+    ],
+    "compileDependencies": [
+        {
+            "id": "^inject_direct_lib::@79b6367c9e05c77f6a80$",
+            "backtrace": [
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": 28,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ],
+            "fromDependency": null
+        }
+    ],
+    "interfaceCompileDependencies": [
+        {
+            "id": "^inject_direct_lib::@79b6367c9e05c77f6a80$",
+            "backtrace": [
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": 28,
+                    "command": "target_link_libraries",
+                    "hasParent": true
+                },
+                {
+                    "file": "^direct/CMakeLists\\.txt$",
+                    "line": null,
+                    "command": null,
+                    "hasParent": false
+                }
+            ]
+        }
+    ],
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/usage_lib.json

@@ -92,5 +92,11 @@
             "id": "^ZERO_CHECK::@79b6367c9e05c77f6a80$",
             "backtrace": null
         }
-    ]
+    ],
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_alias.json

@@ -73,5 +73,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_custom.json

@@ -73,5 +73,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_cxx.json

@@ -73,5 +73,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_direct.json

@@ -73,5 +73,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_external.json

@@ -73,5 +73,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_framework.json

@@ -73,5 +73,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_imported.json

@@ -73,5 +73,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_interface.json

@@ -73,5 +73,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_object.json

@@ -73,5 +73,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }

+ 7 - 1
Tests/RunCMake/FileAPI/codemodel-v2-data/targets/zero_check_top.json

@@ -73,5 +73,11 @@
     "install": null,
     "link": null,
     "archive": null,
-    "dependencies": null
+    "dependencies": null,
+    "linkLibraries": null,
+    "interfaceLinkLibraries": null,
+    "compileDependencies": null,
+    "interfaceCompileDependencies": null,
+    "objectDependencies": null,
+    "orderDependencies": null
 }