Conan 2.0 | C++ Package Manager - A detailed introduction

Поділитися
Вставка
  • Опубліковано 25 сер 2024
  • github.com/Ohj...
    conan.io/
    premake.github...

КОМЕНТАРІ • 24

  • @wolpumba4099
    @wolpumba4099 11 місяців тому +10

    Here's a summarized bullet list of the UA-cam video:
    *Setting up Conan and C++ Project*
    - Introduces Conan, a package manager for C++.
    - Demonstrates how to install Conan and set up a new C++ project.
    - Explains how to add dependencies like `fmt` and `spdlog` using Conan.
    *Conan Commands*
    - `conan install . --build missing` to install and build missing dependencies.
    - `conan install . --build missing -o folder=dependencies` to specify output folder.
    *Build System Integration*
    - Shows how to integrate Conan with PreMake5.
    - Uses `conan install` with generators to create PreMake5 files.
    *Debug and Release Builds*
    - Discusses the issue of using release libraries in a debug build.
    - Shows how to specify build types in Conan to get both debug and release builds.
    *Automating with Python*
    - Creates a Python script to automate Conan and PreMake5 commands.
    *Adding New Libraries*
    - Demonstrates how to add a new library (lz4) to the project.
    - Shows how to use the lz4 library in the code.
    *Final Thoughts*
    - Advocates for the Conan and PreMake5 toolchain for C++ development.
    - Claims it's faster and more efficient than other methods like CMake.
    The video covers a lot of ground, from setting up a C++ project with
    Conan and PreMake5 to adding new libraries and automating the process.
    *Positive Points
    1. *Efficiency:* The Conan and PreMake5 toolchain allows for quick setup and integration of C++ projects, saving development time.
    2. *Automation:* Demonstrates how to automate the entire process using Python, making it easier to manage complex projects.
    3. *Flexibility:* Allows for both debug and release builds, providing more control over the development process.
    4. *Library Management:* Simplifies the process of adding and managing libraries, making it easier to extend functionality.
    5. *Native Visual Studio Support:* Offers a native Visual Studio solution, which is beneficial for developers familiar with the IDE.
    6. *Clear Instructions:* The video provides step-by-step instructions, making it accessible even for those new to Conan or PreMake5.
    *Negative Points
    1. *Complexity:* The toolchain involves multiple components (Conan, PreMake5, Python), which could be overwhelming for beginners.
    2. *Dependency on Python:* Requires Python for automation, which might not be ideal for all development environments.
    3. *Debug/Release Build Issue:* The video discusses a potential issue with using release libraries in a debug build, requiring additional steps to resolve.
    4. *Warnings:* Some compiler or linker warnings are not fully addressed, which might concern some developers seeking a clean build.
    5. *Limited Error Handling:* The video doesn't cover what to do in case of errors or issues, leaving some gaps in troubleshooting.

    • @LötwigFusel
      @LötwigFusel  11 місяців тому +1

      Thank you for your efforts to summarize and Rate the video. Really helps!

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

    Killer tutorial - easy to follow and breaks it down into beautifully simple ways to consume...nicely done!

  • @PirateMonkey010
    @PirateMonkey010 2 місяці тому +1

    you're the GOAT

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

    Thanks for updating!

  • @nguyencongson198
    @nguyencongson198 3 місяці тому

    thank you!

  • @arcetros
    @arcetros 20 днів тому

    Thanks for this tutorial, it helps me a ton

  • @gerardoanzora9194
    @gerardoanzora9194 2 місяці тому

    Dude, how can i create a profile to compile a exe with Mingw? (im on Linux)

  • @urshofmann4620
    @urshofmann4620 10 місяців тому

    you quite often say that conan downloads and compiles the libraries we need. is this really true? Isn't one of the biggest advantages that it basically use prebuilt binaries? If i look in the filesystems generated in my .conan2 user folder, i do not see the source code but just the compiled libraries as well.

    • @LötwigFusel
      @LötwigFusel  10 місяців тому +2

      Conan does it on demand. If a prebuilt package is available, it just downloads and copies the required files. However, if you are working with custom environments (compilers, special options, or configurations), it compiles them on the fly. For VS2022, they did not have prebuilt packages at that time. The "build missing" option is something that I would always recommend. Then it will prefer the online binary files, and if no prebuild package is available, it will build it.

  • @nikolaradovanovic4883
    @nikolaradovanovic4883 11 місяців тому +3

    Good info, but you are talking WAY too fast.

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

    what would be the settings for just using cmake and not premake5 or is using premake5 worth it

    • @LötwigFusel
      @LötwigFusel  Рік тому +2

      You can use „CMakeDeps“ instead of „PremakeDeps“. However I would recommend premake. It’s more a personal preference than a fact. However premake allows you full scripting in lua. This allows you to dynamically create your projects (detect a new project just by the existence of a folder, automatically select all files, …). And premake works better with visual studio (in the normal non cmake mode) because you can place the project in the source directory. Then it allows you to manage the files and folders in your project without re running premake. Since cmake adds all build files in its own directory it’s not easy to use the visual studio project for development.

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

    Hi!
    On 33:57 I am following the steps to get the "PremakeDeps" files, but whenever I run the line in the console it doesn't generate me any new file in my dependecies folder :(
    I typed the generators line as you did in the video and saved the file.

    • @LötwigFusel
      @LötwigFusel  Рік тому

      What do you get when running „conan --version“?

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

      @@LötwigFusel Conan version 2.0.4

  • @unperrier5998
    @unperrier5998 9 місяців тому +2

    Wow speak of an overengineered tool. Write Pyhon, batch files and lua in order to install and use 3rd party library code.
    Glag they did not use this approach for pip, apt or dnf.

    • @LötwigFusel
      @LötwigFusel  9 місяців тому +2

      Sure. But show me a better solution that works on all platforms and is 100% customizable and I will be happy to showcase and use it.

    • @stefanalecu9532
      @stefanalecu9532 7 місяців тому

      As far as the video author is concerned, he didn't write a single line of Batch so you're disingenuous. Also, Lua is part of Premake and as such you'd be using whatever DSL your build system uses (CMake, Meson, SCons or whatever). You didn't understand the point of the video at all
      Also, are you really comparing a C++ package manager that's exclusively a package manager (so you still need a build system) with a package manager for an interpreted language (Python) and two full blown Linux general package managers that do a dozen other things in the background? Have the balls to compare Conan with vcpkg or NuGet or cargo or something similar and then come here and tell us your experience you buffoon

    • @unperrier5998
      @unperrier5998 7 місяців тому

      @@stefanalecu9532/videos for your information, pip can build extensions written in C or even something exotic like cython.
      And I'm not saying the guy in the video is the author, I'm just saying that the whole shebang is too complex in comparison to other package managers like pip..

    • @tonio9973
      @tonio9973 26 днів тому

      slowly getting to the conclusion that the c++ build system is hell.
      Although I'm counting that with enough experience, I'll be able to replace this premake thing with cmake.Then after that getting familiar enough with the library files that I'll be able to move those .lib and .dll into my project by myself and not need a package manager