qtbase/cmake/ModuleDescription.json.in
Joerg Bornemann 6f25a583a6 CMake: Rework the module JSON files
The linked issue reports a lack of information about multi-arch builds
of Qt on Apple platforms. In order to add the information we take the
chance to rework the structure of the module JSON files and make the
format future-proof for when we'll create multi-platform
bundles (xcframeworks).

The new module JSON files differ from the old ones in the following
points:

- The 'schema_version' key denotes the version of the module JSON file
schema. It's set to 2.

- The 'built_with' key was removed. The relevant information was moved
to 'platforms' entries.

- The 'cross_compiled' key was removed. It was only used to determine
whether a Qt build contained host tools. Since one needs the actual path
to host tools anyway, it's more useful to query qtpaths for that
information.

- A 'platforms' key was added that holds a list of target platforms.
Currently, only an iOS simulator-and-device build has more than one
platform:
    "name": "iOS",
    "variant": "iphoneos",
and
    "name": "iOS",
    "variant": "iphonesimulator",

- A 'targets' key was added under each 'platforms' entry. This contains
information about the target architecture(s) and other relevant
properties.

- The 'android' key was flattened and moved to the 'targets' entries.

[ChangeLog][CMake] The structure of the module JSON files, e.g.
modules/Core.json has been reworked. Consumers of these files need to be
updated. A 'schema_version' key was added and set to 2 to ease reading
different versions of these files.

Fixes: QTBUG-129996
Change-Id: I5a6ac9746aa19ad0ee9f2d020bf7486bdac28226
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
2024-11-14 15:15:55 +01:00

9 lines
215 B
JSON

{
"schema_version": 2,
"name": "${target}",
"repository": "${lower_case_project_name}",
"version": "${PROJECT_VERSION}",${extra_module_information}
"platforms": [${platforms_information}
]
}