[cmake-developers] daemon-mode: Project structure

Tobias Hunger Tobias.Hunger at qt.io
Thu Jun 9 11:52:43 EDT 2016


Hello everybody,

Ok, so far I changed this:

 * sourceGroups got renamed to fileGroups
 * System include paths get reported
 * GLOBAL_TARGETs are no longer listed.
 
So this is what it looks right now:

  [== CMake MetaMagic ==[
{
  # Reply header:
  "cookie":"",
  "type":"reply",
  "inReplyTo":"project",

  # Project data:
  "projects":
  [
    {
      "name":"CMAKE_FORM",
      "sourceDirectory":"/home/code/src/cmake/Source/CursesDialog/form"
      "buildDirectory":"/tmp/cmake-build-test/Source/CursesDialog/form",
      "configurations":
      [
        {
          "name":"",
          "targets":
          [
            {
              "artifactDirectory":"/tmp/cmake/Source/CursesDialog/form",
              "fileGroups":
              [
                {
                  "compileFlags":"  -std=gnu11",
                  "defines":
                  [ 
                    "SOMETHING=1",
                    "LIBARCHIVE_STATIC"
                  ],
                  "includePath":
                  [
                    { "path":"/tmp/cmake-build-test/Utilities" },
                    { "isSystem": true, "path":"/usr/include/something" },
                    # <snip>;
                  ]
                  "lanugage":"C",
                  "sources":
                  [
                    "fld_arg.c",
                    # <snip>;
                    "fty_regex.c"
                  ]
                }
              ],
              "fullName":"libcmForm.a",
              "linkerLanguage":"C",
              "name":"cmForm",
              "type":"STATIC_LIBRARY"
            }
          ]
        }
      ],
    }, # end of project
    # <snip, more (sub)projects>
  ] # end of projects list
} # end of message]== CMake MetaMagic ==]

Output size is ~77KiB for the cmake project in raw JSON format. This is much
smaller than before, due to the GLOBAL_TARGETs being gone.


Still open:

 * What information to store about library build locations? Or maybe list build
   artifacts instead?
 * Where are targtes going to get installed to?

Best Regards,
Tobias

-- 
Tobias Hunger, Senior Software Engineer | The Qt Company
The Qt Company GmbH, Rudower Chaussee 13, D-12489 Berlin
Geschäftsführer: Mika Pälsi, Juha Varelius, Mika Harjuaho. Sitz der
Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B


More information about the cmake-developers mailing list