Tag: packagemanager

Cross-Building Strategies in the Age of C++ Package Managers – Luis Caro Campos – CppCon 2022

  • Lobby
  • Tag Archives: packagemanager

ttps://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

Cross-Building Strategies in the Age of Cpp Package Managers - Luis Caro Campos - CppCon 2022
https://github.com/CppCon/CppCon2022

Embedded devices like the Raspberry Pi and NVIDIA Jetson are becoming increasingly popular for both enthusiasts and enterprise-grade applications, in particular for Machine Learning workloads that require a low-power profile. On devices that provide a native build toolchain, developers will typically face two choices: build their applications and their dependencies on the target device, which can take considerably longer than the equivalent workload on a typical PC, or carefully set-up a cross-compilation environment on a more powerful PC where using the correct dependencies (and their versions!) can become more of a challenge.

On the other hand, with macOS and Windows now officially supported on ARM processors, end users will typically expect applications to run natively for the best performance possible, rather than rely on emulation where the performance hit may negatively impact the user experience. The first step before shipping an application is building it, and cross-building existing applications can help vendors get over that first hurdle without having to wait for native hardware, especially given the current supply chain constraints.

But setting up a cross-compilation environment can be challenging and often confusing, and the build scripts for some libraries may not have considered supporting cross-building workflows. C++ package managers have gained a lot of traction in recent years. If we are already using them for our local build workflows, why not leverage their power to support cross-compiling?

This talk focuses on exploring how we leverage the concepts introduced by modern C++ package managers like Conan and vcpkg and apply them to the cross-building workflow, and the technical challenges faced by these tools to enable this. A practical example will be demonstrated where we can cross-build an existing application using familiar tooling, simplifying the workflow and saving considerable time.
---

Luis Caro Campos

Luis is a Electronics and Computer Engineer based in the UK, with previous experience as a C++ engineer in the field of Computer Vision and Robotics. Currently, he is concerned with the problem of enabling Software Development at scale: focused on the tooling and processes to support large teams of engineers in writing code. He is currently part of the Conan team at JFrog, focused on the problems of the C++ community at large.
---

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , ,

C++ Package Manager – C++ Dependencies Don’t Have To Be Painful! – Augustin Popa – CppCon 2022

  • Lobby
  • Tag Archives: packagemanager

https://cppcon.org/
---

C++ Dependencies Don’t Have To Be Painful - Why You Should Use a Package Manager - Augustin Popa - CppCon 2022
https://github.com/CppCon/CppCon2022

According to recent surveys from the Standard C++ Foundation, a majority of C++ developers are manually managing their library dependencies. Curiously, one of the top pain points cited in these surveys was also “managing libraries”. I believe these two points are correlated.

In this talk, I will discuss how different types of package managers address these pain points, from system package managers like apt and Homebrew to build system centric package managers like NuGet and language package managers like vcpkg and Conan. There are pros and cons to every solution, and some package managers are more effective in some workflows than others. Managing libraries doesn’t have to be painful. If you configure your workflow right, you will save time not having to maintain additional git submodules, source code, or reading build instructions on GitHub.

I’ll also talk about a few scenarios related to dependency management: acquiring open-source libraries vs. private libraries, automatically building libraries from source, using libraries locally and in CI, using libraries with different build systems and operating systems, and acquiring developer tools from a package manager. You will come out of this talk with an understanding of how a package manager can rid you of your dependency woes.
---

Augustin Popa

Augustin is a Product Manager on the C++ team at Microsoft, working on vcpkg and Visual Studio setup. In the past he has worked on the Visual Studio productivity and getting started experiences.
__

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #dependencies

Filed under: UncategorizedTagged with: , , , , ,

tipi.build A New C++ Package Manager – by Damien Buhl – CppCon 2022

  • Lobby
  • Tag Archives: packagemanager

https://cppcon.digital-medium.co.uk/tag/cppcon/">cppcon.org/
---

tipi.build a New C++ Package Manager - Damien Buhl - CppCon 2022
https://github.com/CppCon/CppCon2022

The considerable versatility of C++ paired to it's ever evolving nature has produced an incredibly powerful dynamic but highly fragmented tools and library ecosystem.

Build systems and new build scripting languages are flourishing, massive community efforts and developer time is invested in maintaining build and packages scripts.

In this talk we show how we build and dogfood a radically different approach to C++ builds and dependency management.

We show how this approach is promising to defragment the C++ ecosystem and tell about the crazy challenges and terrible bugs we encountered on real life projects.
---

Damien Buhl

Damien (aka daminetreg), co-founder and CEO from tipi.build is an enthusiast C++ developer. He is Opensource entrepreneur, CppCon Speaker, GameMaker.fr community founder, Qt for Android contributor and Boost.Fusion maintainer since 2014
__

Videos Filmed & Edited by Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon.digital-medium.co.uk/tag/cppcon/">cppcon #cppcon.digital-medium.co.uk/tag/programming/">programming #cpp

Filed under: UncategorizedTagged with: , , , ,

What’s New in Conan 2.0 C/C++ Package Manager – Diego Rodriguez-Losada – CppCon 2022

  • Lobby
  • Tag Archives: packagemanager

https://cppcon.org/
---

What's New in Conan 2.0 C/C++ Package Manager - Diego Rodriguez-Losada - CppCon 2022
https://github.com/CppCon/CppCon2022

During the 4+ years since Conan 1.0 was released, we have continued to learn from the C++ ecosystem as we watched it grow; learning many lessons, challenges and trends in the industry from the feedback from tens of thousands of conversations with users and customers, including many of the largest C++ related companies in the world. This talk summarizes some of these lessons, and how they have been used to create the new major version of Conan.

For example, while many advocate for header-only or always static linkage, the usage of shared libraries and especially shared libraries that link and embed other static libraries is a very common pattern in the industry. Conan 2 implements “requirement traits” that go beyond CMake private/public usage requirements, to allow specifying complex dependency graphs, including bootstrapping, cross-building with tools, private dependencies and much more.

Many teams produce libraries, applications, SDKs or other artifacts that need to be deployed or consumed by other teams with different technologies (like Java, Node, etc) and not using Conan. Conan 2 new “deployers”, which can be user defined, allow easy extraction of artifacts, as well as automation to create Debian packages, Windows installers or any other type of derived artifact.

There are many enterprise, very large C and C++, projects that need to manage binaries (Bills of Materials), not only to reduce build times, but also for traceability, security, industry policies, etc. Creating and managing binaries at scale is still a big challenge. Conan 2 provides much simpler “lockfiles” to allow full reproducibility of the dependency graph, a new custom user defined global binary compatibility mechanism, and a more accurate computation of what package binaries need to be rebuilt when some dependency changes.

Finally, we learned that package management is yet another piece in a larger DevOps, Continuous Integration, automation, and developer experience puzzle, and many users have been building different layers of automation over Conan. So Conan 2 releases a new public Python API (around 65% of users are already using Python for automation of C and C++), and new custom defined modular commands to extend the Conan CLI.
---

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. 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 Bash Films: http://www.BashFilms.com
YouTube Channel Managed by Digital Medium Ltd https://events.digital-medium.co.uk

#cppcon #programming #conan

Filed under: UncategorizedTagged with: , , , ,