2021-01-02 15:10:28 +08:00
|
|
|
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
|
2019-02-25 18:11:01 +08:00
|
|
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
|
|
|
#
|
|
|
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
|
|
|
|
|
|
|
from spack import *
|
|
|
|
|
|
|
|
|
2020-07-15 11:23:07 +08:00
|
|
|
class Acts(CMakePackage, CudaPackage):
|
2019-02-25 18:11:01 +08:00
|
|
|
"""
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
A Common Tracking Software (Acts)
|
2019-02-25 18:11:01 +08:00
|
|
|
|
|
|
|
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/"
|
2020-03-30 23:48:36 +08:00
|
|
|
git = "https://github.com/acts-project/acts.git"
|
2019-11-25 21:33:16 +08:00
|
|
|
maintainers = ['HadrienG2']
|
2019-02-25 18:11:01 +08:00
|
|
|
|
2020-11-19 01:07:35 +08:00
|
|
|
tags = ['hep']
|
|
|
|
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
# Supported Acts versions
|
2021-05-20 00:28:31 +08:00
|
|
|
version('main', branch='main')
|
|
|
|
version('master', branch='main', deprecated=True) # For compatibility
|
|
|
|
version('8.02.0', commit='f25cf639915fc2ac65b03882ad3eb11fb037ed00')
|
2021-05-05 19:09:53 +08:00
|
|
|
version('8.01.0', commit='ccc8c77bbc011f3adc020c565a509815be0ea029')
|
|
|
|
version('8.00.0', commit='50c972823144c007b406ae12d7ca25a1e0c35532')
|
2021-04-17 14:03:57 +08:00
|
|
|
version('7.00.0', commit='e663df7ab023bdb5ef206202efc2e54ccb71d416')
|
2021-03-20 17:34:14 +08:00
|
|
|
version('6.00.0', commit='a5cf04acd4b1a2c625e0826189109472a3392558')
|
2021-02-04 03:50:28 +08:00
|
|
|
version('5.00.0', commit='df77b91a7d37b8db6ed028a4d737014b5ad86bb7')
|
2021-01-19 02:49:19 +08:00
|
|
|
version('4.01.0', commit='c383bf434ef69939b47e840e0eac0ba632e6af9f')
|
2020-12-25 12:45:50 +08:00
|
|
|
version('4.00.0', commit='ed64b4b88d366b63adc4a8d1afe5bc97aa5751eb')
|
2020-12-17 21:27:06 +08:00
|
|
|
version('3.00.0', commit='e20260fccb469f4253519d3f0ddb3191b7046db3')
|
2020-11-17 03:28:55 +08:00
|
|
|
version('2.00.0', commit='8708eae2b2ccdf57ab7b451cfbba413daa1fc43c')
|
|
|
|
version('1.02.1', commit='f6ebeb9a28297ba8c54fd08b700057dd4ff2a311')
|
2020-10-15 20:13:55 +08:00
|
|
|
version('1.02.0', commit='e69b95acc9a264e63aded7d1714632066e090542')
|
2020-10-11 09:08:19 +08:00
|
|
|
version('1.01.0', commit='836fddd02c3eff33825833ff97d6abda5b5c20a0')
|
2020-09-22 21:05:59 +08:00
|
|
|
version('1.00.0', commit='ec9ce0bcdc837f568d42a12ddf3fc9c80db62f5d')
|
2020-09-09 15:44:44 +08:00
|
|
|
version('0.32.0', commit='a4cedab7e727e1327f2835db29d147cc86b21054')
|
2020-08-18 17:55:45 +08:00
|
|
|
version('0.31.0', commit='cfbd901555579a2f32f4efe2b76a7048442b42c3')
|
2020-08-18 10:04:17 +08:00
|
|
|
version('0.30.0', commit='a71ef0a9c742731611645214079884585a92b15e')
|
2020-07-28 00:13:56 +08:00
|
|
|
version('0.29.0', commit='33aa3e701728112e8908223c4a7fd521907c8ea4')
|
2020-07-23 00:14:51 +08:00
|
|
|
version('0.28.0', commit='55626b7401eeb93fc562e79bcf385f0ad0ac48bf')
|
2020-07-22 01:56:18 +08:00
|
|
|
version('0.27.1', commit='8ba3010a532137bc0ab6cf83a38b483cef646a01')
|
|
|
|
version('0.27.0', commit='f7b1a1c27d5a95d08bb67236ad0e117fcd1c679f')
|
2020-07-21 14:37:21 +08:00
|
|
|
version('0.26.0', commit='cf542b108b31fcc349fc18fb0466f889e4e42aa6')
|
2020-07-15 11:23:07 +08:00
|
|
|
version('0.25.2', commit='76bf1f3e4be51d4d27126b473a2caa8d8a72b320')
|
|
|
|
version('0.25.1', commit='6e8a1ea6d2c7385a78e3e190efb2a8a0c1fa957f')
|
|
|
|
version('0.25.0', commit='0aca171951a214299e8ff573682b1c5ecec63d42')
|
2020-05-20 02:16:57 +08:00
|
|
|
version('0.24.0', commit='ef4699c8500bfea59a5fe88bed67fde2f00f0adf')
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
version('0.23.0', commit='dc443dd7e663bc4d7fb3c1e3f1f75aaf57ffd4e4')
|
|
|
|
version('0.22.1', commit='ca1b8b1645db6b552f44c48d2ff34c8c29618f3a')
|
2020-04-21 05:08:44 +08:00
|
|
|
version('0.22.0', commit='2c8228f5843685fc0ae69a8b95dd8fc001139efb')
|
2020-04-08 06:00:01 +08:00
|
|
|
version('0.21.0', commit='10b719e68ddaca15b28ac25b3daddce8c0d3368d')
|
2020-03-30 23:48:36 +08:00
|
|
|
version('0.20.0', commit='1d37a849a9c318e8ca4fa541ef8433c1f004637b')
|
2020-03-25 17:49:53 +08:00
|
|
|
version('0.19.0', commit='408335636486c421c6222a64372250ef12544df6')
|
2020-03-20 17:06:45 +08:00
|
|
|
version('0.18.0', commit='d58a68cf75b52a5e0f563bc237f09250aa9da80c')
|
2020-03-13 20:57:32 +08:00
|
|
|
version('0.17.0', commit='0789f654ff484b013fd27e5023cf342785ea8d97')
|
2020-02-10 18:06:56 +08:00
|
|
|
version('0.16.0', commit='b3d965fe0b8ae335909d79114ef261c6b996773a')
|
2020-01-26 02:35:53 +08:00
|
|
|
version('0.15.0', commit='267c28f69c561e64369661a6235b03b5a610d6da')
|
|
|
|
version('0.14.0', commit='38d678fcb205b77d60326eae913fbb1b054acea1')
|
2019-12-20 23:05:48 +08:00
|
|
|
version('0.13.0', commit='b33f7270ddbbb33050b7ec60b4fa255dc2bfdc88')
|
|
|
|
version('0.12.1', commit='a8b3d36e7c6cb86487637589e0eff7bbe626054a')
|
2019-12-17 00:25:37 +08:00
|
|
|
version('0.12.0', commit='f9cda77299606d78c889fb1db2576c1971a271c4')
|
2019-11-27 22:18:49 +08:00
|
|
|
version('0.11.1', commit='c21196cd6c3ecc6da0f14d0a9ef227a274be584b')
|
2019-11-25 21:33:16 +08:00
|
|
|
version('0.11.0', commit='22bcea1f19adb0021ca61b843b95cfd2462dd31d')
|
2019-11-05 01:43:45 +08:00
|
|
|
version('0.10.5', commit='b6f7234ca8f18ee11e57709d019c14bf41cf9b19')
|
2019-10-15 03:01:53 +08:00
|
|
|
version('0.10.4', commit='42cbc359c209f5cf386e620b5a497192c024655e')
|
|
|
|
version('0.10.3', commit='a3bb86b79a65b3d2ceb962b60411fd0df4cf274c')
|
|
|
|
version('0.10.2', commit='64cbf28c862d8b0f95232b00c0e8c38949d5015d')
|
2019-06-19 02:00:02 +08:00
|
|
|
version('0.10.1', commit='0692dcf7824efbc504fb16f7aa00a50df395adbc')
|
|
|
|
version('0.10.0', commit='30ef843cb00427f9959b7de4d1b9843413a13f02')
|
2019-10-15 03:01:53 +08:00
|
|
|
version('0.09.5', commit='12b11fe8b0d428ccb8e92dda7dc809198f828672')
|
|
|
|
version('0.09.4', commit='e5dd9fbe179201e70347d1a3b9fa1899c226798f')
|
|
|
|
version('0.09.3', commit='a8f31303ee8720ed2946bfe2d59e81d0f70e307e')
|
2019-06-19 02:00:02 +08:00
|
|
|
version('0.09.2', commit='4e1f7fa73ffe07457080d787e206bf6466fe1680')
|
|
|
|
version('0.09.1', commit='69c451035516cb683b8f7bc0bab1a25893e9113d')
|
|
|
|
version('0.09.0', commit='004888b0a412f5bbaeef2ffaaeaf2aa182511494')
|
|
|
|
version('0.08.2', commit='c5d7568714e69e7344582b93b8d24e45d6b81bf9')
|
|
|
|
version('0.08.1', commit='289bdcc320f0b3ff1d792e29e462ec2d3ea15df6')
|
|
|
|
version('0.08.0', commit='99eedb38f305e3a1cd99d9b4473241b7cd641fa9')
|
2019-02-25 18:11:01 +08:00
|
|
|
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
# Variants that affect the core Acts library
|
2020-02-10 18:06:56 +08:00
|
|
|
variant('benchmarks', default=False, description='Build the performance benchmarks')
|
2019-02-25 18:11:01 +08:00
|
|
|
variant('examples', default=False, description='Build the examples')
|
|
|
|
variant('integration_tests', default=False, description='Build the integration tests')
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
variant('unit_tests', default=False, description='Build the unit tests')
|
2021-03-20 17:34:14 +08:00
|
|
|
variant('log_failure_threshold', default='MAX', description='Log level above which examples should auto-crash')
|
2019-02-25 18:11:01 +08:00
|
|
|
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
# Variants that enable / disable Acts plugins
|
2020-10-15 20:13:55 +08:00
|
|
|
variant('autodiff', default=False, description='Build the auto-differentiation plugin')
|
2019-02-25 18:11:01 +08:00
|
|
|
variant('dd4hep', default=False, description='Build the DD4hep plugin')
|
2020-02-10 18:06:56 +08:00
|
|
|
variant('digitization', default=False, description='Build the geometric digitization plugin')
|
|
|
|
variant('fatras', default=False, description='Build the FAst TRAcking Simulation package')
|
2021-03-20 17:34:14 +08:00
|
|
|
variant('fatras_geant4', default=False, description='Build Geant4 Fatras package')
|
2019-02-25 18:11:01 +08:00
|
|
|
variant('identification', default=False, description='Build the Identification plugin')
|
|
|
|
variant('json', default=False, description='Build the Json plugin')
|
2020-02-10 18:06:56 +08:00
|
|
|
variant('legacy', default=False, description='Build the Legacy package')
|
2020-12-25 12:45:50 +08:00
|
|
|
# FIXME: Cannot build ONNX plugin as Spack doesn't have an ONNX runtime
|
2020-09-09 15:44:44 +08:00
|
|
|
# FIXME: Cannot build SyCL plugin yet as Spack doesn't have SyCL support
|
2019-02-25 18:11:01 +08:00
|
|
|
variant('tgeo', default=False, description='Build the TGeo plugin')
|
|
|
|
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
# Variants that only affect Acts examples for now
|
|
|
|
variant('geant4', default=False, description='Build the Geant4-based examples')
|
|
|
|
variant('hepmc3', default=False, description='Build the HepMC3-based examples')
|
|
|
|
variant('pythia8', default=False, description='Build the Pythia8-based examples')
|
|
|
|
|
|
|
|
# Build dependencies
|
2020-10-15 20:13:55 +08:00
|
|
|
# FIXME: Use spack's autodiff package once there is one
|
2019-10-15 03:01:53 +08:00
|
|
|
depends_on('boost @1.62:1.69.99 +program_options +test', when='@:0.10.3')
|
2021-01-19 02:49:19 +08:00
|
|
|
depends_on('boost @1.71: +filesystem +program_options +test', when='@0.10.4:')
|
|
|
|
depends_on('cmake @3.14:', type='build')
|
|
|
|
depends_on('dd4hep @1.11:', when='+dd4hep')
|
|
|
|
depends_on('dd4hep @1.11: +geant4', when='+dd4hep +geant4')
|
|
|
|
depends_on('eigen @3.3.7:', type='build')
|
2021-03-20 17:34:14 +08:00
|
|
|
depends_on('geant4', when='+fatras_geant4')
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
depends_on('geant4', when='+geant4')
|
2021-01-19 02:49:19 +08:00
|
|
|
depends_on('hepmc3 @3.2.1:', when='+hepmc3')
|
|
|
|
depends_on('heppdt', when='+hepmc3 @:4.0')
|
|
|
|
depends_on('intel-tbb @2020.1:', when='+examples')
|
2021-03-20 17:34:14 +08:00
|
|
|
depends_on('nlohmann-json @3.9.1:', when='@0.14: +json')
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
depends_on('pythia8', when='+pythia8')
|
2019-02-25 18:11:01 +08:00
|
|
|
depends_on('root @6.10: cxxstd=14', when='+tgeo @:0.8.0')
|
2021-01-19 02:49:19 +08:00
|
|
|
depends_on('root @6.20: cxxstd=17', when='+tgeo @0.8.1:')
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
|
|
|
|
# Some variant combinations do not make sense
|
2020-10-15 20:13:55 +08:00
|
|
|
conflicts('+autodiff', when='@:1.01')
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
conflicts('+benchmarks', when='@:0.15')
|
|
|
|
conflicts('+dd4hep', when='-tgeo')
|
|
|
|
conflicts('+examples', when='@:0.22')
|
|
|
|
conflicts('+examples', when='-digitization')
|
|
|
|
conflicts('+examples', when='-fatras')
|
|
|
|
conflicts('+examples', when='-identification')
|
|
|
|
conflicts('+examples', when='-json')
|
|
|
|
conflicts('+examples', when='-tgeo')
|
|
|
|
conflicts('+fatras', when='@:0.15')
|
|
|
|
conflicts('+geant4', when='@:0.22')
|
|
|
|
conflicts('+geant4', when='-examples')
|
|
|
|
conflicts('+hepmc3', when='@:0.22')
|
|
|
|
conflicts('+hepmc3', when='-examples')
|
|
|
|
conflicts('+pythia8', when='@:0.22')
|
|
|
|
conflicts('+pythia8', when='-examples')
|
|
|
|
conflicts('+tgeo', when='-identification')
|
2020-11-13 03:08:12 +08:00
|
|
|
conflicts('%gcc@:7', when='@0.23:')
|
2019-02-25 18:11:01 +08:00
|
|
|
|
|
|
|
def cmake_args(self):
|
|
|
|
spec = self.spec
|
|
|
|
|
|
|
|
def cmake_variant(cmake_label, spack_variant):
|
|
|
|
enabled = spec.satisfies('+' + spack_variant)
|
|
|
|
return "-DACTS_BUILD_{0}={1}".format(cmake_label, enabled)
|
|
|
|
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
def example_cmake_variant(cmake_label, spack_variant):
|
|
|
|
enabled = spec.satisfies('+examples +' + spack_variant)
|
|
|
|
return "-DACTS_BUILD_EXAMPLES_{0}={1}".format(cmake_label, enabled)
|
|
|
|
|
2020-09-09 15:44:44 +08:00
|
|
|
def plugin_label(plugin_name):
|
|
|
|
if spec.satisfies('@0.33:'):
|
|
|
|
return "PLUGIN_" + plugin_name
|
|
|
|
else:
|
|
|
|
return plugin_name + "_PLUGIN"
|
|
|
|
|
|
|
|
def plugin_cmake_variant(plugin_name, spack_variant):
|
|
|
|
return cmake_variant(plugin_label(plugin_name), spack_variant)
|
|
|
|
|
2020-02-10 18:06:56 +08:00
|
|
|
integration_tests_label = "INTEGRATIONTESTS"
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
unit_tests_label = "UNITTESTS"
|
2020-09-09 15:44:44 +08:00
|
|
|
legacy_plugin_label = "LEGACY_PLUGIN"
|
|
|
|
if spec.satisfies('@:0.15'):
|
2020-02-10 18:06:56 +08:00
|
|
|
integration_tests_label = "INTEGRATION_TESTS"
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
unit_tests_label = "TESTS"
|
2020-09-09 15:44:44 +08:00
|
|
|
if spec.satisfies('@:0.32'):
|
|
|
|
legacy_plugin_label = "LEGACY"
|
2020-02-10 18:06:56 +08:00
|
|
|
|
2019-02-25 18:11:01 +08:00
|
|
|
args = [
|
2020-10-15 20:13:55 +08:00
|
|
|
plugin_cmake_variant("AUTODIFF", "autodiff"),
|
2020-02-10 18:06:56 +08:00
|
|
|
cmake_variant("BENCHMARKS", "benchmarks"),
|
2020-09-09 15:44:44 +08:00
|
|
|
plugin_cmake_variant("CUDA", "cuda"),
|
|
|
|
plugin_cmake_variant("DD4HEP", "dd4hep"),
|
|
|
|
plugin_cmake_variant("DIGITIZATION", "digitization"),
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
cmake_variant("EXAMPLES", "examples"),
|
|
|
|
example_cmake_variant("DD4HEP", "dd4hep"),
|
|
|
|
example_cmake_variant("GEANT4", "geant4"),
|
|
|
|
example_cmake_variant("HEPMC3", "hepmc3"),
|
|
|
|
example_cmake_variant("PYTHIA8", "pythia8"),
|
2020-02-10 18:06:56 +08:00
|
|
|
cmake_variant("FATRAS", "fatras"),
|
2021-03-20 17:34:14 +08:00
|
|
|
cmake_variant("FATRAS_GEANT4", "fatras_geant4"),
|
2020-09-09 15:44:44 +08:00
|
|
|
plugin_cmake_variant("IDENTIFICATION", "identification"),
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
cmake_variant(integration_tests_label, "integration_tests"),
|
2020-09-09 15:44:44 +08:00
|
|
|
plugin_cmake_variant("JSON", "json"),
|
Adapt to the latest Acts developments (#16385)
* Adapt to the latest Acts developments
A long time ago, the Acts project (whose name was then capitalized ACTS) used
to maintain multiple software repositories:
- The heart of the tracking toolkit was located in the `acts-core` repository
- Fast simulation extensions were located in the `acts-fatras` repository
- Advanced usage examples were located in the `acts-framework` repository
This multi-repository organization, however, has been a source of constant
pain, which is why the various projects were gradually merged into a single
mono-repo, called `acts`. Today, with the integration of `acts-framework`,
this merging process is reaching completion.
The present pull request adapts the Acts package to this evolution by...
- Renaming the package to `acts`, reflecting the new repository name
- Renaming the `test` variant to `unit_tests`, reflecting current CMake naming
- Adding the new build variants that were inherited from `acts-framework`
- Acknowledging the change of semantics of the `examples` variant, and only
supporting the new ones (as the former variant was almost unused)
- Liberally using alphabetical order to make the package code more readable
- Recording a large number of conflicts, some of which are introduced by the
merging of `acts-framework` and some of which already existed before
- Using the new capitalization of "Acts"
* Add acts v0.23
* Update dd4hep version requirement
* Add acts v0.22.1 bugfix
2020-05-07 21:40:31 +08:00
|
|
|
cmake_variant(unit_tests_label, "unit_tests"),
|
2020-09-09 15:44:44 +08:00
|
|
|
cmake_variant(legacy_plugin_label, "legacy"),
|
|
|
|
plugin_cmake_variant("TGEO", "tgeo")
|
2019-02-25 18:11:01 +08:00
|
|
|
]
|
2019-05-30 02:45:09 +08:00
|
|
|
|
2021-03-20 17:34:14 +08:00
|
|
|
log_failure_threshold = spec.variants['log_failure_threshold'].value
|
|
|
|
args.append("-DACTS_LOG_FAILURE_THRESHOLD={0}".format(log_failure_threshold))
|
|
|
|
|
2020-07-15 11:23:07 +08:00
|
|
|
cuda_arch = spec.variants['cuda_arch'].value
|
|
|
|
if cuda_arch != 'none':
|
|
|
|
args.append('-DCUDA_FLAGS=-arch=sm_{0}'.format(cuda_arch[0]))
|
|
|
|
|
2019-05-30 02:45:09 +08:00
|
|
|
if 'root' in spec:
|
|
|
|
cxxstd = spec['root'].variants['cxxstd'].value
|
|
|
|
args.append("-DCMAKE_CXX_STANDARD={0}".format(cxxstd))
|
|
|
|
|
2020-10-15 20:13:55 +08:00
|
|
|
# FIXME: Once we can use spack's autodiff package, set
|
|
|
|
# ACTS_USE_SYSTEM_AUTODIFF too.
|
2020-09-09 15:44:44 +08:00
|
|
|
if spec.satisfies('@0.33: +json'):
|
|
|
|
args.append("-DACTS_USE_SYSTEM_NLOHMANN_JSON=ON")
|
|
|
|
elif spec.satisfies('@0.14.0: +json'):
|
2020-01-26 02:35:53 +08:00
|
|
|
args.append("-DACTS_USE_BUNDLED_NLOHMANN_JSON=OFF")
|
|
|
|
|
2019-02-25 18:11:01 +08:00
|
|
|
return args
|