Skip to content
Snippets Groups Projects
conanfile.py 1.91 KiB
Newer Older
POTIER Frederic's avatar
POTIER Frederic committed
from conan import ConanFile
from conan.tools.cmake import CMakeToolchain, CMake, cmake_layout, CMakeDeps

class motionproxyhelperRecipe(ConanFile):
    name = "motionproxyhelper"
MADELA Patrick's avatar
MADELA Patrick committed
    version = "1.1.2"
POTIER Frederic's avatar
POTIER Frederic committed
    package_type = "library"
    user = "soleil"
    
    # Optional metadata
    license = "GPL-2"
    author = "Nourreddine", "Langlois"
    url = "https://gitlab.synchrotron-soleil.fr/software-control-system/libraries/motionproxyhelper"
    description = "MotionProxyHelper library"
    topics = ("utility", "control-system")

    # Binary configuration
    settings = "os", "compiler", "build_type", "arch"
    options = {"shared": [True, False], "fPIC": [True, False]}
    default_options = {"shared": False, "fPIC": True}

    # Sources are located in the same place as this recipe, copy them to the recipe
    exports_sources = "CMakeLists.txt", "src/**"

    def requirements(self):
        self.requires("cpptango/9.2.5@soleil/stable")
        self.requires("yat/[>=1.0]@soleil/stable")

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

    def configure(self):
        if self.options.shared:
            self.options.rm_safe("fPIC")

    def layout(self):
        cmake_layout(self)

    def generate(self):
        deps = CMakeDeps(self)
        deps.generate()
        tc = CMakeToolchain(self)
        major, minor, patch = map(int, self.version.split('.'))
        tc.variables["PROJECT_NAME"] = self.name
        tc.variables["PROJECT_VERSION"] = self.version
        tc.variables["MAJOR_VERSION"] = major
        tc.variables["MINOR_VERSION"] = minor
        tc.variables["PATCH_VERSION"] = patch
        tc.generate()

    def build(self):
        cmake = CMake(self)
        cmake.configure()
        cmake.build()

    def package(self):
        cmake = CMake(self)
        cmake.install()

    def package_info(self):
        self.cpp_info.libs = ["motionproxyhelper"]