Skip to content
Snippets Groups Projects
conanfile.py 1.87 KiB
Newer Older
Timm Fitschen's avatar
Timm Fitschen committed
from conans import ConanFile, CMake, tools


Timm Fitschen's avatar
Timm Fitschen committed
class CaosdbConan(ConanFile):
Timm Fitschen's avatar
Timm Fitschen committed
    name = "caosdb"
Timm Fitschen's avatar
Timm Fitschen committed
    version = "0.0.2"
Timm Fitschen's avatar
Timm Fitschen committed
    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")]
Timm Fitschen's avatar
Timm Fitschen committed
    exports = "*.cpp", "*h", "*.cmake", "*CMakeLists.txt", "*.in", "*.proto"
    exports_sources = "src", "doc", "include", "test", "cmake", "proto"
Timm Fitschen's avatar
Timm Fitschen committed

    def config_options(self):
        if self.settings.os == "Windows":
            del self.options.fPIC

Timm Fitschen's avatar
Timm Fitschen committed
    # 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")
Timm Fitschen's avatar
Timm Fitschen committed

    def imports(self):
        self.copy("protoc*", "build_tools", "bin")
        self.copy("grpc_cpp_plugin", "build_tools", "bin")

    def build(self):
        cmake = CMake(self)
Timm Fitschen's avatar
Timm Fitschen committed
        cmake.configure(source_folder="")
Timm Fitschen's avatar
Timm Fitschen committed
        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):
Timm Fitschen's avatar
Timm Fitschen committed
        self.cpp_info.libs = ["caosdb", "caosdb_info_v1alpha1"]