ExternalProject_Add(nvshmem_device_project
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/device
BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/device
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DNVSHMEM_PREFIX=${NVSHMEM_PREFIX}
-DNVSHMEM_DEBUG=${NVSHMEM_DEBUG}
-DNVSHMEM_DEVICELIB_CUDA_HOME=${NVSHMEM_DEVICELIB_CUDA_HOME}
-DNVSHMEM_ENABLE_ALL_DEVICE_INLINING=${NVSHMEM_ENABLE_ALL_DEVICE_INLINING}
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_CUDA_HOST_COMPILER=${CMAKE_CUDA_HOST_COMPILER}
-DPROJECT_VERSION=${PROJECT_VERSION}
$ENV{CMAKE_CCACHE_FLAGS}
CMAKE_CACHE_ARGS ${my_cmake_cache_args}
STEP_TARGETS build install
BUILD_ALWAYS TRUE
BUILD_BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/lib/libnvshmem_device.a
)