diff --git a/CMakeLists.txt b/CMakeLists.txt index 25e66a6c99..862a363f98 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -92,15 +92,22 @@ endif() # Ensure the flag for PIC is added for NVCC if (CUDA AND CUDA_FOUND) if (SHARED) - if(${COMPILER} STREQUAL GNU OR ${COMPILER} STREQUAL CLANG) + # For aarch64, -fPIC (uppercase) is required. + if (CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") set(CPPTRAJ_NVCC_PIC_FLAG "--compiler-options -fPIC") + message(STATUS "System is aarch64, forcing -fPIC for CUDA.") else() - set(CPPTRAJ_NVCC_PIC_FLAG "--compiler-options -fpic") + if(${COMPILER} STREQUAL GNU OR ${COMPILER} STREQUAL CLANG) + set(CPPTRAJ_NVCC_PIC_FLAG "--compiler-options -fpic") + else() + set(CPPTRAJ_NVCC_PIC_FLAG "--compiler-options -fPIC") + endif() endif() - message(STATUS "Set CUDA PIC flag ${CPPTRAJ_NVCC_PIC_FLAG}") + + message(STATUS "Set CUDA PIC flag: ${CPPTRAJ_NVCC_PIC_FLAG}") list(APPEND CUDA_NVCC_FLAGS ${CPPTRAJ_NVCC_PIC_FLAG}) else() - message(STATUS "Not setting CUDA PIC flag") + message(STATUS "Not a SHARED build, not setting CUDA PIC flag.") endif() endif()