2021-04-14 07:03:39 +00:00
|
|
|
#############################################################################
|
|
|
|
##
|
2022-01-26 09:35:09 +00:00
|
|
|
## Copyright (C) 2022 The Qt Company Ltd.
|
2021-04-14 07:03:39 +00:00
|
|
|
## Contact: https://www.qt.io/licensing/
|
|
|
|
##
|
|
|
|
## This file is part of the release tools of the Qt Toolkit.
|
|
|
|
##
|
|
|
|
## $QT_BEGIN_LICENSE:GPL-EXCEPT$
|
|
|
|
## Commercial License Usage
|
|
|
|
## Licensees holding valid commercial Qt licenses may use this file in
|
|
|
|
## accordance with the commercial license agreement provided with the
|
|
|
|
## Software or, alternatively, in accordance with the terms contained in
|
|
|
|
## a written agreement between you and The Qt Company. For licensing terms
|
|
|
|
## and conditions see https://www.qt.io/terms-conditions. For further
|
|
|
|
## information use the contact form at https://www.qt.io/contact-us.
|
|
|
|
##
|
|
|
|
## GNU General Public License Usage
|
|
|
|
## Alternatively, this file may be used under the terms of the GNU
|
|
|
|
## General Public License version 3 as published by the Free Software
|
|
|
|
## Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
|
|
|
|
## included in the packaging of this file. Please review the following
|
|
|
|
## information to ensure the GNU General Public License requirements will
|
|
|
|
## be met: https://www.gnu.org/licenses/gpl-3.0.html.
|
|
|
|
##
|
|
|
|
## $QT_END_LICENSE$
|
|
|
|
##
|
|
|
|
#############################################################################
|
|
|
|
|
|
|
|
from conans import ConanFile
|
|
|
|
import re
|
|
|
|
from pathlib import Path
|
2021-08-10 10:27:38 +00:00
|
|
|
from typing import Dict, Any
|
2021-04-14 07:03:39 +00:00
|
|
|
|
|
|
|
_qtdeclarative_features = [
|
|
|
|
"qml-animation",
|
|
|
|
"qml-debug",
|
|
|
|
"qml-delegate-model",
|
|
|
|
"qml-devtools",
|
|
|
|
"qml-itemmodel",
|
|
|
|
"qml-jit",
|
|
|
|
"qml-list-model",
|
|
|
|
"qml-locale",
|
|
|
|
"qml-network",
|
|
|
|
"qml-object-model",
|
|
|
|
"qml-preview",
|
|
|
|
"qml-profiler",
|
|
|
|
"qml-table-model",
|
|
|
|
"qml-worker-script",
|
|
|
|
"qml-xml-http-request",
|
|
|
|
"qml-xmllistmodel",
|
|
|
|
"quick-animatedimage",
|
|
|
|
"quick-canvas",
|
|
|
|
"quick-designer",
|
|
|
|
"quick-draganddrop",
|
|
|
|
"quick-flipable",
|
|
|
|
"quick-gridview",
|
|
|
|
"quick-listview",
|
|
|
|
"quick-particles",
|
|
|
|
"quick-path",
|
|
|
|
"quick-pathview",
|
|
|
|
"quick-positioners",
|
|
|
|
"quick-repeater",
|
|
|
|
"quick-shadereffect",
|
|
|
|
"quick-sprite",
|
|
|
|
"quick-tableview",
|
2021-11-19 15:58:36 +00:00
|
|
|
"quick-treeview",
|
2021-04-14 07:03:39 +00:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
|
|
def _parse_qt_version_by_key(key: str) -> str:
|
2021-08-10 10:27:38 +00:00
|
|
|
with open(Path(__file__).parent.resolve() / ".cmake.conf") as f:
|
|
|
|
m = re.search(fr'{key} .*"(.*)"', f.read())
|
|
|
|
return m.group(1) if m else ""
|
2021-04-14 07:03:39 +00:00
|
|
|
|
|
|
|
|
2021-06-24 06:05:24 +00:00
|
|
|
def _get_qt_minor_version() -> str:
|
2021-08-10 10:27:38 +00:00
|
|
|
return ".".join(_parse_qt_version_by_key("QT_REPO_MODULE_VERSION").split(".")[:2])
|
2021-06-24 06:05:24 +00:00
|
|
|
|
|
|
|
|
2021-04-14 07:03:39 +00:00
|
|
|
class QtDeclarative(ConanFile):
|
|
|
|
name = "qtdeclarative"
|
2021-08-10 10:27:38 +00:00
|
|
|
license = "LGPL-3.0, GPL-2.0+, Commercial Qt License Agreement"
|
2021-04-14 07:03:39 +00:00
|
|
|
author = "The Qt Company <https://www.qt.io/contact-us>"
|
2021-08-10 10:27:38 +00:00
|
|
|
url = "https://code.qt.io/cgit/qt/qtdeclarative.git"
|
2021-04-14 07:03:39 +00:00
|
|
|
description = (
|
|
|
|
"The Qt Declarative module provides a declarative framework for building highly dynamic, "
|
|
|
|
"custom user interfaces"
|
|
|
|
)
|
2021-08-10 10:27:38 +00:00
|
|
|
topics = "qt", "qt6", "qtdeclarative"
|
2021-04-14 07:03:39 +00:00
|
|
|
settings = "os", "compiler", "arch", "build_type"
|
2021-08-10 10:27:38 +00:00
|
|
|
# for referencing the version number and prerelease tag and dependencies info
|
|
|
|
exports = ".cmake.conf", "dependencies.yaml"
|
2021-04-14 07:03:39 +00:00
|
|
|
exports_sources = "*", "!conan*.*"
|
2021-06-24 06:05:24 +00:00
|
|
|
python_requires = f"qt-conan-common/{_get_qt_minor_version()}@qt/everywhere"
|
2021-08-10 10:27:38 +00:00
|
|
|
python_requires_extend = "qt-conan-common.QtLeafModule"
|
2021-04-14 07:03:39 +00:00
|
|
|
|
2021-08-10 10:27:38 +00:00
|
|
|
def get_qt_leaf_module_options(self) -> Dict[str, Any]:
|
|
|
|
"""Implements abstractmethod from qt-conan-common.QtLeafModule"""
|
2022-01-26 09:35:09 +00:00
|
|
|
return self._shared.convert_qt_features_to_conan_options(_qtdeclarative_features)
|
2021-04-14 07:03:39 +00:00
|
|
|
|
2021-08-10 10:27:38 +00:00
|
|
|
def get_qt_leaf_module_default_options(self) -> Dict[str, Any]:
|
|
|
|
"""Implements abstractmethod from qt-conan-common.QtLeafModule"""
|
2022-01-26 09:35:09 +00:00
|
|
|
return self._shared.convert_qt_features_to_default_conan_options(_qtdeclarative_features)
|