On Sun, Jan 4, 2015 at 3:02 PM, Rolf Eike Beer e...@sf-mail.de wrote:
Mark Abraham wrote:
Hi,
The FindCUDA.cmake module since v3.0 has had a bug because it assumes
that
when cross compiling that CMAKE_SYSTEM_PROCESSOR will be defined. That
definition is documented as optional at
http://www.vtk.org/Wiki/CMake_Cross_Compiling, and the module can't
work if
it happens to be undefined. Attached patch
wraps the uses of CMAKE_SYSTEM_PROCESSOR in quotes so that interpolation
will lead to the intended behaviour in all cases.
The easier and better fix would be to just remove the dereference, i.e.
if (… CMAKE_SYSTEM_PROCESSOR MATCHES arm …)
Hi,
True, once you look at the minutae of if(... MATCHES ...) :-)
Updated patch attached.
Mark
Eike
--
From cc313f608775d4c3f68c0a106a3054aa3f7a7075 Mon Sep 17 00:00:00 2001
From: Mark Abraham mark.j.abra...@gmail.com
Date: Sun, 4 Jan 2015 14:37:51 +0100
Subject: [PATCH] Fix FindCUDA.cmake assumption about cross-compiling
CMAKE_SYSTEM_PROCESSOR is not guaranteed to be defined (per
http://www.vtk.org/Wiki/CMake_Cross_Compiling), and when cross
compiling where it happens to be undefined, this module was broken.
---
Modules/FindCUDA.cmake | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Modules/FindCUDA.cmake b/Modules/FindCUDA.cmake
index 29bb875..ecfc781 100644
--- a/Modules/FindCUDA.cmake
+++ b/Modules/FindCUDA.cmake
@@ -613,7 +613,7 @@ endif()
set(CUDA_VERSION_STRING ${CUDA_VERSION})
# Support for arm cross compilation with CUDA 5.5
-if(CUDA_VERSION VERSION_GREATER 5.0 AND CMAKE_CROSSCOMPILING AND ${CMAKE_SYSTEM_PROCESSOR} MATCHES arm AND EXISTS ${CUDA_TOOLKIT_ROOT_DIR}/targets/armv7-linux-gnueabihf)
+if(CUDA_VERSION VERSION_GREATER 5.0 AND CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_PROCESSOR MATCHES arm AND EXISTS ${CUDA_TOOLKIT_ROOT_DIR}/targets/armv7-linux-gnueabihf)
set(CUDA_TOOLKIT_TARGET_DIR ${CUDA_TOOLKIT_ROOT_DIR}/targets/armv7-linux-gnueabihf CACHE PATH Toolkit target location.)
else()
set(CUDA_TOOLKIT_TARGET_DIR ${CUDA_TOOLKIT_ROOT_DIR} CACHE PATH Toolkit target location.)
@@ -621,7 +621,7 @@ endif()
mark_as_advanced(CUDA_TOOLKIT_TARGET_DIR)
# Target CPU architecture
-if(CUDA_VERSION VERSION_GREATER 5.0 AND CMAKE_CROSSCOMPILING AND ${CMAKE_SYSTEM_PROCESSOR} MATCHES arm)
+if(CUDA_VERSION VERSION_GREATER 5.0 AND CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_PROCESSOR MATCHES arm)
set(_cuda_target_cpu_arch_initial ARM)
else()
set(_cuda_target_cpu_arch_initial )
--
2.2.1
--
Powered by www.kitware.com
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Kitware offers various services to support the CMake community. For more
information on each offering, please visit:
CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers