Closed PierreRamoin closed 4 years ago
Could you give me some information about what platform this is being built on?
OS (name, version)? Compiler (name, version)?
The CMake script being used here seems to be wrapped by something else (e.g., FindZLIB is being invoked), could you point me at that script?
OS : Ubuntu 18.04 LTS Compiler: GCC 7 (tried also with 8)
It is wrapped and compiled via conan, a dependency manager. I tried without it and the compilation works just fine. Do you have any idea what can cause this new failure ?
Here is my conanfile: it contains all the dependencies I use and the changes I make on the CMakeList (for conan to find and include the librairies)
class SimpleamqpclientConan(ConanFile):
name = "SimpleAmqpClient"
version = "2.4.1_1"
license = "MIT"
author = "Pierre RAMOIN <pierre.ramoin@snowconnect.eu>"
description = "Wrapper for RabbitMQ"
topics = ("RabbitMQ", "AMQP")
settings = "os", "compiler", "build_type", "arch"
options = {"shared": [True, False]}
default_options = "shared=False"
generators = "cmake", "cmake_find_package"
build_requires = ["cmake/3.17.0"]
requires = ["librabbitmq-c/0.9.0-0.2" + conan_extension,
"boost/1.70.0"]
def source(self):
self.run("git clone https://github.com/alanxz/SimpleAmqpClient.git")
# self.run("cd SimpleAmqpClient && git checkout eaa6044cecbd84e5e77ed0cd223515358c982605 && cd ..")
tools.replace_in_file("SimpleAmqpClient/CMakeLists.txt", "SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)", "#SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)")
tools.replace_in_file("SimpleAmqpClient/CMakeLists.txt", "INCLUDE(UseDoxygen)", "SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/Modules)\nINCLUDE(UseDoxygen)")
tools.replace_in_file("SimpleAmqpClient/CMakeLists.txt", "FIND_PACKAGE(Rabbitmqc REQUIRED)", "FIND_PACKAGE(librabbitmq-c REQUIRED)")
tools.replace_in_file("SimpleAmqpClient/CMakeLists.txt", "PROJECT(SimpleAmqpClient)",
('PROJECT(SimpleAmqpClient)\n'
'include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)\n'
'conan_basic_setup()'))
def configure_cmake(self):
cmake = CMake(self)
return cmake
def build(self):
cmake = self.configure_cmake()
cmake.configure(source_folder="SimpleAmqpClient")
cmake.build()
def package(self):
cmake = self.configure_cmake()
cmake.install()
def package_info(self):
self.cpp_info.libs = ["SimpleAmqpClient"]
I also wrap librabbitmq-c (debian version) for conan package manager:
class LibrabbitmqConan(ConanFile):
name = "librabbitmq-c"
version = "0.9.0-0.2"
license = "MIT"
author = "Pierre RAMOIN <pierre.ramoin@snowconnect.eu>"
url = "https://github.com/snowconnect/conan-librabbitmq-c.git"
description = "librabbitmq-c w/ debian patches"
topics = ("RabbitMQ", "amqp", "C")
settings = "os", "compiler", "build_type", "arch"
options = {"shared": [True, False]}
generators = "cmake"
requires = "openssl/1.0.2u"
build_requires = "cmake/3.17.0"
default_options = {"openssl:shared": True, "shared": True}
def source(self):
self.run("curl -L deb.debian.org/debian/pool/main/libr/librabbitmq/librabbitmq_0.9.0-0.2.debian.tar.xz | tar xJv")
self.run("curl -L deb.debian.org/debian/pool/main/libr/librabbitmq/librabbitmq_0.9.0.orig.tar.gz | tar xvz --strip-components 1")
tools.replace_in_file("./CMakeLists.txt", "project(rabbitmq-c \"C\")",
'''project(rabbitmq-c \"C\")
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()''')
tools.replace_in_file("./librabbitmq/CMakeLists.txt",
"set(RMQ_LIBRARIES ${AMQP_SSL_LIBS} ${SOCKET_LIBRARIES} ${LIBRT} ${CMAKE_THREAD_LIBS_INIT})",
"set(RMQ_LIBRARIES ${AMQP_SSL_LIBS} ${SOCKET_LIBRARIES} ${LIBRT} ${CMAKE_THREAD_LIBS_INIT} ${CONAN_LIBS})\n message(${CONAN_LIBS})")
def configure_cmake(self):
cmake = CMake(self)
return cmake
def build(self):
cmake = CMake(self)
with open('debian/patches/series') as f:
lines = f.readlines()
for line in lines:
self.run("patch -p1 < ./debian/patches/" + line)
cmake.configure()
cmake.build()
def package(self):
cmake = self.configure_cmake()
cmake.install()
def package_info(self):
self.cpp_info.libs = ["rabbitmq", "dl"]
Hi, I just tried to compile the last commit (56713c0), but the build fails:
Everything works as expected with build eaa6044cecbd84e5e77ed0cd223515358c982605