[arrayfire] 15/26: Display if a backend is enabled or not when building examples and tests
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Tue Jul 7 13:59:23 UTC 2015
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to branch master
in repository arrayfire.
commit 31016e9cfa245ba9adbb9f654786ca701fbdaeb3
Author: Pavan Yalamanchili <pavan at arrayfire.com>
Date: Wed Jun 24 11:15:29 2015 -0400
Display if a backend is enabled or not when building examples and tests
---
examples/CMakeLists.txt | 97 ++++++++++++++++++++++++++++++-------------------
test/CMakeLists.txt | 15 ++++++--
2 files changed, 72 insertions(+), 40 deletions(-)
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
index e448046..0c66486 100644
--- a/examples/CMakeLists.txt
+++ b/examples/CMakeLists.txt
@@ -3,8 +3,8 @@ PROJECT(arrayfire-examples)
# Find CUDA and OpenCL
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules")
-FIND_PACKAGE(CUDA)
-FIND_PACKAGE(OpenCL)
+FIND_PACKAGE(CUDA QUIET)
+FIND_PACKAGE(OpenCL QUIET)
# If the examples are not being built at the same time as ArrayFire,
# we need to first find the ArrayFire library
@@ -41,56 +41,79 @@ ENDIF(WIN32)
# A macro to build an ArrayFire example
# For most uses only FIND_PACKAGE(ArrayFire REQUIRED), ADD_EXECUTABLE(...)
# and TARGET_LINK_LIBRARIES(... ${ARRAYFIRE_LIBRARIES}) are needed
-MACRO(BUILD_EXAMPLE EXAMPLE_NAME EXAMPLE_SOURCE BACKEND_NAME BACKEND_LIBRARIES OTHER_LIBRARIES)
-
+MACRO(BUILD_EXAMPLE EXAMPLE_NAME EXAMPLE_SOURCE BACKEND_NAME BACKEND_LIBRARIES OTHER_LIBRARIES OUT_DIR_NAME)
ADD_EXECUTABLE(example_${EXAMPLE_NAME}_${BACKEND_NAME} ${EXAMPLE_SOURCE})
TARGET_LINK_LIBRARIES(example_${EXAMPLE_NAME}_${BACKEND_NAME}
${BACKEND_LIBRARIES} ${OTHER_LIBRARIES})
SET_TARGET_PROPERTIES(example_${EXAMPLE_NAME}_${BACKEND_NAME}
PROPERTIES
OUTPUT_NAME ${EXAMPLE_NAME}_${BACKEND_NAME}
- RUNTIME_OUTPUT_DIRECTORY ${DIR_NAME}
+ RUNTIME_OUTPUT_DIRECTORY ${OUT_DIR_NAME}
FOLDER "Examples/${BACKEND_NAME}")
ENDMACRO()
+# A macro to build a list of files
+# For most uses only FIND_PACKAGE(ArrayFire REQUIRED), ADD_EXECUTABLE(...)
+# and TARGET_LINK_LIBRARIES(... ${ARRAYFIRE_LIBRARIES}) are needed
+MACRO(BUILD_ALL FILES BACKEND_NAME BACKEND_LIBRARIES OTHER_LIBRARIES)
+
+ FOREACH(FILE ${FILES})
+ GET_FILENAME_COMPONENT(EXAMPLE ${FILE} NAME_WE)
+ GET_FILENAME_COMPONENT(FULL_DIR_NAME ${FILE} PATH)
+ GET_FILENAME_COMPONENT(DIR_NAME ${FULL_DIR_NAME} NAME)
+
+ BUILD_EXAMPLE(${EXAMPLE} ${FILE} ${BACKEND_NAME} "${BACKEND_LIBRARIES}" "${OTHER_LIBRARIES}" ${DIR_NAME})
+ ENDFOREACH()
+ENDMACRO()
+
# Collect the source
FILE(GLOB FILES "*/*.cpp")
ADD_DEFINITIONS("-DASSETS_DIR=\"${ASSETS_DIR}\"")
-FOREACH(FILE ${FILES})
- GET_FILENAME_COMPONENT(EXAMPLE ${FILE} NAME_WE)
- GET_FILENAME_COMPONENT(FULL_DIR_NAME ${FILE} PATH)
- GET_FILENAME_COMPONENT(DIR_NAME ${FULL_DIR_NAME} NAME)
-
- # Next we build each example using every backend.
- if(${ArrayFire_CPU_FOUND}) # variable defined by FIND(ArrayFire ...)
- BUILD_EXAMPLE(${EXAMPLE} ${FILE} cpu ${ArrayFire_CPU_LIBRARIES} "")
- elseif(TARGET afcpu) # variable defined by the ArrayFire build tree
- BUILD_EXAMPLE(${EXAMPLE} ${FILE} cpu afcpu "")
- endif()
+# Next we build each example using every backend.
+if(${ArrayFire_CPU_FOUND}) # variable defined by FIND(ArrayFire ...)
+ MESSAGE(STATUS "EXAMPLES: CPU backend is ON.")
+ BUILD_ALL("${FILES}" cpu ${ArrayFire_CPU_LIBRARIES} "")
+elseif(TARGET afcpu) # variable defined by the ArrayFire build tree
+ MESSAGE(STATUS "EXAMPLES: CPU backend is ON.")
+ BUILD_ALL("${FILES}" cpu afcpu "")
+else()
+ MESSAGE(STATUS "EXAMPLES: CPU backend is OFF. afcpu was not found.")
+endif()
- if (${CUDA_FOUND})
- if(${ArrayFire_CUDA_FOUND}) # variable defined by FIND(ArrayFire ...)
- FIND_LIBRARY( CUDA_NVVM_LIBRARY
- NAMES "nvvm"
- PATH_SUFFIXES "nvvm/lib64" "nvvm/lib"
- PATHS ${CUDA_TOOLKIT_ROOT_DIR}
- DOC "CUDA NVVM Library"
- )
- BUILD_EXAMPLE(${EXAMPLE} ${FILE} cuda ${ArrayFire_CUDA_LIBRARIES} "${CUDA_CUBLAS_LIBRARIES};${CUDA_LIBRARIES};${CUDA_cusolver_LIBRARY};${CUDA_CUFFT_LIBRARIES};${CUDA_NVVM_LIBRARY};${CUDA_CUDA_LIBRARY}")
- elseif(TARGET afcuda) # variable defined by the ArrayFire build tree
- BUILD_EXAMPLE(${EXAMPLE} ${FILE} cuda afcuda "")
- endif()
- endif()
+if (${CUDA_FOUND})
+ if(${ArrayFire_CUDA_FOUND}) # variable defined by FIND(ArrayFire ...)
+ FIND_LIBRARY( CUDA_NVVM_LIBRARY
+ NAMES "nvvm"
+ PATH_SUFFIXES "nvvm/lib64" "nvvm/lib"
+ PATHS ${CUDA_TOOLKIT_ROOT_DIR}
+ DOC "CUDA NVVM Library"
+ )
+ MESSAGE(STATUS "EXAMPLES: CUDA backend is ON.")
+ BUILD_ALL("${FILES}" cuda ${ArrayFire_CUDA_LIBRARIES} "${CUDA_CUBLAS_LIBRARIES};${CUDA_LIBRARIES};${CUDA_cusolver_LIBRARY};${CUDA_CUFFT_LIBRARIES};${CUDA_NVVM_LIBRARY};${CUDA_CUDA_LIBRARY}")
+ elseif(TARGET afcuda) # variable defined by the ArrayFire build tree
+ MESSAGE(STATUS "EXAMPLES: CUDA backend is ON.")
+ BUILD_ALL("${FILES}" cuda afcuda "")
+ else()
+ MESSAGE(STATUS "EXAMPLES: CUDA backend is OFF. afcuda was not found")
+ endif()
+else()
+ MESSAGE(STATUS "EXAMPLES: CUDA backend is OFF. CUDA was not found")
+endif()
- if (${OpenCL_FOUND})
- if(${ArrayFire_OpenCL_FOUND}) # variable defined by FIND(ArrayFire ...)
- BUILD_EXAMPLE(${EXAMPLE} ${FILE} opencl ${ArrayFire_OpenCL_LIBRARIES} "${OpenCL_LIBRARIES}")
- elseif(TARGET afopencl) # variable defined by the ArrayFire build tree
- BUILD_EXAMPLE(${EXAMPLE} ${FILE} opencl afopencl ${OpenCL_LIBRARIES})
- endif()
- endif()
-ENDFOREACH()
+if (${OpenCL_FOUND})
+ if(${ArrayFire_OpenCL_FOUND}) # variable defined by FIND(ArrayFire ...)
+ MESSAGE(STATUS "EXAMPLES: OPENCL backend is ON.")
+ BUILD_ALL("${FILES}" opencl ${ArrayFire_OpenCL_LIBRARIES} "${OpenCL_LIBRARIES}")
+ elseif(TARGET afopencl) # variable defined by the ArrayFire build tree
+ MESSAGE(STATUS "EXAMPLES: OPENCL backend is ON.")
+ BUILD_ALL("${FILES}" opencl afopencl ${OpenCL_LIBRARIES})
+ else()
+ MESSAGE(STATUS "EXAMPLES: OPENCL backend is OFF. afopencl was not found")
+ endif()
+else()
+ MESSAGE(STATUS "EXAMPLES: OPENCL backend is OFF. OPENCL was not found")
+endif()
INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DESTINATION "${AF_INSTALL_EXAMPLE_DIR}"
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 760a943..b0bdbff 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -1,8 +1,9 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
REMOVE_DEFINITIONS(-std=c++11)
-FIND_PACKAGE(CUDA)
-FIND_PACKAGE(OpenCL)
+FIND_PACKAGE(CUDA QUIET)
+FIND_PACKAGE(OpenCL QUIET)
+
MACRO(CREATE_TESTS BACKEND GTEST_LIBS OTHER_LIBS)
STRING(TOUPPER ${BACKEND} DEF_NAME)
@@ -79,11 +80,14 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
FILE(GLOB FILES "*.cpp" "*.c")
IF(${BUILD_CPU})
+ MESSAGE(STATUS "TESTS: CPU backend is ON")
CREATE_TESTS(cpu "${GTEST_LIBRARIES}" "")
+ELSE()
+ MESSAGE(STATUS "TESTS: CPU backend is OFF")
ENDIF()
IF(${BUILD_CUDA} AND ${CUDA_FOUND})
- FIND_PACKAGE(CUDA REQUIRED)
+ MESSAGE(STATUS "TESTS: CUDA backend is ON")
IF("${APPLE}" AND ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND ${CUDA_VERSION_MAJOR} VERSION_LESS 7)
CREATE_TESTS(cuda "${GTEST_LIBRARIES_STDLIB}" "")
FOREACH(FILE ${FILES})
@@ -95,8 +99,13 @@ IF(${BUILD_CUDA} AND ${CUDA_FOUND})
ELSE("${APPLE}" AND ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND ${CUDA_VERSION_MAJOR} VERSION_LESS 7)
CREATE_TESTS(cuda "${GTEST_LIBRARIES}" "")
ENDIF("${APPLE}" AND ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" AND ${CUDA_VERSION_MAJOR} VERSION_LESS 7)
+ELSE()
+ MESSAGE(STATUS "TESTS: CUDA backend is OFF")
ENDIF()
IF(${BUILD_OPENCL} AND ${OpenCL_FOUND})
+ MESSAGE(STATUS "TESTS: OPENCL backend is ON")
CREATE_TESTS(opencl "${GTEST_LIBRARIES}" "${OpenCL_LIBRARIES}")
+ELSE()
+ MESSAGE(STATUS "TESTS: OPENCL backend is OFF")
ENDIF()
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/arrayfire.git
More information about the debian-science-commits
mailing list