You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@celix.apache.org by pe...@apache.org on 2024/03/06 10:56:33 UTC
(celix) branch hotfix/conan-private-dep created (now f75a4197)
This is an automated email from the ASF dual-hosted git repository.
pengzheng pushed a change to branch hotfix/conan-private-dep
in repository https://gitbox.apache.org/repos/asf/celix.git
at f75a4197 Fix linker error caused by private linking of transitive dependencies.
This branch includes the following new commits:
new f75a4197 Fix linker error caused by private linking of transitive dependencies.
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(celix) 01/01: Fix linker error caused by private linking of transitive dependencies.
Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
pengzheng pushed a commit to branch hotfix/conan-private-dep
in repository https://gitbox.apache.org/repos/asf/celix.git
commit f75a41974cb53673d88592f8dacc2b3a7eb3022f
Author: PengZheng <ho...@gmail.com>
AuthorDate: Wed Mar 6 18:56:20 2024 +0800
Fix linker error caused by private linking of transitive dependencies.
Check https://github.com/conan-io/conan/issues/7192 for more information.
---
conanfile.py | 7 +++----
examples/conan_test_package/conanfile.py | 8 ++++----
examples/conan_test_package_v2/conanfile.py | 8 ++++----
3 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/conanfile.py b/conanfile.py
index 60e05f71..79db0fb3 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -344,10 +344,9 @@ class CelixConan(ConanFile):
tc.cache_variables["CELIX_ERR_BUFFER_SIZE"] = str(self.options.celix_err_buffer_size)
# tc.cache_variables["CMAKE_PROJECT_Celix_INCLUDE"] = os.path.join(self.build_folder, "conan_paths.cmake")
# the following is workaround for https://github.com/conan-io/conan/issues/7192
- if self.settings.os == "Linux":
- tc.cache_variables["CMAKE_EXE_LINKER_FLAGS"] = "-Wl,--unresolved-symbols=ignore-in-shared-libs"
- elif self.settings.os == "Macos":
- tc.cache_variables["CMAKE_EXE_LINKER_FLAGS"] = "-Wl,-undefined -Wl,dynamic_lookup"
+ for dep in self.dependencies.host.values():
+ copy(self, "*", dep.cpp_info.libdir, os.path.join(self.build_folder, "lib"))
+ tc.cache_variables["CMAKE_BUILD_RPATH"] = os.path.join(self.build_folder, "lib")
v = Version(self.version)
tc.cache_variables["CELIX_MAJOR"] = str(v.major.value)
tc.cache_variables["CELIX_MINOR"] = str(v.minor.value)
diff --git a/examples/conan_test_package/conanfile.py b/examples/conan_test_package/conanfile.py
index c80070e3..2fd75fbc 100644
--- a/examples/conan_test_package/conanfile.py
+++ b/examples/conan_test_package/conanfile.py
@@ -24,6 +24,9 @@ class TestPackageConan(ConanFile):
generators = "cmake_paths", "cmake_find_package"
# requires = "celix/2.3.0@docker/test"
+ def imports(self):
+ self.copy("*", src="@libdirs", dst="lib")
+
def build(self):
cmake = CMake(self)
cmake.definitions["TEST_FRAMEWORK"] = self.options["celix"].build_framework
@@ -56,10 +59,7 @@ class TestPackageConan(ConanFile):
cmake.definitions["TEST_COMPONENTS_READY_CHECK"] = self.options["celix"].build_components_ready_check
cmake.definitions["CMAKE_PROJECT_test_package_INCLUDE"] = os.path.join(self.build_folder, "conan_paths.cmake")
# the following is workaround https://github.com/conan-io/conan/issues/7192
- if self.settings.os == "Linux":
- cmake.definitions["CMAKE_EXE_LINKER_FLAGS"] = "-Wl,--unresolved-symbols=ignore-in-shared-libs"
- elif self.settings.os == "Macos":
- cmake.definitions["CMAKE_EXE_LINKER_FLAGS"] = "-Wl,-undefined -Wl,dynamic_lookup"
+ cmake.definitions["CMAKE_BUILD_RPATH"] = os.path.join(self.build_folder, "lib")
cmake.configure()
cmake.build()
diff --git a/examples/conan_test_package_v2/conanfile.py b/examples/conan_test_package_v2/conanfile.py
index 3eaabd65..d64d38b9 100644
--- a/examples/conan_test_package_v2/conanfile.py
+++ b/examples/conan_test_package_v2/conanfile.py
@@ -19,6 +19,7 @@ from conan import ConanFile
from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout
from conan.tools.build import can_run
from conan.tools.files import chdir
+from conan.tools.files import copy
import os
@@ -65,10 +66,9 @@ class TestPackageConan(ConanFile):
tc.cache_variables["TEST_UTILS"] = celix_options.build_utils
tc.cache_variables["TEST_COMPONENTS_READY_CHECK"] = celix_options.build_components_ready_check
# the following is workaround https://github.com/conan-io/conan/issues/7192
- if self.settings.os == "Linux":
- tc.cache_variables["CMAKE_EXE_LINKER_FLAGS"] = "-Wl,--unresolved-symbols=ignore-in-shared-libs"
- elif self.settings.os == "Macos":
- tc.cache_variables["CMAKE_EXE_LINKER_FLAGS"] = "-Wl,-undefined -Wl,dynamic_lookup"
+ for dep in self.dependencies.host.values():
+ copy(self, "*", dep.cpp_info.libdir, os.path.join(self.build_folder, "lib"))
+ tc.cache_variables["CMAKE_BUILD_RPATH"] = os.path.join(self.build_folder, "lib")
tc.user_presets_path = False
tc.generate()