[DO-981] fix qt package info (!17)
Co-authored-by: aleksandr.vodyanov <aleksandr.vodyanov@avroid.tech> Reviewed-on: https://git.avroid.tech/Conan/conan_build/pulls/17
This commit is contained in:
29
recipes/dbus/all/conandata.yml
Normal file
29
recipes/dbus/all/conandata.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
sources:
|
||||
"1.15.8":
|
||||
url: "https://nexus.avroid.tech/repository/all-raw-proxy-dbus_freedesktop_org/releases/dbus/dbus-1.15.8.tar.xz"
|
||||
sha256: "84fc597e6ec82f05dc18a7d12c17046f95bad7be99fc03c15bc254c4701ed204"
|
||||
"1.15.6":
|
||||
url: "https://nexus.avroid.tech/repository/all-raw-proxy-dbus_freedesktop_org/releases/dbus/dbus-1.15.6.tar.xz"
|
||||
sha256: "f97f5845f9c4a5a1fb3df67dfa9e16b5a3fd545d348d6dc850cb7ccc9942bd8c"
|
||||
"1.15.2":
|
||||
url: "https://nexus.avroid.tech/repository/all-raw-proxy-dbus_freedesktop_org/releases/dbus/dbus-1.15.2.tar.xz"
|
||||
sha256: "7e640803084af59f5e477b7ded11fd888b5380910a895c51ca3aedd63c0626ca"
|
||||
"1.15.0":
|
||||
url: "https://nexus.avroid.tech/repository/all-raw-proxy-dbus_freedesktop_org/releases/dbus/dbus-1.15.0.tar.xz"
|
||||
sha256: "5073c8cb9ad20226647bb38f4965182b762a6e1f595ccdc8e59411014bfd640a"
|
||||
patches:
|
||||
"1.15.8":
|
||||
- patch_file: "patches/0001-meson-Use-check_header-to-confirm-headers-work.patch"
|
||||
patch_type: "portability"
|
||||
patch_description: "Fix build with Visual Studio 2022"
|
||||
patch_source: "https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/454"
|
||||
"1.15.2":
|
||||
- patch_file: "patches/0003-meson-monotonic-clock-check.patch"
|
||||
patch_type: "portability"
|
||||
patch_description: "Fix detection of necessary monotonic clock functions in pthread"
|
||||
patch_source: "https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/352"
|
||||
"1.15.0":
|
||||
- patch_file: "patches/0003-meson-monotonic-clock-check.patch"
|
||||
patch_type: "portability"
|
||||
patch_description: "Fix detection of necessary monotonic clock functions in pthread"
|
||||
patch_source: "https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/352"
|
||||
224
recipes/dbus/all/conanfile.py
Normal file
224
recipes/dbus/all/conanfile.py
Normal file
@@ -0,0 +1,224 @@
|
||||
from conan import ConanFile
|
||||
from conan.errors import ConanInvalidConfiguration
|
||||
from conan.tools.apple import fix_apple_shared_install_name, is_apple_os
|
||||
from conan.tools.env import VirtualBuildEnv
|
||||
from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rename, replace_in_file, rm, rmdir, save
|
||||
from conan.tools.gnu import PkgConfigDeps
|
||||
from conan.tools.layout import basic_layout
|
||||
from conan.tools.meson import Meson, MesonToolchain
|
||||
from conan.tools.scm import Version
|
||||
import os
|
||||
import textwrap
|
||||
|
||||
required_conan_version = ">=1.64.0 <2 || >=2.2.0"
|
||||
|
||||
|
||||
class DbusConan(ConanFile):
|
||||
name = "dbus"
|
||||
# license is AFL-2.1 OR GPL-2.0-or-later with several other compatible licenses for smaller sections of code
|
||||
license = "(AFL-2.1 OR GPL-2.0-or-later) AND DocumentRef-COPYING"
|
||||
url = "https://github.com/conan-io/conan-center-index"
|
||||
homepage = "https://www.freedesktop.org/wiki/Software/dbus"
|
||||
description = "D-Bus is a simple system for interprocess communication and coordination."
|
||||
topics = "bus", "interprocess", "message"
|
||||
package_type = "library"
|
||||
settings = "os", "arch", "compiler", "build_type"
|
||||
short_paths = True
|
||||
options = {
|
||||
"shared": [True, False],
|
||||
"fPIC": [True, False],
|
||||
"dbus_user": [None, "ANY"],
|
||||
"message_bus": [True, False],
|
||||
"system_socket": [None, "ANY"],
|
||||
"system_pid_file": [None, "ANY"],
|
||||
"with_x11": [True, False],
|
||||
"with_systemd": [True, False],
|
||||
"with_selinux": [True, False],
|
||||
"session_socket_dir": [None, "ANY"],
|
||||
}
|
||||
default_options = {
|
||||
"shared": False,
|
||||
"fPIC": True,
|
||||
"dbus_user": "messagebus",
|
||||
"message_bus": False,
|
||||
"system_socket": None,
|
||||
"system_pid_file": None,
|
||||
"with_x11": False,
|
||||
"with_systemd": False,
|
||||
"with_selinux": False,
|
||||
"session_socket_dir": "/tmp",
|
||||
}
|
||||
|
||||
@property
|
||||
def _has_message_bus_option(self):
|
||||
return Version(self.version) > "1.15.2"
|
||||
|
||||
def export_sources(self):
|
||||
export_conandata_patches(self)
|
||||
|
||||
def config_options(self):
|
||||
if self.settings.os not in ["Linux", "FreeBSD"]:
|
||||
del self.options.with_systemd
|
||||
del self.options.with_x11
|
||||
del self.options.with_selinux
|
||||
if self.settings.os == "Windows":
|
||||
del self.options.fPIC
|
||||
if not self._has_message_bus_option:
|
||||
self.options.rm_safe("message_bus")
|
||||
|
||||
def configure(self):
|
||||
self.settings.rm_safe("compiler.cppstd")
|
||||
self.settings.rm_safe("compiler.libcxx")
|
||||
if self.options.shared:
|
||||
self.options.rm_safe("fPIC")
|
||||
if not self.options.get_safe("message_bus"):
|
||||
self.options.rm_safe("dbus_user")
|
||||
|
||||
def layout(self):
|
||||
basic_layout(self, src_folder="src")
|
||||
|
||||
def requirements(self):
|
||||
self.requires("expat/[>=2.6.2 <3]")
|
||||
if self.options.get_safe("with_systemd"):
|
||||
self.requires("libsystemd/253.6")
|
||||
if self.options.get_safe("with_selinux"):
|
||||
self.requires("libselinux/3.6")
|
||||
if self.options.get_safe("with_x11"):
|
||||
# X11 is only linked into an executable and should not be propagated as a library dependency.
|
||||
# It should still be provided in a VirtualRunEnv context, though,
|
||||
# but Conan as of v2.2 does not yet provide a fine-grained enough control over this.
|
||||
self.requires("xorg/system", visible=False)
|
||||
|
||||
def package_id(self):
|
||||
# The dbus_user option only effects the installation of dbus during the package method.
|
||||
# Otherwise, it only appears in the system.conf file in the package.
|
||||
self.info.options.rm_safe("dbus_user")
|
||||
|
||||
def validate(self):
|
||||
if self.settings.compiler == "gcc" and Version(self.settings.compiler.version) < 7:
|
||||
raise ConanInvalidConfiguration(f"{self.ref} requires at least gcc 7.")
|
||||
|
||||
def build_requirements(self):
|
||||
self.tool_requires("meson/[>=1.4.0]")
|
||||
if not self.conf.get("tools.gnu:pkg_config",check_type=str):
|
||||
self.tool_requires("pkgconf/[>=2.1.0]")
|
||||
|
||||
def source(self):
|
||||
get(self, **self.conan_data["sources"][self.version], strip_root=True)
|
||||
|
||||
def generate(self):
|
||||
env = VirtualBuildEnv(self)
|
||||
env.generate()
|
||||
tc = MesonToolchain(self)
|
||||
tc.project_options["asserts"] = not is_apple_os(self)
|
||||
tc.project_options["checks"] = False
|
||||
tc.project_options["datadir"] = os.path.join("res", "share")
|
||||
tc.project_options["sysconfdir"] = os.path.join("res", "etc")
|
||||
tc.project_options["doxygen_docs"] = "disabled"
|
||||
tc.project_options["ducktype_docs"] = "disabled"
|
||||
tc.project_options["qt_help"] = "disabled"
|
||||
tc.project_options["modular_tests"] = "disabled"
|
||||
tc.project_options["selinux"] = "enabled" if self.options.get_safe("with_selinux") else "disabled"
|
||||
if self.options.session_socket_dir:
|
||||
tc.project_options["session_socket_dir"] = str(self.options.session_socket_dir)
|
||||
tc.project_options["systemd"] = "enabled" if self.options.get_safe("with_systemd") else "disabled"
|
||||
if self.options.get_safe("with_systemd"):
|
||||
tc.project_options["systemd_system_unitdir"] = "/res/lib/systemd/system"
|
||||
tc.project_options["systemd_user_unitdir"] = "/res/usr/lib/systemd/system"
|
||||
if self._has_message_bus_option:
|
||||
tc.project_options["message_bus"] = bool(self.options.message_bus)
|
||||
if self.options.get_safe("dbus_user"):
|
||||
tc.project_options["dbus_user"] = str(self.options.dbus_user)
|
||||
if self.options.system_pid_file:
|
||||
tc.project_options["system_pid_file"] = str(self.options.system_pid_file)
|
||||
if self.options.system_socket:
|
||||
tc.project_options["system_socket"] = str(self.options.system_socket)
|
||||
if is_apple_os(self):
|
||||
tc.project_options["launchd_agent_dir"] = os.path.join("res", "LaunchAgents")
|
||||
tc.project_options["x11_autolaunch"] = "enabled" if self.options.get_safe("with_x11") else "disabled"
|
||||
tc.project_options["xml_docs"] = "disabled"
|
||||
tc.generate()
|
||||
deps = PkgConfigDeps(self)
|
||||
deps.generate()
|
||||
|
||||
def _patch_sources(self):
|
||||
apply_conandata_patches(self)
|
||||
replace_in_file(self, os.path.join(self.source_folder, "meson.build"),
|
||||
"subdir('test')", "# subdir('test')")
|
||||
|
||||
def build(self):
|
||||
self._patch_sources()
|
||||
meson = Meson(self)
|
||||
meson.configure()
|
||||
meson.build()
|
||||
|
||||
def package(self):
|
||||
copy(self, "COPYING", self.source_folder, os.path.join(self.package_folder, "licenses"))
|
||||
copy(self, "*", os.path.join(self.source_folder, "LICENSES"), os.path.join(self.package_folder, "licenses"))
|
||||
meson = Meson(self)
|
||||
meson.install()
|
||||
|
||||
rm(self, "*.pdb", os.path.join(self.package_folder, "bin"))
|
||||
rmdir(self, os.path.join(self.package_folder, "res", "share", "doc"))
|
||||
|
||||
rmdir(self, os.path.join(self.package_folder, "lib", "cmake"))
|
||||
rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
|
||||
fix_apple_shared_install_name(self)
|
||||
if self.settings.os == "Windows" and not self.options.shared:
|
||||
rename(self, os.path.join(self.package_folder, "lib", "libdbus-1.a"), os.path.join(self.package_folder, "lib", "dbus-1.lib"))
|
||||
|
||||
# TODO: to remove in conan v2 once cmake_find_package_* generators removed
|
||||
self._create_cmake_module_alias_targets(
|
||||
os.path.join(self.package_folder, self._module_file_rel_path),
|
||||
{"dbus-1": "dbus-1::dbus-1"}
|
||||
)
|
||||
|
||||
def _create_cmake_module_alias_targets(self, module_file, targets):
|
||||
content = ""
|
||||
for alias, aliased in targets.items():
|
||||
content += textwrap.dedent(f"""\
|
||||
if(TARGET {aliased} AND NOT TARGET {alias})
|
||||
add_library({alias} INTERFACE IMPORTED)
|
||||
set_property(TARGET {alias} PROPERTY INTERFACE_LINK_LIBRARIES {aliased})
|
||||
endif()
|
||||
""")
|
||||
save(self, module_file, content)
|
||||
|
||||
@property
|
||||
def _module_file_rel_path(self):
|
||||
return os.path.join("lib", "cmake", f"conan-official-{self.name}-targets.cmake")
|
||||
|
||||
def package_info(self):
|
||||
self.cpp_info.set_property("cmake_file_name", "DBus1")
|
||||
self.cpp_info.set_property("cmake_target_name", "dbus-1")
|
||||
self.cpp_info.set_property("pkg_config_name", "dbus-1")
|
||||
self.cpp_info.includedirs.extend([
|
||||
os.path.join("include", "dbus-1.0"),
|
||||
os.path.join("lib", "dbus-1.0", "include"),
|
||||
])
|
||||
self.cpp_info.resdirs = ["res"]
|
||||
self.cpp_info.libs = ["dbus-1"]
|
||||
if self.settings.os == "Linux":
|
||||
self.cpp_info.system_libs.append("rt")
|
||||
if self.settings.os == "Windows":
|
||||
self.cpp_info.system_libs.extend(["iphlpapi", "ws2_32"])
|
||||
else:
|
||||
self.cpp_info.system_libs.append("pthread")
|
||||
|
||||
if not self.options.shared:
|
||||
self.cpp_info.defines.append("DBUS_STATIC_BUILD")
|
||||
|
||||
self.cpp_info.requires.append("expat::expat")
|
||||
if self.options.get_safe("with_systemd"):
|
||||
self.cpp_info.requires.append("libsystemd::libsystemd")
|
||||
if self.options.get_safe("with_selinux"):
|
||||
self.cpp_info.requires.append("libselinux::selinux")
|
||||
|
||||
# TODO: to remove in conan v2 once cmake_find_package_* & pkg_config generators removed
|
||||
self.cpp_info.filenames["cmake_find_package"] = "DBus1"
|
||||
self.cpp_info.filenames["cmake_find_package_multi"] = "DBus1"
|
||||
self.cpp_info.names["cmake_find_package"] = "dbus-1"
|
||||
self.cpp_info.names["cmake_find_package_multi"] = "dbus-1"
|
||||
self.cpp_info.build_modules["cmake_find_package"] = [self._module_file_rel_path]
|
||||
self.cpp_info.build_modules["cmake_find_package_multi"] = [self._module_file_rel_path]
|
||||
self.cpp_info.names["pkg_config"] = "dbus-1"
|
||||
@@ -0,0 +1,46 @@
|
||||
From e52ccaf7c3abf9d0adccfd001c1417ce08a7f335 Mon Sep 17 00:00:00 2001
|
||||
From: Thomas Sondergaard <Thomas.Sondergaard@mi.medical.canon>
|
||||
Date: Thu, 4 Jan 2024 17:45:46 +0100
|
||||
Subject: [PATCH] meson: Use check_header to confirm headers work
|
||||
|
||||
instead of using has_header use check_header to confirm the header
|
||||
works. This is necessary to get the meson build to work with Visual
|
||||
Studio 2022. It has <stdatomic.h> but it does not actually work when
|
||||
compiling a C program. A minimal C program that include <stdatomic.h>
|
||||
fails with the following errors:
|
||||
|
||||
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130\include\vcruntime_c11_stdatomic.h(36): error C2061: syntax error: identifier 'atomic_bool'
|
||||
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130\include\vcruntime_c11_stdatomic.h(36): error C2059: syntax error: ';'
|
||||
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130\include\vcruntime_c11_stdatomic.h(37): error C2061: syntax error: identifier 'atomic_char'
|
||||
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.38.33130\include\vcruntime_c11_stdatomic.h(37): error C2059: syntax error: ';'
|
||||
...
|
||||
...
|
||||
|
||||
check_header is consistent with CMake's
|
||||
|
||||
check_include_file(stdatomic.h HAVE_STDATOMIC_H)
|
||||
|
||||
which is why the CMake-based build of dbus works with Visual Studio
|
||||
2022, while the meson build doesn't.
|
||||
|
||||
Fixes #494
|
||||
---
|
||||
meson.build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 17b2a837..19b41cd9 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -705,7 +705,7 @@ check_headers = [
|
||||
|
||||
foreach header : check_headers
|
||||
macro = 'HAVE_' + header.underscorify().to_upper()
|
||||
- config.set(macro, cc.has_header(header, args: compile_args_c) ? 1 : false)
|
||||
+ config.set(macro, cc.check_header(header, args: compile_args_c) ? 1 : false)
|
||||
endforeach
|
||||
|
||||
execinfo = cc.find_library('execinfo', required: false)
|
||||
--
|
||||
2.43.0.windows.1
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 3b5b182c..4e400a52 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -328,7 +328,9 @@ data_config.set('top_builddir', meson.project_build_root())
|
||||
threads = dependency('threads')
|
||||
config.set(
|
||||
'HAVE_MONOTONIC_CLOCK',
|
||||
- cc.has_header_symbol('pthread.h', 'CLOCK_MONOTONIC', args: compile_args_c),
|
||||
+ cc.has_header_symbol('pthread.h', 'CLOCK_MONOTONIC', args: compile_args_c)
|
||||
+ and cc.has_header_symbol('pthread.h', 'pthread_condattr_setclock', args: compile_args_c)
|
||||
+ and cc.has_header_symbol('time.h', 'clock_getres', args: compile_args_c),
|
||||
)
|
||||
|
||||
glib = dependency(
|
||||
7
recipes/dbus/all/test_package/CMakeLists.txt
Normal file
7
recipes/dbus/all/test_package/CMakeLists.txt
Normal file
@@ -0,0 +1,7 @@
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
project(test_package LANGUAGES C)
|
||||
|
||||
find_package(DBus1 REQUIRED CONFIG)
|
||||
|
||||
add_executable(${PROJECT_NAME} test_package.c)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE dbus-1)
|
||||
27
recipes/dbus/all/test_package/conanfile.py
Normal file
27
recipes/dbus/all/test_package/conanfile.py
Normal file
@@ -0,0 +1,27 @@
|
||||
from conan import ConanFile
|
||||
from conan.tools.build import can_run
|
||||
from conan.tools.cmake import CMake, cmake_layout
|
||||
import os
|
||||
|
||||
|
||||
class TestPackageConan(ConanFile):
|
||||
settings = "os", "arch", "compiler", "build_type"
|
||||
generators = "CMakeToolchain", "CMakeDeps", "VirtualRunEnv"
|
||||
test_type = "explicit"
|
||||
|
||||
def layout(self):
|
||||
cmake_layout(self)
|
||||
|
||||
def requirements(self):
|
||||
self.requires(self.tested_reference_str, run=True)
|
||||
|
||||
def build(self):
|
||||
cmake = CMake(self)
|
||||
cmake.configure()
|
||||
cmake.build()
|
||||
|
||||
def test(self):
|
||||
if can_run(self):
|
||||
self.run("dbus-monitor --help", env="conanrun")
|
||||
bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package")
|
||||
self.run(bin_path, env="conanrun")
|
||||
13
recipes/dbus/all/test_package/test_package.c
Normal file
13
recipes/dbus/all/test_package/test_package.c
Normal file
@@ -0,0 +1,13 @@
|
||||
#include <stdio.h>
|
||||
#include <dbus/dbus.h>
|
||||
|
||||
int main() {
|
||||
int major_version = 0;
|
||||
int minor_version = 0;
|
||||
int micro_version = 0;
|
||||
|
||||
dbus_get_version(&major_version, &minor_version, µ_version);
|
||||
|
||||
printf("D-Bus version: v%i.%i.%i\n", major_version, minor_version, micro_version);
|
||||
return 0;
|
||||
}
|
||||
9
recipes/dbus/config.yml
Normal file
9
recipes/dbus/config.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
versions:
|
||||
"1.15.8":
|
||||
folder: all
|
||||
"1.15.6":
|
||||
folder: all
|
||||
"1.15.2":
|
||||
folder: all
|
||||
"1.15.0":
|
||||
folder: all
|
||||
@@ -26,7 +26,7 @@ class MesonConan(ConanFile):
|
||||
# if self.conf.get("tools.meson.mesontoolchain:backend", default="ninja", check_type=str) == "ninja":
|
||||
# # Meson requires >=1.8.2 as of 1.5
|
||||
# # https://github.com/mesonbuild/meson/blob/b6b634ad33e5ca9ad4a9d6139dba4244847cc0e8/mesonbuild/backend/ninjabackend.py#L625
|
||||
# self.requires("ninja/[>=1.10.2 <2]")
|
||||
# self.requires("ninja/[>=1.10.2 <2]")
|
||||
|
||||
def package_id(self):
|
||||
self.info.clear()
|
||||
|
||||
@@ -502,7 +502,7 @@ class QtConan(ConanFile):
|
||||
|
||||
def source(self):
|
||||
get(self, **self.conan_data["sources"][self.version],
|
||||
strip_root=True, destination="qt5")
|
||||
strip_root=True, destination="qt5")
|
||||
|
||||
apply_conandata_patches(self)
|
||||
for f in ["renderer", os.path.join("renderer", "core"), os.path.join("renderer", "platform")]:
|
||||
@@ -902,8 +902,8 @@ Prefix = ..""")
|
||||
if not self.options.get_safe(module):
|
||||
rmdir(self, os.path.join(self.package_folder, "licenses", module))
|
||||
rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig"))
|
||||
for mask in ["Find*.cmake", "*Config.cmake", "*-config.cmake"]:
|
||||
rm(self, mask, self.package_folder, recursive=True)
|
||||
#for mask in ["Find*.cmake", "*Config.cmake", "*-config.cmake"]:
|
||||
# rm(self, mask, self.package_folder, recursive=True)
|
||||
rm(self, "*.la*", os.path.join(self.package_folder, "lib"), recursive=True)
|
||||
rm(self, "*.pdb*", os.path.join(self.package_folder, "lib"), recursive=True)
|
||||
rm(self, "*.pdb", os.path.join(self.package_folder, "bin"), recursive=True)
|
||||
@@ -913,103 +913,14 @@ Prefix = ..""")
|
||||
for fl in glob.glob(os.path.join(self.package_folder, "lib", "*Qt5Bootstrap*")):
|
||||
os.remove(fl)
|
||||
|
||||
for m in os.listdir(os.path.join(self.package_folder, "lib", "cmake")):
|
||||
module = os.path.join(self.package_folder, "lib", "cmake", m, f"{m}Macros.cmake")
|
||||
if not os.path.isfile(module):
|
||||
rmdir(self, os.path.join(self.package_folder, "lib", "cmake", m))
|
||||
#for m in os.listdir(os.path.join(self.package_folder, "lib", "cmake")):
|
||||
# module = os.path.join(self.package_folder, "lib", "cmake", m, f"{m}Macros.cmake")
|
||||
# if not os.path.isfile(module):
|
||||
# rmdir(self, os.path.join(self.package_folder, "lib", "cmake", m))
|
||||
|
||||
extension = ""
|
||||
if self._settings_build.os == "Windows":
|
||||
extension = ".exe"
|
||||
v = Version(self.version)
|
||||
filecontents = textwrap.dedent(f"""\
|
||||
set(QT_CMAKE_EXPORT_NAMESPACE Qt5)
|
||||
set(QT_VERSION_MAJOR {v.major})
|
||||
set(QT_VERSION_MINOR {v.minor})
|
||||
set(QT_VERSION_PATCH {v.patch})
|
||||
""")
|
||||
targets = {}
|
||||
targets["Core"] = ["moc", "rcc", "qmake"]
|
||||
targets["DBus"] = ["qdbuscpp2xml", "qdbusxml2cpp"]
|
||||
if self.options.widgets:
|
||||
targets["Widgets"] = ["uic"]
|
||||
if self.options.qttools:
|
||||
targets["Tools"] = ["qhelpgenerator", "qcollectiongenerator", "qdoc", "qtattributionsscanner"]
|
||||
targets[""] = ["lconvert", "lrelease", "lupdate"]
|
||||
if self.options.qtremoteobjects:
|
||||
targets["RemoteObjects"] = ["repc"]
|
||||
if self.options.qtscxml:
|
||||
targets["Scxml"] = ["qscxmlc"]
|
||||
for namespace, targets in targets.items():
|
||||
for target in targets:
|
||||
filecontents += textwrap.dedent("""\
|
||||
if(NOT TARGET ${{QT_CMAKE_EXPORT_NAMESPACE}}::{target})
|
||||
add_executable(${{QT_CMAKE_EXPORT_NAMESPACE}}::{target} IMPORTED)
|
||||
set_target_properties(${{QT_CMAKE_EXPORT_NAMESPACE}}::{target} PROPERTIES IMPORTED_LOCATION ${{CMAKE_CURRENT_LIST_DIR}}/../../../bin/{target}{ext})
|
||||
set(Qt5{namespace}_{uppercase_target}_EXECUTABLE ${{QT_CMAKE_EXPORT_NAMESPACE}}::{target})
|
||||
endif()
|
||||
""".format(target=target, ext=extension, namespace=namespace, uppercase_target=target.upper()))
|
||||
|
||||
if self.settings.os == "Windows":
|
||||
filecontents += textwrap.dedent("""\
|
||||
set(Qt5Core_QTMAIN_LIBRARIES Qt5::WinMain)
|
||||
if (NOT Qt5_NO_LINK_QTMAIN)
|
||||
set(_isExe $<STREQUAL:$<TARGET_PROPERTY:TYPE>,EXECUTABLE>)
|
||||
set(_isWin32 $<BOOL:$<TARGET_PROPERTY:WIN32_EXECUTABLE>>)
|
||||
set(_isNotExcluded $<NOT:$<BOOL:$<TARGET_PROPERTY:Qt5_NO_LINK_QTMAIN>>>)
|
||||
set(_isPolicyNEW $<TARGET_POLICY:CMP0020>)
|
||||
set_property(TARGET Qt5::Core APPEND PROPERTY
|
||||
INTERFACE_LINK_LIBRARIES
|
||||
$<$<AND:${_isExe},${_isWin32},${_isNotExcluded},${_isPolicyNEW}>:Qt5::WinMain>
|
||||
)
|
||||
unset(_isExe)
|
||||
unset(_isWin32)
|
||||
unset(_isNotExcluded)
|
||||
unset(_isPolicyNEW)
|
||||
endif()
|
||||
""")
|
||||
|
||||
filecontents += textwrap.dedent(f"""\
|
||||
if(NOT DEFINED QT_DEFAULT_MAJOR_VERSION)
|
||||
set(QT_DEFAULT_MAJOR_VERSION {v.major})
|
||||
endif()
|
||||
""")
|
||||
filecontents += 'set(CMAKE_AUTOMOC_MACRO_NAMES "Q_OBJECT" "Q_GADGET" "Q_GADGET_EXPORT" "Q_NAMESPACE" "Q_NAMESPACE_EXPORT")\n'
|
||||
save(self, os.path.join(self.package_folder, self._cmake_core_extras_file), filecontents)
|
||||
|
||||
def _create_private_module(module, dependencies=[]):
|
||||
if "Core" not in dependencies:
|
||||
dependencies.append("Core")
|
||||
dependencies_string = ';'.join(f'Qt5::{dependency}' for dependency in dependencies)
|
||||
contents = textwrap.dedent("""\
|
||||
if(NOT TARGET Qt5::{0}Private)
|
||||
add_library(Qt5::{0}Private INTERFACE IMPORTED)
|
||||
set_target_properties(Qt5::{0}Private PROPERTIES
|
||||
INTERFACE_INCLUDE_DIRECTORIES "${{CMAKE_CURRENT_LIST_DIR}}/../../../include/Qt{0}/{1};${{CMAKE_CURRENT_LIST_DIR}}/../../../include/Qt{0}/{1}/Qt{0}"
|
||||
INTERFACE_LINK_LIBRARIES "{2}"
|
||||
)
|
||||
|
||||
add_library(Qt::{0}Private INTERFACE IMPORTED)
|
||||
set_target_properties(Qt::{0}Private PROPERTIES
|
||||
INTERFACE_LINK_LIBRARIES "Qt5::{0}Private"
|
||||
_qt_is_versionless_target "TRUE"
|
||||
)
|
||||
endif()""".format(module, self.version, dependencies_string))
|
||||
|
||||
save(self, os.path.join(self.package_folder, self._cmake_qt5_private_file(module)), contents)
|
||||
|
||||
_create_private_module("Core")
|
||||
|
||||
if self.options.gui:
|
||||
_create_private_module("Gui", ["CorePrivate", "Gui"])
|
||||
|
||||
if self.options.widgets:
|
||||
_create_private_module("Widgets", ["CorePrivate", "Gui", "GuiPrivate"])
|
||||
|
||||
if self.options.qtdeclarative:
|
||||
_create_private_module("Qml", ["CorePrivate", "Qml"])
|
||||
if self.options.gui:
|
||||
_create_private_module("Quick", ["CorePrivate", "GuiPrivate", "QmlPrivate", "Quick"])
|
||||
|
||||
def package_info(self):
|
||||
self.cpp_info.set_property("cmake_file_name", "Qt5")
|
||||
@@ -1017,561 +928,86 @@ Prefix = ..""")
|
||||
|
||||
self.cpp_info.names["cmake_find_package"] = "Qt5"
|
||||
self.cpp_info.names["cmake_find_package_multi"] = "Qt5"
|
||||
self.cpp_info.builddirs = [os.path.join(self.package_folder, "lib", "cmake", "Qt5")]
|
||||
|
||||
build_modules = {}
|
||||
|
||||
def _add_build_module(component, module):
|
||||
if component not in build_modules:
|
||||
build_modules[component] = []
|
||||
build_modules[component].append(module)
|
||||
self.cpp_info.components[component].build_modules["cmake_find_package"].append(module)
|
||||
self.cpp_info.components[component].build_modules["cmake_find_package_multi"].append(module)
|
||||
|
||||
libsuffix = ""
|
||||
if self.settings.os == "Android":
|
||||
libsuffix = f"_{android_abi(self)}"
|
||||
if not self.options.multiconfiguration:
|
||||
if self.settings.build_type == "Debug":
|
||||
if self.settings.os == "Windows" and is_msvc(self):
|
||||
libsuffix = "d"
|
||||
elif is_apple_os(self):
|
||||
libsuffix = "_debug"
|
||||
|
||||
def _get_corrected_reqs(requires):
|
||||
reqs = []
|
||||
for r in requires:
|
||||
if "::" in r:
|
||||
corrected_req = r
|
||||
else:
|
||||
corrected_req = f"qt{r}"
|
||||
assert corrected_req in self.cpp_info.components, f"{corrected_req} required but not yet present in self.cpp_info.components"
|
||||
reqs.append(corrected_req)
|
||||
return reqs
|
||||
|
||||
def _create_module(module, requires=[], has_include_dir=True):
|
||||
componentname = f"qt{module}"
|
||||
assert componentname not in self.cpp_info.components, f"Module {module} already present in self.cpp_info.components"
|
||||
self.cpp_info.components[componentname].set_property("cmake_target_name", f"Qt5::{module}")
|
||||
self.cpp_info.components[componentname].set_property("pkg_config_name", f"Qt5{module}")
|
||||
self.cpp_info.components[componentname].names["cmake_find_package"] = module
|
||||
self.cpp_info.components[componentname].names["cmake_find_package_multi"] = module
|
||||
if module.endswith("Private"):
|
||||
libname = module[:-7]
|
||||
else:
|
||||
libname = module
|
||||
self.cpp_info.components[componentname].libs = [f"Qt5{libname}{libsuffix}"]
|
||||
if has_include_dir:
|
||||
self.cpp_info.components[componentname].includedirs = ["include", os.path.join("include", f"Qt{module}")]
|
||||
define = module.upper()
|
||||
if define == "TEST":
|
||||
define = "TESTLIB"
|
||||
elif define == "XCBQPA":
|
||||
define = "XCB_QPA_LIB"
|
||||
elif define.endswith("SUPPORT"):
|
||||
define = define.replace("SUPPORT", "_SUPPORT")
|
||||
self.cpp_info.components[componentname].defines = [f"QT_{define}_LIB"]
|
||||
if module != "Core" and "Core" not in requires:
|
||||
requires.append("Core")
|
||||
self.cpp_info.components[componentname].requires = _get_corrected_reqs(requires)
|
||||
|
||||
def _create_plugin(pluginname, libname, plugintype, requires):
|
||||
componentname = f"qt{pluginname}"
|
||||
assert componentname not in self.cpp_info.components, f"Plugin {pluginname} already present in self.cpp_info.components"
|
||||
self.cpp_info.components[componentname].set_property("cmake_target_name", f"Qt5::{pluginname}")
|
||||
self.cpp_info.components[componentname].names["cmake_find_package"] = pluginname
|
||||
self.cpp_info.components[componentname].names["cmake_find_package_multi"] = pluginname
|
||||
if not self.options.shared:
|
||||
self.cpp_info.components[componentname].libs = [libname + libsuffix]
|
||||
self.cpp_info.components[componentname].libdirs = [os.path.join("plugins", plugintype)]
|
||||
self.cpp_info.components[componentname].includedirs = []
|
||||
if "Core" not in requires:
|
||||
requires.append("Core")
|
||||
self.cpp_info.components[componentname].requires = _get_corrected_reqs(requires)
|
||||
|
||||
core_reqs = ["zlib::zlib"]
|
||||
self.cpp_info.requires = ["zlib::zlib"]
|
||||
if self.options.with_pcre2:
|
||||
core_reqs.append("pcre2::pcre2")
|
||||
self.cpp_info.requires.append("pcre2::pcre2")
|
||||
if self.options.with_doubleconversion:
|
||||
core_reqs.append("double-conversion::double-conversion")
|
||||
self.cpp_info.requires.append("double-conversion::double-conversion")
|
||||
if self.options.get_safe("with_icu", False):
|
||||
core_reqs.append("icu::icu")
|
||||
self.cpp_info.requires.append("icu::icu")
|
||||
if self.options.with_zstd:
|
||||
core_reqs.append("zstd::zstd")
|
||||
self.cpp_info.requires.append("zstd::zstd")
|
||||
if self.options.with_glib:
|
||||
core_reqs.append("glib::glib-2.0")
|
||||
|
||||
_create_module("Core", core_reqs)
|
||||
pkg_config_vars = [
|
||||
"host_bins=${prefix}/bin",
|
||||
"exec_prefix=${prefix}",
|
||||
]
|
||||
self.cpp_info.components["qtCore"].set_property("pkg_config_custom_content", "\n".join(pkg_config_vars))
|
||||
|
||||
if self.settings.os == "Windows":
|
||||
module = "WinMain"
|
||||
componentname = f"qt{module}"
|
||||
self.cpp_info.components[componentname].set_property("cmake_target_name", f"Qt5::{module}")
|
||||
self.cpp_info.components[componentname].names["cmake_find_package"] = module
|
||||
self.cpp_info.components[componentname].names["cmake_find_package_multi"] = module
|
||||
self.cpp_info.components[componentname].libs = [f"qtmain{libsuffix}"]
|
||||
self.cpp_info.components[componentname].includedirs = []
|
||||
self.cpp_info.components[componentname].defines = []
|
||||
|
||||
self.cpp_info.requires.append("glib::glib-2.0")
|
||||
if self.options.with_dbus:
|
||||
_create_module("DBus", ["dbus::dbus"])
|
||||
self.cpp_info.requires.append("dbus::dbus")
|
||||
if self.options.gui:
|
||||
gui_reqs = []
|
||||
if self.options.with_dbus:
|
||||
gui_reqs.append("DBus")
|
||||
if self.options.with_freetype:
|
||||
gui_reqs.append("freetype::freetype")
|
||||
self.cpp_info.requires.append("freetype::freetype")
|
||||
if self.options.with_libpng:
|
||||
gui_reqs.append("libpng::libpng")
|
||||
self.cpp_info.requires.append("libpng::libpng")
|
||||
if self.options.get_safe("with_fontconfig", False):
|
||||
gui_reqs.append("fontconfig::fontconfig")
|
||||
self.cpp_info.requires.append("fontconfig::fontconfig")
|
||||
if self.settings.os in ["Linux", "FreeBSD"]:
|
||||
if self.options.qtwayland or self.options.get_safe("with_x11", False):
|
||||
gui_reqs.append("xkbcommon::xkbcommon")
|
||||
self.cpp_info.requires.append("xkbcommon::xkbcommon")
|
||||
if self.options.get_safe("with_x11", False):
|
||||
gui_reqs.append("xorg::xorg")
|
||||
self.cpp_info.requires.append("xorg::xorg")
|
||||
if self.options.get_safe("opengl", "no") != "no":
|
||||
gui_reqs.append("opengl::opengl")
|
||||
self.cpp_info.requires.append("opengl::opengl")
|
||||
if self.options.get_safe("with_vulkan", False):
|
||||
gui_reqs.append("vulkan-loader::vulkan-loader")
|
||||
self.cpp_info.requires.append("vulkan-loader::vulkan-loader")
|
||||
if is_apple_os(self):
|
||||
gui_reqs.append("moltenvk::moltenvk")
|
||||
self.cpp_info.requires.append("moltenvk::moltenvk")
|
||||
if self.options.with_harfbuzz:
|
||||
gui_reqs.append("harfbuzz::harfbuzz")
|
||||
self.cpp_info.requires.append("harfbuzz::harfbuzz")
|
||||
if self.options.with_libjpeg == "libjpeg-turbo":
|
||||
gui_reqs.append("libjpeg-turbo::libjpeg-turbo")
|
||||
self.cpp_info.requires.append("libjpeg-turbo::libjpeg-turbo")
|
||||
if self.options.with_libjpeg == "libjpeg":
|
||||
gui_reqs.append("libjpeg::libjpeg")
|
||||
self.cpp_info.requires.append("libjpeg::libjpeg")
|
||||
if self.options.with_md4c:
|
||||
gui_reqs.append("md4c::md4c")
|
||||
_create_module("Gui", gui_reqs)
|
||||
_add_build_module("qtGui", self._cmake_qt5_private_file("Gui"))
|
||||
|
||||
event_dispatcher_reqs = ["Core", "Gui"]
|
||||
self.cpp_info.requires.append("md4c::md4c")
|
||||
if self.options.with_glib:
|
||||
event_dispatcher_reqs.append("glib::glib")
|
||||
_create_module("EventDispatcherSupport", event_dispatcher_reqs)
|
||||
_create_module("FontDatabaseSupport", ["Core", "Gui"])
|
||||
if self.settings.os == "Windows":
|
||||
self.cpp_info.components["qtFontDatabaseSupport"].system_libs.extend(["advapi32", "ole32", "user32", "gdi32"])
|
||||
elif is_apple_os(self):
|
||||
self.cpp_info.components["qtFontDatabaseSupport"].frameworks.extend(["CoreFoundation", "CoreGraphics", "CoreText","Foundation"])
|
||||
self.cpp_info.components["qtFontDatabaseSupport"].frameworks.append("AppKit" if self.settings.os == "Macos" else "UIKit")
|
||||
self.cpp_info.requires.append("glib::glib")
|
||||
if self.options.get_safe("with_fontconfig"):
|
||||
self.cpp_info.components["qtFontDatabaseSupport"].requires.append("fontconfig::fontconfig")
|
||||
self.cpp_info.requires.append("fontconfig::fontconfig")
|
||||
if self.options.get_safe("with_freetype"):
|
||||
self.cpp_info.components["qtFontDatabaseSupport"].requires.append("freetype::freetype")
|
||||
|
||||
|
||||
_create_module("ThemeSupport", ["Core", "Gui"])
|
||||
_create_module("AccessibilitySupport", ["Core", "Gui"])
|
||||
if self.options.get_safe("with_vulkan"):
|
||||
_create_module("VulkanSupport", ["Core", "Gui"])
|
||||
|
||||
if self.options.widgets:
|
||||
_create_module("Widgets", ["Gui"])
|
||||
_add_build_module("qtWidgets", self._cmake_qt5_private_file("Widgets"))
|
||||
if self.settings.os not in ["iOS", "watchOS", "tvOS"]:
|
||||
_create_module("PrintSupport", ["Gui", "Widgets"])
|
||||
if self.settings.os == "Macos" and not self.options.shared:
|
||||
self.cpp_info.components["qtPrintSupport"].system_libs.append("cups")
|
||||
|
||||
if is_apple_os(self):
|
||||
_create_module("ClipboardSupport", ["Core", "Gui"])
|
||||
self.cpp_info.components["qtClipboardSupport"].frameworks = ["ImageIO"]
|
||||
if self.settings.os == "Macos":
|
||||
self.cpp_info.components["qtClipboardSupport"].frameworks.append("AppKit")
|
||||
_create_module("GraphicsSupport", ["Core", "Gui"])
|
||||
|
||||
if self.settings.os in ["Android", "Emscripten"]:
|
||||
_create_module("EglSupport", ["Core", "Gui"])
|
||||
|
||||
if self.settings.os == "Windows":
|
||||
windows_reqs = ["Core", "Gui"]
|
||||
windows_reqs.extend(["EventDispatcherSupport", "FontDatabaseSupport", "ThemeSupport", "AccessibilitySupport"])
|
||||
_create_module("WindowsUIAutomationSupport", ["Core", "Gui"])
|
||||
windows_reqs.append("WindowsUIAutomationSupport")
|
||||
if self.options.get_safe("with_vulkan"):
|
||||
windows_reqs.append("VulkanSupport")
|
||||
_create_plugin("QWindowsIntegrationPlugin", "qwindows", "platforms", windows_reqs)
|
||||
_create_plugin("QWindowsVistaStylePlugin", "qwindowsvistastyle", "styles", windows_reqs)
|
||||
self.cpp_info.components["qtQWindowsIntegrationPlugin"].system_libs = ["advapi32", "dwmapi", "gdi32", "imm32",
|
||||
"ole32", "oleaut32", "shell32", "shlwapi", "user32", "winmm", "winspool", "wtsapi32"]
|
||||
elif self.settings.os == "Android":
|
||||
android_reqs = ["Core", "Gui", "EventDispatcherSupport", "AccessibilitySupport", "FontDatabaseSupport", "EglSupport"]
|
||||
if self.options.get_safe("with_vulkan"):
|
||||
android_reqs.append("VulkanSupport")
|
||||
_create_plugin("QAndroidIntegrationPlugin", "qtforandroid", "platforms", android_reqs)
|
||||
self.cpp_info.components["qtQAndroidIntegrationPlugin"].system_libs = ["android", "jnigraphics"]
|
||||
elif self.settings.os == "Macos":
|
||||
cocoa_reqs = ["Core", "Gui", "ClipboardSupport", "ThemeSupport", "FontDatabaseSupport", "GraphicsSupport", "AccessibilitySupport"]
|
||||
if self.options.get_safe("with_vulkan"):
|
||||
cocoa_reqs.append("VulkanSupport")
|
||||
if self.options.widgets:
|
||||
cocoa_reqs.append("PrintSupport")
|
||||
_create_plugin("QCocoaIntegrationPlugin", "qcocoa", "platforms", cocoa_reqs)
|
||||
_create_plugin("QMacStylePlugin", "qmacstyle", "styles", cocoa_reqs)
|
||||
self.cpp_info.components["QCocoaIntegrationPlugin"].frameworks = ["AppKit", "Carbon", "CoreServices", "CoreVideo",
|
||||
"IOKit", "IOSurface", "Metal", "QuartzCore"]
|
||||
elif self.settings.os in ["iOS", "tvOS"]:
|
||||
_create_plugin("QIOSIntegrationPlugin", "qios", "platforms", ["ClipboardSupport", "FontDatabaseSupport", "GraphicsSupport"])
|
||||
self.cpp_info.components["QIOSIntegrationPlugin"].frameworks = ["AudioToolbox", "Foundation", "Metal",
|
||||
"MobileCoreServices", "OpenGLES", "QuartzCore", "UIKit"]
|
||||
elif self.settings.os == "watchOS":
|
||||
_create_plugin("QMinimalIntegrationPlugin", "qminimal", "platforms", ["EventDispatcherSupport", "FontDatabaseSupport"])
|
||||
elif self.settings.os == "Emscripten":
|
||||
_create_plugin("QWasmIntegrationPlugin", "qwasm", "platforms", ["Core", "Gui", "EventDispatcherSupport", "FontDatabaseSupport", "EglSupport"])
|
||||
elif self.settings.os in ["Linux", "FreeBSD"]:
|
||||
service_support_reqs = ["Core", "Gui"]
|
||||
if self.options.with_dbus:
|
||||
service_support_reqs.append("DBus")
|
||||
_create_module("ServiceSupport", service_support_reqs)
|
||||
_create_module("EdidSupport")
|
||||
self.cpp_info.requires.append("freetype::freetype")
|
||||
if self.settings.os in ["Linux", "FreeBSD"]:
|
||||
self.cpp_info.requires.append("xkbcommon::libxkbcommon-x11")
|
||||
if self.options.get_safe("with_x11", False):
|
||||
_create_module("XkbCommonSupport", ["Core", "Gui", "xkbcommon::libxkbcommon-x11"])
|
||||
xcb_qpa_reqs = ["Core", "Gui", "ServiceSupport", "ThemeSupport", "FontDatabaseSupport", "EdidSupport", "XkbCommonSupport", "xorg::xorg"]
|
||||
elif self.options.qtwayland:
|
||||
_create_module("XkbCommonSupport", ["Core", "Gui", "xkbcommon::libxkbcommon"])
|
||||
self.cpp_info.requires.append("xorg::xorg")
|
||||
if self.options.with_dbus and self.options.with_atspi:
|
||||
_create_module("LinuxAccessibilitySupport", ["Core", "DBus", "Gui", "AccessibilitySupport", "at-spi2-core::at-spi2-core"])
|
||||
xcb_qpa_reqs.append("LinuxAccessibilitySupport")
|
||||
if self.options.get_safe("with_vulkan"):
|
||||
xcb_qpa_reqs.append("VulkanSupport")
|
||||
if self.options.get_safe("with_x11", False):
|
||||
_create_module("XcbQpa", xcb_qpa_reqs, has_include_dir=False)
|
||||
_create_plugin("QXcbIntegrationPlugin", "qxcb", "platforms", ["Core", "Gui", "XcbQpa"])
|
||||
|
||||
self.cpp_info.requires.append("at-spi2-core::at-spi2-core")
|
||||
if self.options.with_sqlite3:
|
||||
_create_plugin("QSQLiteDriverPlugin", "qsqlite", "sqldrivers", ["sqlite3::sqlite3"])
|
||||
self.cpp_info.requires.append("sqlite3::sqlite3")
|
||||
if self.options.with_pq:
|
||||
_create_plugin("QPSQLDriverPlugin", "qsqlpsql", "sqldrivers", ["libpq::libpq"])
|
||||
self.cpp_info.requires.append("libpq::libpq")
|
||||
if self.options.get_safe("with_mysql", False):
|
||||
_create_plugin("QMySQLDriverPlugin", "qsqlmysql", "sqldrivers", ["libmysqlclient::libmysqlclient"])
|
||||
self.cpp_info.requires.append("libmysqlclient::libmysqlclient")
|
||||
if self.options.with_odbc:
|
||||
if self.settings.os != "Windows":
|
||||
_create_plugin("QODBCDriverPlugin", "qsqlodbc", "sqldrivers", ["odbc::odbc"])
|
||||
networkReqs = []
|
||||
self.cpp_info.requires.append("odbc::odbc")
|
||||
if self.options.openssl:
|
||||
networkReqs.append("openssl::openssl")
|
||||
self.cpp_info.requires.append("openssl::openssl")
|
||||
if self.settings.os in ['Linux', 'FreeBSD'] and self.options.with_gssapi:
|
||||
networkReqs.append("krb5::krb5-gssapi")
|
||||
_create_module("Network", networkReqs)
|
||||
_create_module("Sql")
|
||||
_create_module("Test")
|
||||
if self.options.get_safe("opengl", "no") != "no" and self.options.gui:
|
||||
_create_module("OpenGL", ["Gui"])
|
||||
if self.options.widgets and self.options.get_safe("opengl", "no") != "no":
|
||||
_create_module("OpenGLExtensions", ["Gui"])
|
||||
_create_module("Concurrent")
|
||||
_create_module("Xml")
|
||||
|
||||
if self.options.qtdeclarative:
|
||||
_create_module("Qml", ["Network"])
|
||||
_add_build_module("qtQml", self._cmake_qt5_private_file("Qml"))
|
||||
_create_module("QmlModels", ["Qml"])
|
||||
self.cpp_info.components["qtQmlImportScanner"].set_property("cmake_target_name", "Qt5::QmlImportScanner")
|
||||
self.cpp_info.components["qtQmlImportScanner"].names["cmake_find_package"] = "QmlImportScanner" # this is an alias for Qml and there to integrate with existing consumers
|
||||
self.cpp_info.components["qtQmlImportScanner"].names["cmake_find_package_multi"] = "QmlImportScanner"
|
||||
self.cpp_info.components["qtQmlImportScanner"].requires = _get_corrected_reqs(["Qml"])
|
||||
if self.options.gui:
|
||||
_create_module("Quick", ["Gui", "Qml", "QmlModels"])
|
||||
_add_build_module("qtQuick", self._cmake_qt5_private_file("Quick"))
|
||||
if self.options.widgets:
|
||||
_create_module("QuickWidgets", ["Gui", "Qml", "Quick", "Widgets"])
|
||||
_create_module("QuickShapes", ["Gui", "Qml", "Quick"])
|
||||
_create_module("QmlWorkerScript", ["Qml"])
|
||||
_create_module("QuickTest", ["Test"])
|
||||
|
||||
if self.options.qttools and self.options.gui and self.options.widgets:
|
||||
self.cpp_info.components["qtLinguistTools"].set_property("cmake_target_name", "Qt5::LinguistTools")
|
||||
self.cpp_info.components["qtLinguistTools"].names["cmake_find_package"] = "LinguistTools"
|
||||
self.cpp_info.components["qtLinguistTools"].names["cmake_find_package_multi"] = "LinguistTools"
|
||||
_create_module("UiPlugin", ["Gui", "Widgets"])
|
||||
self.cpp_info.components["qtUiPlugin"].libs = [] # this is a collection of abstract classes, so this is header-only
|
||||
self.cpp_info.components["qtUiPlugin"].libdirs = []
|
||||
_create_module("UiTools", ["UiPlugin", "Gui", "Widgets"])
|
||||
if not cross_building(self):
|
||||
_create_module("Designer", ["Gui", "UiPlugin", "Widgets", "Xml"])
|
||||
_create_module("Help", ["Gui", "Sql", "Widgets"])
|
||||
|
||||
if self.options.qtquick3d and self.options.gui:
|
||||
_create_module("Quick3DUtils", ["Gui"])
|
||||
_create_module("Quick3DRender", ["Quick3DUtils", "Quick"])
|
||||
_create_module("Quick3DAssetImport", ["Gui", "Qml", "Quick3DRender", "Quick3DUtils"])
|
||||
_create_module("Quick3DRuntimeRender", ["Quick3DRender", "Quick3DAssetImport", "Quick3DUtils"])
|
||||
_create_module("Quick3D", ["Gui", "Qml", "Quick", "Quick3DRuntimeRender"])
|
||||
|
||||
if self.options.qtquickcontrols2 and self.options.gui:
|
||||
_create_module("QuickControls2", ["Gui", "Quick"])
|
||||
_create_module("QuickTemplates2", ["Gui", "Quick"])
|
||||
|
||||
if self.options.qtsvg and self.options.gui:
|
||||
_create_module("Svg", ["Gui"])
|
||||
_create_plugin("QSvgIconPlugin", "qsvgicon", "iconengines", [])
|
||||
_create_plugin("QSvgPlugin", "qsvg", "imageformats", [])
|
||||
|
||||
if self.options.qtwayland and self.options.gui:
|
||||
_create_module("WaylandClient", ["Gui", "wayland::wayland-client"])
|
||||
_create_module("WaylandCompositor", ["Gui", "wayland::wayland-server"])
|
||||
|
||||
if self.options.qtlocation:
|
||||
_create_module("Positioning")
|
||||
_create_module("Location", ["Gui", "Quick"])
|
||||
_create_plugin("QGeoServiceProviderFactoryMapbox", "qtgeoservices_mapbox", "geoservices", [])
|
||||
_create_plugin("QGeoServiceProviderFactoryMapboxGL", "qtgeoservices_mapboxgl", "geoservices", [])
|
||||
_create_plugin("GeoServiceProviderFactoryEsri", "qtgeoservices_esri", "geoservices", [])
|
||||
_create_plugin("QGeoServiceProviderFactoryItemsOverlay", "qtgeoservices_itemsoverlay", "geoservices", [])
|
||||
_create_plugin("QGeoServiceProviderFactoryNokia", "qtgeoservices_nokia", "geoservices", [])
|
||||
_create_plugin("QGeoServiceProviderFactoryOsm", "qtgeoservices_osm", "geoservices", [])
|
||||
_create_plugin("QGeoPositionInfoSourceFactoryGeoclue", "qtposition_geoclue", "position", [])
|
||||
_create_plugin("QGeoPositionInfoSourceFactoryGeoclue2", "qtposition_geoclue2", "position", [])
|
||||
_create_plugin("QGeoPositionInfoSourceFactoryPoll", "qtposition_positionpoll", "position", [])
|
||||
_create_plugin("QGeoPositionInfoSourceFactorySerialNmea", "qtposition_serialnmea", "position", [])
|
||||
|
||||
if self.options.qtwebchannel:
|
||||
_create_module("WebChannel", ["Qml"])
|
||||
|
||||
if self.options.qtwebengine:
|
||||
webenginereqs = ["Gui", "Quick", "WebChannel", "Positioning"]
|
||||
if self.settings.os in ["Linux", "FreeBSD"]:
|
||||
webenginereqs.extend(["expat::expat", "opus::libopus", "xorg-proto::xorg-proto", "libxshmfence::libxshmfence", \
|
||||
"nss::nss", "libdrm::libdrm", "egl::egl"])
|
||||
_create_module("WebEngineCore", webenginereqs)
|
||||
if self.settings.os != "Windows":
|
||||
self.cpp_info.components["WebEngineCore"].system_libs.append("resolv")
|
||||
_create_module("WebEngine", ["WebEngineCore"])
|
||||
_create_module("WebEngineWidgets", ["WebEngineCore", "Quick", "PrintSupport", "Widgets", "Gui", "Network"])
|
||||
|
||||
if self.options.qtserialport:
|
||||
_create_module("SerialPort")
|
||||
|
||||
if self.options.qtserialbus:
|
||||
_create_module("SerialBus", ["SerialPort"] if self.options.get_safe("qtserialport") else [])
|
||||
_create_plugin("PassThruCanBusPlugin", "qtpassthrucanbus", "canbus", [])
|
||||
_create_plugin("PeakCanBusPlugin", "qtpeakcanbus", "canbus", [])
|
||||
_create_plugin("SocketCanBusPlugin", "qtsocketcanbus", "canbus", [])
|
||||
_create_plugin("TinyCanBusPlugin", "qttinycanbus", "canbus", [])
|
||||
_create_plugin("VirtualCanBusPlugin", "qtvirtualcanbus", "canbus", [])
|
||||
|
||||
if self.options.qtsensors:
|
||||
_create_module("Sensors")
|
||||
_create_plugin("genericSensorPlugin", "qtsensors_generic", "sensors", [])
|
||||
_create_plugin("IIOSensorProxySensorPlugin", "qtsensors_iio-sensor-proxy", "sensors", [])
|
||||
if self.settings.os == "Linux":
|
||||
_create_plugin("LinuxSensorPlugin", "qtsensors_linuxsys", "sensors", [])
|
||||
_create_plugin("QtSensorGesturePlugin", "qtsensorgestures_plugin", "sensorgestures", [])
|
||||
_create_plugin("QShakeSensorGesturePlugin", "qtsensorgestures_shakeplugin", "sensorgestures", [])
|
||||
|
||||
if self.options.qtscxml:
|
||||
_create_module("Scxml", ["Qml"])
|
||||
|
||||
if self.options.qtpurchasing:
|
||||
_create_module("Purchasing")
|
||||
|
||||
if self.options.qtcharts:
|
||||
_create_module("Charts", ["Gui", "Widgets"])
|
||||
|
||||
if self.options.qtgamepad:
|
||||
_create_module("Gamepad", ["Gui"])
|
||||
if self.settings.os == "Linux":
|
||||
_create_plugin("QEvdevGamepadBackendPlugin", "evdevgamepad", "gamepads", [])
|
||||
if self.settings.os == "Macos":
|
||||
_create_plugin("QDarwinGamepadBackendPlugin", "darwingamepad", "gamepads", [])
|
||||
if self.settings.os =="Windows":
|
||||
_create_plugin("QXInputGamepadBackendPlugin", "xinputgamepad", "gamepads", [])
|
||||
|
||||
if self.options.qt3d:
|
||||
_create_module("3DCore", ["Gui", "Network"])
|
||||
|
||||
_create_module("3DRender", ["3DCore"])
|
||||
_create_plugin("DefaultGeometryLoaderPlugin", "defaultgeometryloader", "geometryloaders", [])
|
||||
_create_plugin("GLTFGeometryLoaderPlugin", "gltfgeometryloader", "geometryloaders", [])
|
||||
_create_plugin("GLTFSceneExportPlugin", "gltfsceneexport", "sceneparsers", [])
|
||||
_create_plugin("GLTFSceneImportPlugin", "gltfsceneimport", "sceneparsers", [])
|
||||
_create_plugin("OpenGLRendererPlugin", "openglrenderer", "renderers", [])
|
||||
_create_plugin("Scene2DPlugin", "scene2d", "renderplugins", [])
|
||||
|
||||
_create_module("3DAnimation", ["3DRender", "3DCore", "Gui"])
|
||||
_create_module("3DInput", ["3DCore", "Gui"] + (["Gamepad"] if self.options.qtgamepad else []))
|
||||
_create_module("3DLogic", ["3DCore", "Gui"])
|
||||
_create_module("3DExtras", ["3DRender", "3DInput", "3DLogic", "3DCore", "Gui"])
|
||||
_create_module("3DQuick", ["3DCore", "Quick", "Gui", "Qml"])
|
||||
_create_module("3DQuickAnimation", ["3DAnimation", "3DRender", "3DQuick", "3DCore", "Gui", "Qml"])
|
||||
_create_module("3DQuickExtras", ["3DExtras", "3DInput", "3DQuick", "3DRender", "3DLogic", "3DCore", "Gui", "Qml"])
|
||||
_create_module("3DQuickInput", ["3DInput", "3DQuick", "3DCore", "Gui", "Qml"])
|
||||
_create_module("3DQuickRender", ["3DRender", "3DQuick", "3DCore", "Gui", "Qml"])
|
||||
_create_module("3DQuickScene2D", ["3DRender", "3DQuick", "3DCore", "Gui", "Qml"])
|
||||
|
||||
self.cpp_info.requires.append("krb5::krb5-gssapi")
|
||||
if self.options.qtmultimedia:
|
||||
multimedia_reqs = ["Network", "Gui"]
|
||||
if self.options.get_safe("with_libalsa", False):
|
||||
multimedia_reqs.append("libalsa::libalsa")
|
||||
self.cpp_info.requires.append("libalsa::libalsa")
|
||||
if self.options.with_openal:
|
||||
multimedia_reqs.append("openal-soft::openal-soft")
|
||||
self.cpp_info.requires.append("openal-soft::openal-soft")
|
||||
if self.options.get_safe("with_pulseaudio", False):
|
||||
multimedia_reqs.append("pulseaudio::pulse")
|
||||
_create_module("Multimedia", multimedia_reqs)
|
||||
_create_module("MultimediaWidgets", ["Multimedia", "Widgets", "Gui"])
|
||||
if self.options.qtdeclarative and self.options.gui:
|
||||
_create_module("MultimediaQuick", ["Multimedia", "Quick"])
|
||||
_create_plugin("QM3uPlaylistPlugin", "qtmultimedia_m3u", "playlistformats", [])
|
||||
if self.options.with_gstreamer:
|
||||
_create_module("MultimediaGstTools", ["Multimedia", "MultimediaWidgets", "Gui", "gst-plugins-base::gst-plugins-base"])
|
||||
_create_plugin("QGstreamerAudioDecoderServicePlugin", "gstaudiodecoder", "mediaservice", [])
|
||||
_create_plugin("QGstreamerCaptureServicePlugin", "gstmediacapture", "mediaservice", [])
|
||||
_create_plugin("QGstreamerPlayerServicePlugin", "gstmediaplayer", "mediaservice", [])
|
||||
if self.settings.os == "Linux":
|
||||
if self.options.with_gstreamer:
|
||||
_create_plugin("CameraBinServicePlugin", "gstcamerabin", "mediaservice", [])
|
||||
if self.options.get_safe("with_libalsa", False):
|
||||
_create_plugin("QAlsaPlugin", "qtaudio_alsa", "audio", [])
|
||||
if self.settings.os == "Windows":
|
||||
_create_plugin("AudioCaptureServicePlugin", "qtmedia_audioengine", "mediaservice", [])
|
||||
_create_plugin("DSServicePlugin", "dsengine", "mediaservice", [])
|
||||
_create_plugin("QWindowsAudioPlugin", "qtaudio_windows", "audio", [])
|
||||
if self.settings.os == "Macos":
|
||||
_create_plugin("AudioCaptureServicePlugin", "qtmedia_audioengine", "mediaservice", [])
|
||||
_create_plugin("AVFMediaPlayerServicePlugin", "qavfmediaplayer", "mediaservice", [])
|
||||
_create_plugin("AVFServicePlugin", "qavfcamera", "mediaservice", [])
|
||||
_create_plugin("CoreAudioPlugin", "qtaudio_coreaudio", "audio", [])
|
||||
|
||||
if self.options.qtwebsockets:
|
||||
_create_module("WebSockets", ["Network"])
|
||||
|
||||
if self.options.qtconnectivity:
|
||||
_create_module("Bluetooth", ["Network"])
|
||||
_create_module("Nfc", [])
|
||||
|
||||
if self.options.qtdatavis3d:
|
||||
_create_module("DataVisualization", ["Gui"])
|
||||
|
||||
if self.options.qtnetworkauth:
|
||||
_create_module("NetworkAuth", ["Network"])
|
||||
|
||||
if self.settings.os != "Windows":
|
||||
self.cpp_info.components["qtCore"].cxxflags.append("-fPIC")
|
||||
|
||||
if self.options.get_safe("qtx11extras"):
|
||||
_create_module("X11Extras")
|
||||
|
||||
if self.options.qtremoteobjects:
|
||||
_create_module("RemoteObjects")
|
||||
|
||||
if self.options.get_safe("qtwinextras"):
|
||||
_create_module("WinExtras")
|
||||
|
||||
if self.options.get_safe("qtmacextras"):
|
||||
_create_module("MacExtras")
|
||||
|
||||
if self.options.qtxmlpatterns:
|
||||
_create_module("XmlPatterns", ["Network"])
|
||||
|
||||
if self.options.get_safe("qtactiveqt"):
|
||||
_create_module("AxBase", ["Gui", "Widgets"])
|
||||
self.cpp_info.components["qtAxBase"].includedirs = ["include", os.path.join("include", "ActiveQt")]
|
||||
self.cpp_info.components["qtAxBase"].system_libs.extend(["ole32", "oleaut32", "user32", "gdi32", "advapi32"])
|
||||
if self.settings.compiler == "gcc":
|
||||
self.cpp_info.components["qtAxBase"].system_libs.append("uuid")
|
||||
_create_module("AxContainer", ["Core", "Gui", "Widgets", "AxBase"])
|
||||
self.cpp_info.components["qtAxContainer"].includedirs = [os.path.join("include", "ActiveQt")]
|
||||
_create_module("AxServer", ["Core", "Gui", "Widgets", "AxBase"])
|
||||
self.cpp_info.components["qtAxServer"].includedirs = [os.path.join("include", "ActiveQt")]
|
||||
self.cpp_info.components["qtAxServer"].system_libs.append("shell32")
|
||||
|
||||
if self.options.qtscript:
|
||||
_create_module("Script")
|
||||
if self.options.widgets:
|
||||
_create_module("ScriptTools", ["Gui", "Widgets", "Script"])
|
||||
|
||||
if self.options.qtandroidextras:
|
||||
_create_module("AndroidExtras")
|
||||
|
||||
if self.options.qtwebview:
|
||||
_create_module("WebView", ["Gui", "Quick"])
|
||||
|
||||
if self.options.qtvirtualkeyboard:
|
||||
_create_module("VirtualKeyboard", ["Qml", "Quick", "Gui"])
|
||||
|
||||
if self.options.qtspeech:
|
||||
_create_module("TextToSpeech")
|
||||
|
||||
if not self.options.shared:
|
||||
if self.settings.os == "Windows":
|
||||
self.cpp_info.components["qtCore"].system_libs.append("version") # qtcore requires "GetFileVersionInfoW" and "VerQueryValueW" which are in "Version.lib" library
|
||||
self.cpp_info.components["qtCore"].system_libs.append("winmm") # qtcore requires "__imp_timeSetEvent" which is in "Winmm.lib" library
|
||||
self.cpp_info.components["qtCore"].system_libs.append("netapi32") # qtcore requires "NetApiBufferFree" which is in "Netapi32.lib" library
|
||||
self.cpp_info.components["qtCore"].system_libs.append("userenv") # qtcore requires "__imp_GetUserProfileDirectoryW " which is in "UserEnv.Lib" library
|
||||
self.cpp_info.components["qtCore"].system_libs.append("ws2_32") # qtcore requires "WSAStartup " which is in "Ws2_32.Lib" library
|
||||
self.cpp_info.components["qtNetwork"].system_libs.append("dnsapi") # qtnetwork from qtbase requires "DnsFree" which is in "Dnsapi.lib" library
|
||||
self.cpp_info.components["qtNetwork"].system_libs.append("iphlpapi")
|
||||
if self.options.widgets:
|
||||
self.cpp_info.components["qtWidgets"].system_libs.append("uxtheme")
|
||||
self.cpp_info.components["qtWidgets"].system_libs.append("dwmapi")
|
||||
if self.options.get_safe("qtwinextras"):
|
||||
self.cpp_info.components["qtWinExtras"].system_libs.append("dwmapi") # qtwinextras requires "DwmGetColorizationColor" which is in "dwmapi.lib" library
|
||||
|
||||
if is_apple_os(self):
|
||||
self.cpp_info.components["qtCore"].frameworks.append("CoreServices" if self.settings.os == "Macos" else "MobileCoreServices")
|
||||
self.cpp_info.components["qtNetwork"].frameworks.append("SystemConfiguration")
|
||||
if self.options.with_gssapi:
|
||||
self.cpp_info.components["qtNetwork"].frameworks.append("GSS")
|
||||
if not self.options.openssl: # with SecureTransport
|
||||
self.cpp_info.components["qtNetwork"].frameworks.append("Security")
|
||||
if self.settings.os == "Macos" or (self.settings.os == "iOS" and Version(self.settings.compiler.version) >= "14.0"):
|
||||
self.cpp_info.components["qtCore"].frameworks.append("IOKit") # qtcore requires "_IORegistryEntryCreateCFProperty", "_IOServiceGetMatchingService" and much more which are in "IOKit" framework
|
||||
if self.settings.os == "Macos":
|
||||
self.cpp_info.components["qtCore"].frameworks.append("Cocoa") # qtcore requires "_OBJC_CLASS_$_NSApplication" and more, which are in "Cocoa" framework
|
||||
self.cpp_info.components["qtCore"].frameworks.append("Security") # qtcore requires "_SecRequirementCreateWithString" and more, which are in "Security" framework
|
||||
|
||||
self.cpp_info.components["qtCore"].builddirs.append(os.path.join("bin"))
|
||||
_add_build_module("qtCore", self._cmake_core_extras_file)
|
||||
_add_build_module("qtCore", self._cmake_qt5_private_file("Core"))
|
||||
|
||||
for m in os.listdir(os.path.join("lib", "cmake")):
|
||||
module = os.path.join("lib", "cmake", m, f"{m}Macros.cmake")
|
||||
component_name = m.replace("Qt5", "qt")
|
||||
if os.path.isfile(module):
|
||||
_add_build_module(component_name, module)
|
||||
self.cpp_info.components[component_name].builddirs.append(os.path.join("lib", "cmake", m))
|
||||
|
||||
qt5core_config_extras_mkspec_dir_cmake = load(self,
|
||||
os.path.join("lib", "cmake", "Qt5Core", "Qt5CoreConfigExtrasMkspecDir.cmake"))
|
||||
mkspecs_dir_begin = qt5core_config_extras_mkspec_dir_cmake.find("mkspecs/")
|
||||
mkspecs_dir_end = qt5core_config_extras_mkspec_dir_cmake.find("\"", mkspecs_dir_begin)
|
||||
mkspecs_path = qt5core_config_extras_mkspec_dir_cmake[mkspecs_dir_begin:mkspecs_dir_end]
|
||||
assert os.path.exists(mkspecs_path)
|
||||
self.cpp_info.components["qtCore"].includedirs.append(mkspecs_path)
|
||||
|
||||
objects_dirs = glob.glob(os.path.join(self.package_folder, "lib", "objects-*/"))
|
||||
for object_dir in objects_dirs:
|
||||
for m in os.listdir(object_dir):
|
||||
component = "qt" + m[:m.find("_")]
|
||||
if component not in self.cpp_info.components:
|
||||
continue
|
||||
submodules_dir = os.path.join(object_dir, m)
|
||||
for sub_dir in os.listdir(submodules_dir):
|
||||
submodule_dir = os.path.join(submodules_dir, sub_dir)
|
||||
obj_files = [os.path.join(submodule_dir, file) for file in os.listdir(submodule_dir)]
|
||||
self.cpp_info.components[component].exelinkflags.extend(obj_files)
|
||||
self.cpp_info.components[component].sharedlinkflags.extend(obj_files)
|
||||
|
||||
build_modules_list = []
|
||||
|
||||
def _add_build_modules_for_component(component):
|
||||
for req in self.cpp_info.components[component].requires:
|
||||
if "::" in req: # not a qt component
|
||||
continue
|
||||
_add_build_modules_for_component(req)
|
||||
build_modules_list.extend(build_modules.pop(component, []))
|
||||
|
||||
for c in self.cpp_info.components:
|
||||
_add_build_modules_for_component(c)
|
||||
|
||||
self.cpp_info.set_property("cmake_build_modules", build_modules_list)
|
||||
self.cpp_info.requires.append("pulseaudio::pulse")
|
||||
self.cpp_info.requires.append("libalsa::libalsa")
|
||||
if self.options.qtwebengine:
|
||||
if self.settings.os in ["Linux", "FreeBSD"]:
|
||||
self.cpp_info.extend(["expat::expat", "opus::libopus", "xorg-proto::xorg-proto", "libxshmfence::libxshmfence", \
|
||||
"nss::nss", "libdrm::libdrm", "egl::egl"])
|
||||
if self.options.qtwayland and self.options.gui:
|
||||
self.cpp_info.requires.extend(["wayland::wayland-client", "wayland:wayland-server"])
|
||||
|
||||
@staticmethod
|
||||
def _remove_duplicate(l):
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
. "/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/xkeyboard-config/all/test_package/build-release/conan/conanbuildenv-release-x86_64.sh"
|
||||
@@ -1,18 +0,0 @@
|
||||
script_folder="/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/xkeyboard-config/all/test_package/build-release/conan"
|
||||
echo "echo Restoring environment" > "$script_folder/deactivate_conanbuildenv-release-x86_64.sh"
|
||||
for v in CXX CC CONAN_V2_MODE
|
||||
do
|
||||
is_defined="true"
|
||||
value=$(printenv $v) || is_defined="" || true
|
||||
if [ -n "$value" ] || [ -n "$is_defined" ]
|
||||
then
|
||||
echo export "$v='$value'" >> "$script_folder/deactivate_conanbuildenv-release-x86_64.sh"
|
||||
else
|
||||
echo unset $v >> "$script_folder/deactivate_conanbuildenv-release-x86_64.sh"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
export CXX="x86_64-linux-gnu-g++-12"
|
||||
export CC="x86_64-linux-gnu-gcc-12"
|
||||
export CONAN_V2_MODE="true"
|
||||
@@ -1 +0,0 @@
|
||||
. "/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/xkeyboard-config/all/test_package/build-release/conan/conanrunenv-release-x86_64.sh"
|
||||
@@ -1,14 +0,0 @@
|
||||
script_folder="/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/xkeyboard-config/all/test_package/build-release/conan"
|
||||
echo "echo Restoring environment" > "$script_folder/deactivate_conanrunenv-release-x86_64.sh"
|
||||
for v in
|
||||
do
|
||||
is_defined="true"
|
||||
value=$(printenv $v) || is_defined="" || true
|
||||
if [ -n "$value" ] || [ -n "$is_defined" ]
|
||||
then
|
||||
echo export "$v='$value'" >> "$script_folder/deactivate_conanrunenv-release-x86_64.sh"
|
||||
else
|
||||
echo unset $v >> "$script_folder/deactivate_conanrunenv-release-x86_64.sh"
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
. "/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/xkeyboard-config/all/test_package/build-release/conan/deactivate_conanbuildenv-release-x86_64.sh"
|
||||
@@ -1,4 +0,0 @@
|
||||
echo Restoring environment
|
||||
unset CXX
|
||||
unset CC
|
||||
unset CONAN_V2_MODE
|
||||
@@ -1 +0,0 @@
|
||||
. "/home/aleksandr.vodyanov/Documents/Avroid/Conan/conan_recipes.git/recipes/xkeyboard-config/all/test_package/build-release/conan/deactivate_conanrunenv-release-x86_64.sh"
|
||||
@@ -1,8 +0,0 @@
|
||||
prefix=/home/aleksandr.vodyanov/.conan2/p/b/xkeybfb432262e432a/p
|
||||
bindir=${prefix}/bin
|
||||
xkb_base=/usr/share/X11/xkb
|
||||
datadir=/usr/share
|
||||
|
||||
Name: xkeyboard-config
|
||||
Description: Conan package: xkeyboard-config
|
||||
Version: system
|
||||
Reference in New Issue
Block a user