from conans import ConanFile, CMake, tools class CaosdbConan(ConanFile): name = "caosdb" version = "0.0.2" license = "AGPL-3.0-or-later" author = "Timm C. Fitschen <t.fitschen@indiscale.com>" url = "https://gitlab.indiscale.com/caosdb/src/caosdb-cpplib.git" description = "C++ library for the CaosDB project" topics = ("data management", "caosdb") settings = "os", "compiler", "build_type", "arch" options = {"shared": [True, False], "fPIC": [True, False]} default_options = {"shared": False, "fPIC": True} generators = "cmake" requires = [("boost/1.76.0"), ("gtest/1.11.0"), ("grpc/1.38.0")] exports = "*.cpp", "*h", "*.cmake", "*CMakeLists.txt", "*.in", "*.proto" exports_sources = "src", "doc", "include", "test", "cmake", "proto" def config_options(self): if self.settings.os == "Windows": del self.options.fPIC # def source(self): # self.run("git clone https://gitlab.indiscale.com/caosdb/src/caosdb-cpplib.git") # self.run("cd caosdb-cpplib && git submodule update --init") def imports(self): self.copy("protoc*", "build_tools", "bin") self.copy("grpc_cpp_plugin", "build_tools", "bin") def build(self): cmake = CMake(self) cmake.configure(source_folder="") cmake.build() # Explicit way: # self.run('cmake %s/hello %s' # % (self.source_folder, cmake.command_line)) # self.run("cmake --build . %s" % cmake.build_config) def package(self): self.copy("*.h", dst="include", src="include") self.copy("*.dll", dst="bin", keep_path=False) self.copy("*.so", dst="lib", keep_path=False) self.copy("*.dylib", dst="lib", keep_path=False) self.copy("*.a", dst="lib", keep_path=False) def package_info(self): self.cpp_info.libs = ["caosdb", "caosdb_info_v1alpha1"]