Please rotate your tablet to be horizontal.

You can dismiss this notice but please note that this experience has not been designed for mobile devices and so will be less than optimal

Back To Schedule

Cross-Building Strategies in the Age of C++ Package Managers

16:45 - 17:45 Thursday 15th September 2022 MDT Summit 1 / Online E
Advanced
Expert
Debugging & Logging & Testing

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

SW Tech LeadJFrog

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.