Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:27:54

0001 # Copyright 2013-2022 Lawrence Livermore National Security, LLC and other
0002 # Spack Project Developers. See the top-level COPYRIGHT file for details.
0003 #
0004 # SPDX-License-Identifier: (Apache-2.0 OR MIT)
0005 
0006 from spack.package import *
0007 
0008 
0009 class Eicrecon(CMakePackage):
0010     """EIC Reconstruction - JANA based."""
0011 
0012     homepage = "https://github.com/eic/eicrecon"
0013     url = "https://github.com/eic/EICrecon/archive/refs/tags/v0.1.0.zip"
0014     git = "https://github.com/eic/eicrecon.git"
0015     list_url = "https://github.com/eic/EICrecon/tags"
0016 
0017     tags = ["eic"]
0018 
0019     maintainers = ["wdconinc"]
0020 
0021     version("main", branch="main")
0022     version("1.32.0", sha256="47ccd336984b0c01a43ca60859b0760b6576a045be0cd6de95bfa9f95f1df42e")
0023     version("1.31.0", sha256="d417ce403bb631d20b14d9ea65ac9203a6d049bb234f631a8912eeebf679ea65")
0024     version("1.30.2", sha256="127a05a448b777aca9f73e047ac8cca054a46f59821743d2e39c2c8ea4e18533")
0025     version("1.30.1", sha256="2cdbe2b20a26e35f7db15ab003fa99fdb7b16f14037381ba8c77bfe34b849bba")
0026     version("1.30.0", sha256="72b7af4521d83f454650a096b53936e795ca8292f7268100d392a217ec84e809")
0027     version("1.29.1", sha256="41999a3be2234a0d84f9b7b68fa34830b40845346cebb0f4e4121c8f6d006e56")
0028     version("1.29.0", sha256="434d64d61e4d497fbfca8f338f0345f831aae8dbdfc5cbcaf42b2f014e185b9a")
0029     version("1.28.0", sha256="3dc35a7e5bf0f2f9fb60a95fcf4ce2a940428553eb07b55f243058c5d3cb39f2")
0030     version("1.27.1", sha256="2e09004d6a6b45da7125a749350be3bd1af6c152f25fe1c731f2f5b30f6aec07")
0031     version("1.27.0", sha256="073d76da7540f2c8432f76925d66b38778b2aec8e57264cb8562d456b760ed3d")
0032     version("1.26.1", sha256="68022617abcdd00eaa2d8db941ebf53e2f9bdd180ae1398995b1c98406f2f019")
0033     version("1.26.0", sha256="032e9051602c24bdcd2536b24f600a7a25268e1798fcfe1798ed8fa26538a379")
0034     version("1.25.0", sha256="ecef50842387c8fb25ea21faad474811ccc500290a38cd132f005684db09807e")
0035     version("1.24.2", sha256="19d6f0b81fdf631dbf1f9a73e798079a3a40ff7bfed5b25c2f3656cb8bc5aaeb")
0036     version("1.24.1", sha256="910d5098cc7c49c30656a53df241183b9f10b0bc1352472fca9dd803b1774cb2")
0037     version("1.24.0", sha256="c38a947b71be7de31d2148afdcacdfe13c112d693ecf6005d22e29bf41eb4137")
0038     version("1.23.1", sha256="952f1397af8c8555b67c7e34a0fc2641f836dfa92f050a2498c3b24b663b6e07")
0039     version("1.23.0", sha256="2ffabcc1ea16dfd9ef9f81304b19cd756d5ac65349b97ba4c595e25ff49ebb99")
0040     version("1.22.0", sha256="3206fd194d810a1f57ce378442ee9c9fae330cda8070777cb6db25f2f2145acf")
0041     version("1.21.0", sha256="4ef7b7144728019a5d7564067da8ac86d30347e6c4ff420efd58076e112bdde2")
0042     version("1.20.0", sha256="e0f87635330d7ab3abf5f2c39e26d4ef2cb428a7fe4e10ea712936de7712e394")
0043     version("1.19.0", sha256="db4cacba6f7c6818f15a0cfa83882a0ac3a8663dda28ee41c75adeeb6bd5425e")
0044     version("1.18.1", sha256="f4ca7e104fb8bfe960a7e339b67240d5885dcf248eb0bb6a5a81b928b2a58701")
0045     version("1.18.0", sha256="1110ba2bab25980c7ac843ffb07b00c9d5b30c270e5998d1cc755f2cc262ca5e")
0046     version("1.17.0", sha256="016b5e10f076e97d10d216a1952c9363d97f9b8f8fd8eb6a44fb49ed551d3eba")
0047     version("1.16.1", sha256="b0b98694f87c0b84fda5e3fe014e176e02881c5fb74a9e0bf1eb849d506a60c9")
0048     version("1.16.0", sha256="7296bf565ca787f7a4b538272c59a23e99469f8f2ed931698010def8169e9f6e")
0049     version("1.15.0", sha256="3a553bf9643828cd3b6e64c9324dc40b50c6c2cddb9ac618316afcc7529dc254")
0050     version("1.14.1", sha256="2a9445482d47b461ced8fcbaa8cf55903f4fec24d323b90b5fb3e9bc64c28f9e")
0051     version("1.14.0", sha256="f90e3a5bc55d7696f86a2b86cd38b585553b3e13bc0323ca4a2971688ecda58c")
0052     version("1.13.2", sha256="24ac2172b4834a2fa30ff13290e9c7c946f51472d57d4223711d2f86360eb926")
0053     version("1.13.1", sha256="66e9767e520ebcd6dc12f616d7a9e1262db0574e5b7e6a90df282ccd3e28612d")
0054     version("1.12.0", sha256="7b1fbf72a0756cd7338c179096c329b20611018b19e5fd73ce311e415adad47f")
0055     version("1.11.0", sha256="4442248864ed432762f267dc4d03eb1ddfecc3155d5b7c3d7f9a2dbc7b1427f7")
0056     version("1.10.0", sha256="f7469c5d62fd8614b1fb5a22be533d8fcc28ebdb955189f6b839caaac7a6be03")
0057     version("1.9.1", sha256="7d06d0fa14213525a06d5633b15d63d1c0827515a3e22f1e952e610cf90bb4d7")
0058     version("1.9.0", sha256="58c32f6953940277c4c01b563cac878b0aae01b09b88e7960d8500aa6080f745")
0059     version("1.8.1", sha256="7bc073d87fa6b619330bb3c1ce751e0535d04f9db3d04f13108b147759a29d6d")
0060     version("1.8.0", sha256="f0769d816e4119322e5429db9b9262ecb3cf8b140fa9f07707a6cdf5c77d0832")
0061     version("1.7.0", sha256="60732169f76d215ad111a9b34affb64b0f1adafa4aba372b53acb39fe50c6b07")
0062     version(
0063         "1.6.2",
0064         sha256="725d53bc4527486fd15d600b1bd329228502ef83c0ff118cc4600eac7cc2d148",
0065     )
0066     version(
0067         "1.6.1",
0068         sha256="fb3cffe9882d912288d40fcb0dc08a24bbe8adf57a53f05a7ab3559baa4c30cb",
0069     )
0070     version(
0071         "1.6.0",
0072         sha256="f099e4ad400b617f597ca7e1869b9fc5fb2ec6ab13af7dd66972b16ae194106d",
0073     )
0074     version(
0075         "1.5.1",
0076         sha256="3e77b6fc5dfa269f782bb8b3e33112f3cb7c7be9459a8efa6996c189463fad6e",
0077     )
0078     version(
0079         "1.5.0",
0080         sha256="b91339f39747ebda4e52a0e9d65e3af36e0e5d626335120dd73afe7a1bf0af62",
0081     )
0082     version(
0083         "1.4.1",
0084         sha256="3587fe257d8dcb6aa16a90ea6ab23a62b0894671fa91531a084611006719b234",
0085     )
0086     version(
0087         "1.4.0",
0088         sha256="714d5556499bbc067682970168fdd5e7a1b9ea3895f8153451032c5933747019",
0089     )
0090     version(
0091         "1.3.2",
0092         sha256="3abf080f8eb416ca6963ef9a1c5a039727119eea80d4eed2cceb8af3446bf9a2",
0093     )
0094     version(
0095         "1.3.1",
0096         sha256="e2acf781f34990f3602a078a65127b846f90a54dfbdbbdb63349931ed19e161e",
0097     )
0098     version(
0099         "1.3.0",
0100         sha256="b000c9f1f482b82c6a8b8f9daa5e7d4ce8c350fe09380f708d4c4077e22442bb",
0101     )
0102     version(
0103         "1.2.1",
0104         sha256="6a3ef0115a40369fc70c11218bccc957196730554f7ccf59da70e3dcdb12dcb9",
0105     )
0106     version(
0107         "1.2.0",
0108         sha256="89b1226248bca10ecb1677e065ffceae71921be0685988d66a0b7a0a13dbbbb3",
0109     )
0110     version(
0111         "1.1.1",
0112         sha256="05b7488481a6614b3a933786badd7b8f5eba97023047e35f63098ace427f5219",
0113     )
0114     version(
0115         "1.1.0",
0116         sha256="16bae53095bdf485824a6ff4b186b3f4435a21efd6ee3342604c0515cbf3ed4f",
0117     )
0118     version(
0119         "1.0.0",
0120         sha256="f7616b39150378ad8697e1b797edddce2f91181d1105b00b1dd66d618100c632",
0121     )
0122     version(
0123         "0.6.3",
0124         sha256="bd0bb106c4951fc472100538e6624eae1c9b568de4a2f35606b82f3bf462d0a2",
0125     )
0126     version(
0127         "0.6.2",
0128         sha256="47a0047f340f8c8384c01a97c69d85569084ce1b43941eabe69bd46e1dd4dadd",
0129     )
0130     version(
0131         "0.6.1",
0132         sha256="a1ec19101cb283d8af06c9236a069a6a9652bbd480be43f59a9612319567897b",
0133     )
0134     version(
0135         "0.6.0",
0136         sha256="498585c4ed5a4f5e8371bcb14971278aa2d5dce1d6fa15f03bb49164594ecaa6",
0137     )
0138     version(
0139         "0.5.4",
0140         sha256="79f4618ac2de44a876a13196790c9ce9d6e26bade4e71b44385cff321dedf18d",
0141     )
0142     version(
0143         "0.5.3",
0144         sha256="722988227f3b9f42932ee246a4bf28478d1221aa534e47eee1638c2a23198ebb",
0145     )
0146     version(
0147         "0.5.2",
0148         sha256="1a449ac1d93da6c85b52f2f1ff2f1d71034a00a437e48b261878a2380f3c7b33",
0149     )
0150     version(
0151         "0.5.1",
0152         sha256="546f4ceb05b957a5189ef1ccb3ff20f73c794a9e5d8f2b34eaa3ce8bfeade154",
0153     )
0154     version(
0155         "0.5.0",
0156         sha256="741836e51949168f1a542a3a1bb15735c54d997de158e1ef4adcf6ef12bfa269",
0157     )
0158     version(
0159         "0.4.2",
0160         sha256="ffc2ccee5a4634af10719966b41d464e95c67447efa79def4745472e8407ddc0",
0161     )
0162     version(
0163         "0.4.1",
0164         sha256="2653d381ebf5edfbe2bd9c962017685408001ca01fb296f62643c2d9645a1f1d",
0165     )
0166     version(
0167         "0.4.0",
0168         sha256="0b7e2cef2427110151b76711bc0e02aa44cfce055f96507bad64561206ccb4de",
0169     )
0170     version(
0171         "0.3.7",
0172         sha256="6499661af54703b280410b4bd71324aea756379fca269eaed53f047d1acb0475",
0173     )
0174     version(
0175         "0.3.6.2",
0176         sha256="a6a3e12a8fc98355b8a469d5fb5d789839bdbb0e403e376e00ffee7fa5603341",
0177     )
0178     version(
0179         "0.3.6.1",
0180         sha256="bc38b1b354dd9fbe97e98ddd4bc677aee6173121240df77ade8db1f680eb82a4",
0181     )
0182     version(
0183         "0.3.6",
0184         sha256="dac1ad140d0f9cd7d86e7df3fb2160f430b7971b20339281658b86c4450321d9",
0185     )
0186     version(
0187         "0.3.5",
0188         sha256="59ab7f3dda714dcea461c60cc60ab47825c3f91729de0f4f390898b934bfb09b",
0189     )
0190     version(
0191         "0.3.4",
0192         sha256="00f8dd172f8ddf5a1c7630eccf0e70a3efc43429c873f7d05918735fb526a3d5",
0193     )
0194     version(
0195         "0.3.3",
0196         sha256="a5a4ca7b36c132ccd4c3505c083b48d701dd0c487e57fb19d839d99b8cec362f",
0197     )
0198     version(
0199         "0.3.2",
0200         sha256="e89d64181c3b988e920df99e97d433365f865f1063561d0098f2ccfd13c5f5f5",
0201     )
0202     version(
0203         "0.3.1",
0204         sha256="3c153f8fbf06212b55a15cd34243bd9712e344163781bbbf8504d1a0a435646b",
0205     )
0206     version(
0207         "0.3.0",
0208         sha256="2efe99ea82c6f93cab1d9db32243c5c4138a3e32e7c051c1a206de9d59dd58d9",
0209     )
0210     version(
0211         "0.2.8",
0212         sha256="6c64f845566dc7b1cecaf4250193495256dce9f5c6a6d2742c35ce7fa882ba11",
0213     )
0214     version(
0215         "0.2.7",
0216         sha256="afcb8addea452c610b7ab1e5bfc179e062de0f1407605a7ae36b68bc55a2bc3a",
0217     )
0218     version(
0219         "0.2.6",
0220         sha256="819982d86cfb6f51661eb113af7eba337adda8d694cabfcd79dfc7f794f73226",
0221     )
0222     version(
0223         "0.2.5",
0224         sha256="c87970284130590049e4b40ad595fceab31daf22143e7e1afb08836b8c68170c",
0225     )
0226     version(
0227         "0.2.4",
0228         sha256="d8c55f54767f783eea8bf4939ef837fc73373ed71bd1509fdd5ae46aca4d8fa5",
0229     )
0230     version(
0231         "0.2.3",
0232         sha256="2660cb18272a932555ee1f690bcd904335feb1a6d8969859834307b24a937fd0",
0233     )
0234     version(
0235         "0.2.2",
0236         sha256="de8e5ef71465027226debfe4d42b8a4f883ffcb03ce2bfee0a0d247a4a1e89f2",
0237     )
0238     version(
0239         "0.2.1",
0240         sha256="097fef82cacd45453770f30e7e0ae382a11660b8bd4dfe478e7488a8988b8816",
0241     )
0242     version(
0243         "0.2.0",
0244         sha256="3fc0b812637d6bca9587cb4dadcd4b2ca386458ff6d46551ed8cf291335b4780",
0245     )
0246     version(
0247         "0.1.0",
0248         sha256="dcc8b60530a627c825413c07472659ba155600339ef8b8e742e3c997bcc504ae",
0249     )
0250 
0251     variant("asan", default=False, description="Enable address sanitizer")
0252     variant("lsan", default=False, description="Enable leak sanitizer", when="+asan")
0253     variant("tsan", default=False, description="Enable thread sanitizer")
0254     variant("ubsan", default=False, description="Enable undefined behavior sanitizer")
0255 
0256     depends_on("cxx", type="build")
0257     depends_on("cmake@3.16:", type="build")
0258 
0259     depends_on("jana2 +root +zmq")
0260     depends_on("dd4hep +ddrec +edm4hep")
0261     depends_on("edm4eic")
0262     depends_on("edm4hep")
0263     depends_on("podio")
0264 
0265     depends_on("acts +dd4hep +identification +tgeo", when="@:1.15")
0266     depends_on("acts +dd4hep +json", when="@1.16:")
0267     depends_on("acts@30:", when="@1.8:")
0268     depends_on("acts@:30", when="@:1.9.0")
0269 
0270     depends_on("root")
0271     depends_on("fastjet")
0272     depends_on("fjcontrib", when="@1.13:")
0273     depends_on("fmt")
0274     depends_on("irt", when="@0.2.8:")
0275     depends_on("irt2", when="@1.33.0:")
0276     depends_on("spdlog")
0277     depends_on("catch2", when="@1.0.0:")
0278     depends_on("cppgsl", when="@1.7:")
0279     depends_on("algorithms", when="@1.7:")
0280     depends_on("py-onnxruntime", when="@1.13:")
0281 
0282     def cmake_args(self):
0283         return [
0284             self.define("VERSION", self.version),
0285             self.define_from_variant("USE_ASAN", "asan"),
0286             self.define_from_variant("USE_TSAN", "tsan"),
0287             self.define_from_variant("USE_UBSAN", "ubsan"),
0288         ]
0289 
0290     def setup_run_environment(self, env):
0291         env.prepend_path(
0292             "JANA_PLUGIN_PATH", join_path(self.prefix, "lib", "EICrecon", "plugins")
0293         )
0294 
0295         if self.spec.satisfies("+asan"):
0296             env.set(
0297                 "ASAN_OPTIONS",
0298                 (
0299                     f"suppressions={self.prefix}/share/EICrecon/asan.supp:"
0300                     "malloc_context_size=20:detect_leaks=1:verify_asan_link_order=0:"
0301                     "detect_stack_use_after_return=1:detect_odr_violation=1:"
0302                     "new_delete_type_mismatch=0:intercept_tls_get_addr=0"
0303                 ),
0304             )
0305 
0306         if self.spec.satisfies("+lsan"):
0307             env.set(
0308                 "LSAN_OPTIONS",
0309                 (
0310                     f"suppressions={self.prefix}/share/EICrecon/lsan.supp"
0311                 ),
0312             )
0313 
0314         if self.spec.satisfies("+ubsan"):
0315             env.set(
0316                 "UBSAN_OPTIONS",
0317                 (
0318                     f"suppressions={self.prefix}/share/EICrecon/ubsan.supp:"
0319                     "print_stacktrace=1:silence_unsigned_overflow=1:"
0320                     "report_error_type=1"
0321                 ),
0322             )