Files
qt-5.14.2/msvc-windows/conanfile.py
2026-04-02 14:07:03 +08:00

69 lines
2.8 KiB
Python

from conan import ConanFile
from conan.tools.files import copy
import os
class MsvcQtConan(ConanFile):
name = "qt"
version = "5.14.2"
# Notice we keep build_type so Conan can generate
# isolated Debug and Release packages upon user request.
settings = "os", "compiler", "build_type", "arch"
# We do not build anything, we just package the pre-compiled folders
def build(self):
pass
def package(self):
# We know the absolute path of the local MSVC 2017 installation
bin_path = r"C:\Qt\Qt5.14.2\5.14.2\msvc2017_64"
self.output.info(f"Packaging {bin_path}...")
# Copy bin, lib, include, mkspecs, plugins, qml, etc.
copy(self, "*", src=bin_path, dst=self.package_folder, keep_path=True)
# Create bin/qt.conf to avoid hardcoded absolute paths!
qt_conf_path = os.path.join(self.package_folder, "bin", "qt.conf")
with open(qt_conf_path, "w", encoding="utf-8") as f:
f.write("[Paths]\n")
f.write("Prefix = ..\n")
f.write("ArchData = .\n")
f.write("Data = .\n")
f.write("Documentation = doc\n")
f.write("Headers = include\n")
f.write("Libraries = lib\n")
f.write("LibraryExecutables = bin\n")
f.write("Binaries = bin\n")
f.write("Plugins = plugins\n")
f.write("Imports = imports\n")
f.write("Qml2Imports = qml\n")
f.write("Translations = translations\n")
f.write("Settings = .\n")
f.write("Examples = examples\n")
f.write("Tests = tests\n")
def package_info(self):
self.cpp_info.bindirs = ["bin"]
self.cpp_info.libdirs = ["lib"]
self.cpp_info.includedirs = ["include"]
# CMake config files provided by Qt will be registered here
self.cpp_info.builddirs = ["lib/cmake", "lib/cmake/Qt5", "mkspecs"]
qt_dir = self.package_folder
qt_plugin_path = os.path.join(self.package_folder, "plugins")
qml2_import_path = os.path.join(self.package_folder, "qml")
# Set environment variables for automation and QtCreator
self.buildenv_info.define_path("QTDIR", qt_dir)
self.buildenv_info.define_path("QT_PLUGIN_PATH", qt_plugin_path)
self.buildenv_info.define_path("QML2_IMPORT_PATH", qml2_import_path)
self.runenv_info.define_path("QTDIR", qt_dir)
self.runenv_info.define_path("QT_PLUGIN_PATH", qt_plugin_path)
self.runenv_info.define_path("QML2_IMPORT_PATH", qml2_import_path)
self.buildenv_info.prepend_path("PATH", os.path.join(self.package_folder, "bin"))
self.runenv_info.prepend_path("PATH", os.path.join(self.package_folder, "bin"))
self.cpp_info.set_property("cmake_build_modules", ["lib/cmake/Qt5/Qt5Config.cmake"])