pro2cmake: Parse "optional plugin" from qmldir files
Task-number: QTBUG-84639 Change-Id: Iedfa2e53c686a7c7c855efc7b9deee097a15f4b7 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
16c15cb0b5
commit
910804a420
@ -576,6 +576,7 @@ class QmlDir:
|
|||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
self.module = ""
|
self.module = ""
|
||||||
self.plugin_name = ""
|
self.plugin_name = ""
|
||||||
|
self.plugin_optional = False
|
||||||
self.plugin_path = ""
|
self.plugin_path = ""
|
||||||
self.classname = ""
|
self.classname = ""
|
||||||
self.imports: List[str] = []
|
self.imports: List[str] = []
|
||||||
@ -589,7 +590,7 @@ class QmlDir:
|
|||||||
imports_line = " \n".join(self.imports)
|
imports_line = " \n".join(self.imports)
|
||||||
string = f"""\
|
string = f"""\
|
||||||
module: {self.module}
|
module: {self.module}
|
||||||
plugin: {self.plugin_name} {self.plugin_path}
|
plugin: {self.plugin_optional} {self.plugin_name} {self.plugin_path}
|
||||||
classname: {self.classname}
|
classname: {self.classname}
|
||||||
type_infos:{type_infos_line}
|
type_infos:{type_infos_line}
|
||||||
imports:{imports_line}
|
imports:{imports_line}
|
||||||
@ -664,6 +665,13 @@ class QmlDir:
|
|||||||
self.plugin_name = entries[1]
|
self.plugin_name = entries[1]
|
||||||
if len(entries) > 2:
|
if len(entries) > 2:
|
||||||
self.plugin_path = entries[2]
|
self.plugin_path = entries[2]
|
||||||
|
elif entries[0] == "optional":
|
||||||
|
if entries[1] != "plugin":
|
||||||
|
raise RuntimeError("Only plugins can be optional in qmldir files")
|
||||||
|
self.plugin_name = entries[2]
|
||||||
|
self.plugin_optional = True
|
||||||
|
if len(entries) > 3:
|
||||||
|
self.plugin_path = entries[3]
|
||||||
elif entries[0] == "classname":
|
elif entries[0] == "classname":
|
||||||
self.classname = entries[1]
|
self.classname = entries[1]
|
||||||
elif entries[0] == "typeinfo":
|
elif entries[0] == "typeinfo":
|
||||||
@ -3427,6 +3435,8 @@ def write_example(
|
|||||||
add_target += f" IMPORTS\n{qml_dir_imports_line}"
|
add_target += f" IMPORTS\n{qml_dir_imports_line}"
|
||||||
if qml_dir_dynamic_imports:
|
if qml_dir_dynamic_imports:
|
||||||
add_target += " IMPORTS ${module_dynamic_qml_imports}\n"
|
add_target += " IMPORTS ${module_dynamic_qml_imports}\n"
|
||||||
|
if qml_dir.plugin_optional:
|
||||||
|
add_target += " PLUGIN_OPTIONAL\n"
|
||||||
|
|
||||||
add_target += " INSTALL_LOCATION ${INSTALL_EXAMPLEDIR}\n)\n\n"
|
add_target += " INSTALL_LOCATION ${INSTALL_EXAMPLEDIR}\n)\n\n"
|
||||||
add_target += f"target_sources({binary_name} PRIVATE"
|
add_target += f"target_sources({binary_name} PRIVATE"
|
||||||
@ -3720,6 +3730,8 @@ def write_qml_plugin(
|
|||||||
extra_lines.append("IMPORTS\n " f"{qml_dir_imports_line}")
|
extra_lines.append("IMPORTS\n " f"{qml_dir_imports_line}")
|
||||||
if qml_dir_dynamic_imports:
|
if qml_dir_dynamic_imports:
|
||||||
extra_lines.append("IMPORTS ${module_dynamic_qml_imports}")
|
extra_lines.append("IMPORTS ${module_dynamic_qml_imports}")
|
||||||
|
if qml_dir.plugin_optional:
|
||||||
|
extra_lines.append("PLUGIN_OPTIONAL")
|
||||||
|
|
||||||
return qml_dir
|
return qml_dir
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user