HomeCommunityTools, Software and IDEs blog
October 7, 2019

Driving C/C++ Developer use cases for Arm with Conan

Conan is an open source platform manager for C/C++ which can be used by developers to simplify complex build environments.

By Bhumik Patel

Share
Reading time 2 minutes

Conan is an open source, decentralized and multi-platform package manager for C/C++. It enables developers to encapsulate C/C++ project dependencies, distribute them, and consume them in other projects. Conan is fully backed by Jfrog. For developers, using Conan simplifies their complex build environments which typically have many dependencies. Software development activities on Arm Neoverse platforms are increasingly driven by massive amounts of IoT based data explosion & unprecedented number of devices getting connected. This is causing transformational change in the IoT gateway and edge compute platforms requiring them to be more general purpose in nature and hosting multiple applications. These development activities for edge computing on Arm platforms are now further simplified with easily access to Amazon EC2 A1 instances that feature 64-bit Arm Neoverse cores. 

Arm Forge & Arm Compiler uses Conan

Arm Forge provides developers with tools to debug, fix and profile programs at any scale to accelerate software development activities. It is part of Arm Allinea Studio  which provides high performance tools for Arm-based server and high-performance computing (HPC) applications. Our team uses Conan in conjunction with the JFrog Artifactory as universal Artifact Repository Manager. Additionally, Arm C/C++ Compiler & Arm Fortran Compiler teams also use Conan as part of their internal development efforts. The Arm C/C++ Compiler enables the development of highly efficient C/C++ software powering development activities for billions of devices. The Arm Fortran compiler is tuned for HPC workloads running on 64-bit Arm based platforms.  

 Arm Forge has a large number of third-party dependencies that needed to be patched on multiple Linux distributions and on multiple processor architectures. A subset of these were built on macOS and Windows. Prior to adopting Conan and Artifactory, the team faced a few significant issues with their build process:  

  • Unreliable build process employed to build various releases  
  • Inefficiencies in build process resulting in synchronization issues while rebuilding code and investigating bugs  
  • Wastage of builds for the project with same code built for various feature branches  

 Using Conan provided a single method of managing these dependencies and synchronization simplified the build process significantly.  

 As part of internal development activities, Conan provides following benefits: 

  • Native aarch64 support  
  • Ability to manage large number of code dependencies 
  • Reduced build times
  • Versioning reliability and ability to upgrade without disruptions 
  • Consistent interface across different platforms such as RedHat, Ubuntu & Windows  
  • Simplicity for developers in making changes and rebuilds 
  • Extensive community contributions and support for Conan 
  • Support for custom tool chain requirements  
  • Easy for team to modify Conan recipes and get quick feedback via extensive online documentation 
  • Conan uses Python which is well known within our teams 

 All of these benefits make it efficient and reliable for developers to natively develop C/C++ code on Arm including development for HPC libraries. These are just two examples of how Conan is used as a package manager for C/C++ development activities on Arm platforms. There are many other use cases in various industries. We are interested to hear about your projects and activities that involve C/C++ development on Arm that can benefit from Conan. 

Contact Bhumik Patel

 

 


Log in to like this post
Share

Article text

Re-use is only permitted for informational and non-commercial or personal use only.

placeholder