diff --git a/var/spack/repos/builtin/packages/kokkos/package.py b/var/spack/repos/builtin/packages/kokkos/package.py index b5277e40a8ec6c857b48cfa8dedaa380860d4269..cf949befbd59fc4767d11c8431277fb45d5c71e8 100644 --- a/var/spack/repos/builtin/packages/kokkos/package.py +++ b/var/spack/repos/builtin/packages/kokkos/package.py @@ -172,6 +172,8 @@ class Kokkos(CMakePackage, CudaPackage): conflicts("+wrapper", when="~cuda") variant("std", default="11", values=["11", "14", "17", "20"], multi=False) + variant("pic", default=False, description="Build position independent code") + # nvcc does not currently work with C++17 or C++20 conflicts("+cuda", when="std=17") conflicts("+cuda", when="std=20") @@ -208,6 +210,9 @@ def cmake_args(self): if isdiy: options.append("-DSpack_WORKAROUND=On") + if "+pic" in spec: + options.append("-DCMAKE_POSITION_INDEPENDENT_CODE=ON") + spack_microarches = [] if "+cuda" in spec: # this is a list