Advanced Dependencies Model in Conan 2.0 C, C++ Package Manager - Diego Rodriguez-Losada - ACCU 2022

Поділитися
Вставка
  • Опубліковано 12 вер 2024
  • Join The ACCU Membership For Exclusive Benefits, Discounts & Reduced Conference Ticket Pricing:
    accu.org/menu-...
    ---
    Advanced Dependencies Model in Conan 2.0 C, C++ Package Manager - Diego Rodriguez-Losada - ACCU 2022
    Slides & Materials:accu.digital-m...
    Website: accu.org/conf-...
    Conan C, C++ package manager has been running the 1.X stable version, up to recent 1.43, for the last 4 years. One of its limitations was the relatively simple dependencies model, with "requires" to model "library" dependencies and "build_requires" to model "build time tools" dependencies.
    While this model works well in some of the most typical scenarios, like applications linking all static libraries, it can be limited in some advanced scenarios, like mixing shared and static libraries in different topologies, or the (dreaded, but still happening in real life projects) case of depending on different versions of the same static library in the same project, via isolation of shared libraries.
    Conan 2.0 introduces a new dependencies model with requirements "traits" like visibility, definition and propagation of headers and libraries independently, and more that allow modeling all these advanced use cases. This talk will present this new model, and apply it to solve different advanced use cases, with real life examples. It will also describe the ABI compatibility implications, and how it can affect and be leveraged while building large C and C++ projects at scale in CI.
    ---
    Diego Rodriguez-Losada
    Diego Rodriguez-Losada‘s passions are robotics and SW engineering and development. He has developed many years in C and C++ in the Industrial, Robotics and AI fields. Diego was also a University (tenure track) professor and robotics researcher for 8 years, till 2012, when he quit academia to try to build a C/C++ dependency manager and co-founded a startup.. Since then he mostly develops in Python. Diego is a conan.io C/C++ package manager co-creator and maintainer, now working at JFrog as Conan Lead Architect and C/C++ Advocate.
    ---
    Videos Filmed & Edited by Digital Medium: events.digital...
    #accuconf #programming #conan

КОМЕНТАРІ • 11

  • @dutiona
    @dutiona 2 роки тому +5

    This is such a relief to get this fine piece of software in the C++ ecosystem. Conan was not perfect but, with trial and error, it has evolved a lot and the 2.0 looks very promising. I am already using it (one of the last released feature: toolchain generator integration, was so smooth!) and am looking forward to trying the 2.0 !

  • @germandiagogomez
    @germandiagogomez 2 роки тому +2

    Conan is the tool we are using at my company for dependency resolution. It is working very nicely because it is flexible and you can also create your own recipes and customize them. Paired with Artifactory for artifact storage it makes for an industrial-strength setup.
    It is nice to see transitive dependencies coming into the new model.

    • @ACCUConf
      @ACCUConf  2 роки тому +1

      Thanks for sharing

  • @zbychs
    @zbychs 2 роки тому +3

    Very good presentation, thanks.

    • @ACCUConf
      @ACCUConf  2 роки тому

      Glad you enjoyed it!

  • @nikolaosbouras5550
    @nikolaosbouras5550 2 роки тому +1

    This is gold, thanks for sharing it.

    • @ACCUConf
      @ACCUConf  2 роки тому

      Thanks for listening

  • @adrianconstantin1132
    @adrianconstantin1132 Рік тому

    The assembler code still shows a missing function address (all zeroes), even in the slides after linking, when the symbol should be resolved.

  • @johndewey7243
    @johndewey7243 Рік тому

    Building C++ projects makes me cry.

  • @adrianconstantin1132
    @adrianconstantin1132 Рік тому

    I've always wanted this, but good integrations are too important for adoption, and conan still does not address them properly. The latest is currently connan 2.0.6, and the cmake integration requires an external toolchain file ? A real cmake dependency provider is too important for conan to ignore. Same for Visual Studio projects, the VS extension is always left behind. Users do not want to run conan *BEFORE* the build, and then alter the build environment with the results. Users want to run their build script directly, and have it integrate with conan from there.