diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6c080094513d30d478ae28cd58245408a364101b..0ffce50ffc32f9e136adc25ef1fb4309667eab04 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -39,6 +39,10 @@ set(ARB_VALIDATION_DATA_DIR "${PROJECT_SOURCE_DIR}/validation/data" CACHE PATH
 
 option(ARB_USE_POSIX_GLOB "wrap POSIX glob(3) for glob functionality" ON)
 
+# Use libunwind to generate stack traces on errors?
+
+option(ARB_UNWIND "Use libunwind for stack trace printing if available" OFF)
+
 #----------------------------------------------------------
 # Configure-time features for Arbor:
 #----------------------------------------------------------
@@ -275,15 +279,17 @@ if(ARB_WITH_GPU)
         $<$<COMPILE_LANGUAGE:CUDA>:-gencode=arch=compute_70,code=sm_70>)
 endif()
 
-# Use libunwind if available for pretty printing stack traces
+# Use libunwind if requested for pretty printing stack traces
 #-------------------------------------------------------------
 
-find_package(Unwind)
-if(Unwind_FOUND)
-    target_link_libraries(arbor-private-deps INTERFACE Unwind::unwind)
-    target_compile_definitions(arbor-private-deps INTERFACE WITH_UNWIND)
+if (ARB_UNWIND)
+    find_package(Unwind REQUIRED)
+    if(Unwind_FOUND)
+        target_link_libraries(arbor-private-deps INTERFACE Unwind::unwind)
+        target_compile_definitions(arbor-private-deps INTERFACE WITH_UNWIND)
 
-    list(APPEND arbor_export_dependencies "Unwind")
+        list(APPEND arbor_export_dependencies "Unwind")
+    endif()
 endif()
 
 # Build and use modcc unless explicit path given