AliRoot Implementation of native CMake build system A. Grigoras, P. Hristov 19/11/20141Alice - CMake.

Slides:



Advertisements
Similar presentations
Building Localized Applications with Microsoft.NET Framework and Visual Studio.NET Achim Ruopp International Program Manager Microsoft Corp.
Advertisements

Regional Partner Meeting April 27th PHPEdit extension for eZ publish.
Lecture 3 Getting Started with ITK!. Goals for this lecture Learn how to use Cmake Build ITK Example programs that use ITK.
Programming with Android: SDK install and initial setup Luca Bedogni Marco Di Felice Dipartimento di Informatica: Scienza e Ingegneria Università di Bologna.
Amanda Silver Director of Program Management Visual Studio Tools for Client Applications Cross-Platform Development using Visual Studio.
Shake Before Building Replacing Make with Haskell community.haskell.org/~ndm/shake Neil Mitchell.
Code Composer Studio TM Integrated Development Environment v2 First Intelligent IDE To Offer DSP Application Development For Multi-Processor, Multi-User,
AJAX & By – Anupama Sharma. Defining Ajax Ajax isn’t a technology. It’s really several technologies, each flourishing in its own right, coming together.
Installing Hugs on Windows March 31, Installing Hugs Go to Click on the Hugs link under implementations.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Matlab, R and Other Jobs in CHTC. chtc.cs.wisc.edu No suitable R No Matlab runtime Missing shared libraries Missing compilers … Running On Bare Bones.
Unit VI. Keil µVision3/4 IDE for 8051 Tool for embedded firmware development Steps for using keil.
Chapter 2 Build Your First Project A Step-by-Step Approach 2 Exploring Microsoft Visual Basic 6.0 Copyright © 1999 Prentice-Hall, Inc. By Carlotta Eaton.
SCRAM Software Configuration, Release And Management Background SCRAM has been developed to enable large, geographically dispersed and autonomous groups.
OpenTS for Windows Compute Cluster Server. Overview  Introduction  OpenTS (academic) for Windows CCS  T-converter  T-microkernel  OpenTS installer.
CCA Port, Component & Application Build Skeleton Templates “A new script toolkit for generating CCA build skeletons” Torsten Wilde and James Kohl Oak Ridge.
1 I-Logix Professional Services Specialist Rhapsody IDF (Interrupt Driven Framework) CPU External Code RTOS OXF Framework Rhapsody Generated.
1 CSC 427: Data Structures and Algorithm Analysis Fall 2011 See online syllabus (also available through BlueLine): Course goals:
Trilinos User Group Meeting Thursday, November 8 th, 2007 Timothy M. Shead (1424) Danny Dunlavy (1415) SAND P Sandia is a multiprogram laboratory.
DELTA TAU Data Systems, Inc. 1 UMAC TurboTurbo PMAC PCIGeo Drive Single Source Machine Control motion logic data Power PMAC Project Management November.
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
July 29, 2003Serguei Mokhov, 1 Makefile Brief Reference COMP 229, 346, 444, 5201 Revision 1.2 Date: July 18, 2004.
CS Tutorial 1 Getting Started with Visual Studio 2012 (Visual Studio 2010 are no longer available on MSDNAA, please choose Visual Studio 2012 which.
CSnake C++ build automation based on CMake and Python Maarten Nieber, 2009.
T HE S MART IDE Group 6 – Zach Cowell, Ben Butler, Casey Corder, Arthur Otieno.
Lecture Set 2 Part B – Configuring Visual Studio; Configuration Options and The Help System (scan quickly for future reference)
Geant4 Installation Supported platforms:  Scientific Linux with gcc 4.1.2/4.6  Mac Os X 10.7 and 10.8 with gcc 4.21  Windows7 with Visual Studio.
Tutorial build Main ideas –Reuse as much previously obtained configuration information as possible: from Babel, cca-spec-babel, etc. –Extract all irrelevant.
Installing CompuCell3D from source Maciej Swat Biocomplexity Institute, Indiana University.
NA-MIC National Alliance for Medical Image Computing Slicer Building and Deployment Steve Pieper, PhD.
1Offline Weekly Meeting May May 2006 AliRoot Build Integration and (Testing) System Peter Hristov Vagner Morais.
System Programming - LAB 1 Programming Environments.
Common Set of Tools for Assimilation of Data COSTA Data Assimilation Summer School, Sibiu, 6 th August 2009 COSTA An Introduction Nils van Velzen
CMake refactoring P. Hristov 19/03/2014. History I  Recursive makefiles (F.Carminati):  Problems in dependencies  Slow  "Recursive Makefiles.
1 / 22 AliRoot and AliEn Build Integration and Testing System.
Developing software and hardware in parallel Vladimir Rubanov ISP RAS.
Chapter 0 Overview. Why you are here? Where will you go? What is this course for?
CSE 232: C++ Programming in Visual Studio Graphical Development Environments for C++ Eclipse –Widely available open-source debugging environment Available.
15/06/2006 The Future of Visual DCT EPICS Collaboration 2006 Argonne National Laboratory
C++ and Ubuntu Linux Review and Practice CS 244 Brent M. Dingle, Ph.D. Game Design and Development Program Department of Mathematics, Statistics, and.
1 Getting Started with C++. 2 Objective You will be able to create, compile, and run a very simple C++ program on Windows, using Visual Studio 2008.
Evolution of VisualDCT Jaka Bobnar Matej Sekoranja Igor Verstovsek
1 MSTE Visual SourceSafe For more information, see:
1 How to Install OpenGL u Software running under Microsoft Windows makes extensive use of "dynamic link libraries." A dynamic link library (DLL) is a set.
Building Packages BCIS 3680 Enterprise Programming.
Systems Design.  Application Design  User Interface Design  Database Design.
Separate distribution of the analysis code (and more) P. Hristov 19/03/2014.
Single Node Optimization Computational Astrophysics.
1 Getting Started with C++ Part 1 Windows. 2 Objective You will be able to create, compile, and run a very simple C++ program on Windows, using Microsoft.
Open project in Microsoft Visual Studio → build program in “Release” mode.
Marco Cattaneo, 26-Jan LHCb OO course  Format of course Current format Can we improve?  Some messages from the course Very selective What I still.
Build Tools 1. Building a program for a large project is usually managed by a build tool that controls the various steps involved. These steps may include:
Program Libraries 1. What is a program library? A library is a collection of implementations of behavior, written in terms of a language, that has a well-defined.
Trees: New Developments1 Trees: New Developments Folders and Tasks ROOT Workshop 2001 June 13 FNAL Ren é Brun CERN
Ravi Mathur January 8,  What does CMake NOT do? ◦ Doesn’t compile (gcc, MSVC, llvm, make) ◦ Doesn’t manage source code (XCode, Visual Studio) ◦
OSSIM Technology Overview Mark Lucas. “Awesome” Open Source Software Image Map (OSSIM)
PHENIX Simulation System 1 September 8, 1999 Simulation Work-in-Progress: ROOT-in-PISA Indrani Ojha Banaras Hindu University and Vanderbilt.
MAY 18, 2016 BARRY SMITH MATHEMATICS AND COMPUTER SCIENCE DIVISION ARGONNE NATIONAL LABORATORY WEBINAR SERIES: COLLABORATION AMONG THE IDEAS SCIENTIFIC.
1 Copyright © 2008, Oracle. All rights reserved. Repository Basics.
CMake: Experience in ALICE P. Hristov 19/06/12. History I Recursive makefiles (F.Carminati): – Problems in dependencies – Slow "Recursive Makefiles.
CMake - Cross-Platform Make R. Douglas Barbieri Made to Order Software Corporation.
The GWB installation directory must be in your Path
Build and Test system for FairRoot
iPad Mobile Surgical Console
Comments, Prototypes, Headers & Multiple Source Files
File Management.
Social Media And Global Computing Creating DLLs with Visual Studio
Microsoft Connect /17/2019 9:04 AM
Presentation transcript:

AliRoot Implementation of native CMake build system A. Grigoras, P. Hristov 19/11/20141Alice - CMake

CMake open-source system that manages the build process independent of the operating system and compiler designed to be used in conjunction with the native build environment (Makefiles, Visual Studio, XCode) in-place and out-of-place builds, support for multiple builds from a single source tree support for complex directory hierarchies and dependencies Focuses on organizing a project in a hierarchy of folders generates project files for major IDEs: Visual Studio, Xcode, Eclipse, Kdevelop works with parallel make and it is fast Very active community providing extensions and documentation 19/11/2014Alice - CMake2

AliRoot – current CMake Put in production in July 2008 Rough translation of the previous Makefiles to Cmake Installation done inside the source tree Using plenty of environment variables to control the build behavior Mixed build environment using source tree, build folder and install folder Following a one level folder hierarchy Folder per detector/feature More than one library in the same CMake file sharing the same environment Build controlled by centralized macros that leave little flexibility to the way the libraries are built. Missing Find macros or not fully implemented ones Dependencies not defined correctly Very difficult to debug 19/11/2014Alice - CMake3

AliRoot – native CMake Trying to follow best practices No environment variables, build is controlled only by CMake variables No more ALICE_ROOT, ROOTSYS, DATE_ROOT etc Always use -DCMAKE_INSTALL_PREFIX, -DROOTSYS, -DFASTJET, - DDATE_CONFIG etc Build always outside the source tree Always use –DCMAKE_INSTALL_PREFIX Source tree restructured to map the library tree TPC/TPCbase will contain a CMakeLists describing libTPCbase TPC will contain a CMakeLists that will include all the subfolders mapped to the TPC libraries Ability to custom control the build per library Setting compilation flags, link flags etc 19/11/2014Alice - CMake4

AliRoot – native CMake New Find macros, plus completely rewritten the existing ones New macro to generate the rootmaps for the dynamic library loading Completely new DA generation DA sources moved to a DA folder with its own CMakeLists file Build twice faster by reusing the existing objects Rpm generation 19/11/2014Alice - CMake5

AliRoot – native CMake Put in production at the same time with the AliRoot/AliPhysics split Full build/install documentation inside the source tree and webpage Development branch: splitdev Give it a try and help us test it! Questions, suggestions: 19/11/2014Alice - CMake6