[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