summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--var/spack/repos/builtin/packages/acts-core/package.py81
1 files changed, 81 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/acts-core/package.py b/var/spack/repos/builtin/packages/acts-core/package.py
new file mode 100644
index 0000000000..26252598cc
--- /dev/null
+++ b/var/spack/repos/builtin/packages/acts-core/package.py
@@ -0,0 +1,81 @@
+# Copyright 2013-2018 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+
+from spack import *
+
+
+class ActsCore(CMakePackage):
+ """
+ A Common Tracking Software (ACTS)
+
+ This project contains an experiment-independent set of track reconstruction
+ tools. The main philosophy is to provide high-level track reconstruction
+ modules that can be used for any tracking detector. The description of the
+ tracking detector's geometry is optimized for efficient navigation and
+ quick extrapolation of tracks. Converters for several common geometry
+ description languages exist. Having a highly performant, yet largely
+ customizable implementation of track reconstruction algorithms was a
+ primary objective for the design of this toolset. Additionally, the
+ applicability to real-life HEP experiments plays major role in the
+ development process. Apart from algorithmic code, this project also
+ provides an event data model for the description of track parameters and
+ measurements.
+
+ Key features of this project include: tracking geometry description which
+ can be constructed from TGeo, DD4Hep, or GDML input, simple and efficient
+ event data model, performant and highly flexible algorithms for track
+ propagation and fitting, basic seed finding algorithms.
+ """
+
+ homepage = "http://acts.web.cern.ch/ACTS/"
+ git = "https://gitlab.cern.ch/acts/acts-core.git"
+
+ version('develop', branch='master')
+ version('0.8.0', commit='99eedb38f305e3a1cd99d9b4473241b7cd641fa9') # Used by acts-framework
+ version('0.8.1', commit='289bdcc320f0b3ff1d792e29e462ec2d3ea15df6')
+
+ # Variants that affect the core ACTS library
+ variant('legacy', default=False, description='Build the Legacy package')
+ variant('examples', default=False, description='Build the examples')
+ variant('tests', default=False, description='Build the unit tests')
+ variant('integration_tests', default=False, description='Build the integration tests')
+
+ # Variants the enable / disable ACTS plugins
+ variant('digitization', default=False, description='Build the geometric digitization plugin')
+ variant('dd4hep', default=False, description='Build the DD4hep plugin')
+ variant('identification', default=False, description='Build the Identification plugin')
+ variant('json', default=False, description='Build the Json plugin')
+ variant('material', default=False, description='Build the material plugin')
+ variant('tgeo', default=False, description='Build the TGeo plugin')
+
+ depends_on('cmake @3.7:', type='build')
+ depends_on('boost @1.62: +program_options +test')
+ depends_on('eigen @3.2.9:', type='build')
+ depends_on('root @6.10: cxxstd=14', when='+tgeo @:0.8.0')
+ depends_on('root @6.10:', when='+tgeo @0.8.1:')
+ depends_on('dd4hep @1.2:', when='+dd4hep')
+
+ def cmake_args(self):
+ spec = self.spec
+ cxxstd = spec['root'].variants['cxxstd'].value
+
+ def cmake_variant(cmake_label, spack_variant):
+ enabled = spec.satisfies('+' + spack_variant)
+ return "-DACTS_BUILD_{0}={1}".format(cmake_label, enabled)
+
+ args = [
+ "-DCMAKE_CXX_STANDARD={0}".format(cxxstd),
+ cmake_variant("LEGACY", "legacy"),
+ cmake_variant("EXAMPLES", "examples"),
+ cmake_variant("TESTS", "tests"),
+ cmake_variant("INTEGRATION_TESTS", "integration_tests"),
+ cmake_variant("DIGITIZATION_PLUGIN", "digitization"),
+ cmake_variant("DD4HEP_PLUGIN", "dd4hep"),
+ cmake_variant("IDENTIFICATION", "identification"),
+ cmake_variant("JSON_PLUGIN", "json"),
+ cmake_variant("MATERIAL_PLUGIN", "material"),
+ cmake_variant("TGEO_PLUGIN", "tgeo")
+ ]
+ return args