summaryrefslogtreecommitdiff
path: root/external/clBLAS/src/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'external/clBLAS/src/CMakeLists.txt')
-rw-r--r--external/clBLAS/src/CMakeLists.txt345
1 files changed, 0 insertions, 345 deletions
diff --git a/external/clBLAS/src/CMakeLists.txt b/external/clBLAS/src/CMakeLists.txt
deleted file mode 100644
index 5dfc3dbf..00000000
--- a/external/clBLAS/src/CMakeLists.txt
+++ /dev/null
@@ -1,345 +0,0 @@
-# ########################################################################
-# Copyright 2013 Advanced Micro Devices, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# ########################################################################
-
-cmake_minimum_required(VERSION 2.8)
-
-#User toggle-able options that can be changed on the command line with -D
-option( BUILD_RUNTIME "Build the BLAS runtime library" ON )
-option( BUILD_TEST "Build the library testing suite (dependency on google test, Boost, and ACML)" OFF )
-option( BUILD_PERFORMANCE "Copy the performance scripts that can measure and graph performance" OFF )
-option( BUILD_SAMPLE "Build the sample programs" OFF )
-option( BUILD_CLIENT "Build a command line clBLAS client program with a variety of configurable parameters (dependency on Boost)" OFF )
-option( BUILD_KTEST "A command line tool for testing single clBLAS kernel" OFF )
-option( BUILD_SHARED_LIBS "Build shared libraries" ON )
-
-# By default test-correctness is linked and tested against ACML library.
-# However, test-correctness can instead use NETLIB as a reference library
-set(CORR_TEST_WITH_ACML ON CACHE BOOL "Use ACML library in correctness tests")
-
-if( CMAKE_GENERATOR MATCHES "NMake" )
- option( NMAKE_COMPILE_VERBOSE "Print compile and link strings to the console" OFF )
- if( NMAKE_COMPILE_VERBOSE )
- set( CMAKE_START_TEMP_FILE "" )
- set( CMAKE_END_TEMP_FILE "" )
- set( CMAKE_VERBOSE_MAKEFILE 1 )
- endif( )
-endif( )
-
-# If we are on linux, and we wish to link with the netlib BLAS implementation, we need to have a valid fortran compiler
-if( NOT CORR_TEST_WITH_ACML AND NOT WIN32 AND NOT APPLE )
- project(clBLAS Fortran C CXX )
-else( )
- project(clBLAS C CXX)
-endif( )
-
-# Define a version for the code
-if( NOT DEFINED clBLAS_VERSION_MAJOR )
- set( clBLAS_VERSION_MAJOR 2 )
-endif( )
-
-if( NOT DEFINED clBLAS_VERSION_MINOR )
- set( clBLAS_VERSION_MINOR 3 )
-endif( )
-
-if( NOT DEFINED clBLAS_VERSION_PATCH )
- set( clBLAS_VERSION_PATCH 0 )
-endif( )
-
-set( clBLAS_VERSION "${clBLAS_VERSION_MAJOR}.${clBLAS_VERSION_MINOR}.${clBLAS_VERSION_PATCH}")
-
-# Increment this if we break backward compatibility.
-set( clBLAS_SOVERSION 2 )
-
-# We have custom written Find* modules now in the root source directory
-set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR} )
-
-# On windows, it's convenient to change the default install prefix such that it does NOT point to 'program files' (permissions problems)
-# Need to check out CMAKE_RUNTIME_OUTPUT_DIRECTORY variable, and see if that eliminates the need to modify install path
-if( WIN32 AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT )
- set( CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/package" CACHE PATH "Install path prefix, prepended onto install directories" FORCE )
-endif( )
-
-if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE Release CACHE STRING
- "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
- FORCE)
-endif()
-
-# These variables are meant to contain string which should be appended to the installation paths
-# of library and executable binaries, respectively. They are meant to be user configurable/overridable.
-set( SUFFIX_LIB_DEFAULT "" )
-set( SUFFIX_BIN_DEFAULT "" )
-
-if(TARGET_PLATFORM EQUAL 32 OR TARGET_PLATFORM EQUAL 64)
- set(TARGET_PLATFORM ${TARGET_PLATFORM} CACHE STRING "Target platform type (32-bit or 64-bit)" FORCE)
-else()
- if(CMAKE_SIZEOF_VOID_P MATCHES 8)
- set(TARGET_PLATFORM "64" CACHE STRING "Target platform type (32-bit or 64-bit)" FORCE)
- else()
- set(TARGET_PLATFORM "32" CACHE STRING "Target platform type (32-bit or 64-bit)" FORCE)
- endif()
-endif()
-
-message(STATUS "Target platform: ${TARGET_PLATFORM}-bit")
-if(TARGET_PLATFORM EQUAL 32)
- set(_arch "x86" INTERNAL)
- set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE)
-else()
- set(_arch "x86_64" INTERNAL)
- set_property(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE)
- if( NOT APPLE )
- set( SUFFIX_LIB_DEFAULT "64" )
- endif( )
-endif()
-
-set( SUFFIX_LIB ${SUFFIX_LIB_DEFAULT} CACHE STRING "String to append to 'lib' install path" )
-set( SUFFIX_BIN ${SUFFIX_BIN_DEFAULT} CACHE STRING "String to append to 'bin' install path" )
-
-if( MSVC_IDE )
- set_property( GLOBAL PROPERTY USE_FOLDERS TRUE )
-endif( )
-
-# add the math library for Linux
-if( UNIX )
- set(MATH_LIBRARY "m")
-endif()
-
-# Find the BLAS library
-# TODO: maybe this could be written using the FindBLAS module in the future
-if( BUILD_TEST )
- if(NOT CORR_TEST_WITH_ACML)
- if(APPLE)
- find_library(BLAS_LIBRARIES Accelerate)
- MARK_AS_ADVANCED(BLAS_LIBRARIES)
- message(STATUS "Using Accelerate framework on Mac OS-X")
- else()
- find_package( Netlib COMPONENTS BLAS REQUIRED )
- endif()
- else( )
- # Find ACML BLAS implementation
- # platform dependent ACML subdirectory
- if (WIN32)
- set(ACML_SUBDIR ifort${TARGET_PLATFORM}_mp)
- else()
- set(ACML_SUBDIR gfortran${TARGET_PLATFORM}_mp)
- endif()
-
- find_path(ACML_INCLUDE_DIRS acml.h
- HINTS
- ${ACML_ROOT}/include
- ${ACML_ROOT}/${ACML_SUBDIR}/include
- $ENV{ACML_ROOT}/include
- $ENV{ACML_ROOT}/${ACML_SUBDIR}/include
- )
-
- if( ACML_INCLUDE_DIRS )
- else()
- message(WARNING "Cannot find acml.h")
- endif()
-
- if( UNIX )
- find_library(ACML_LIBRARIES acml_mp
- HINTS
- ${ACML_ROOT}/lib
- ${ACML_ROOT}/${ACML_SUBDIR}/lib
- $ENV{ACML_ROOT}/lib
- $ENV{ACML_ROOT}/${ACML_SUBDIR}/lib
- )
- find_library(_acml_mv_library acml_mv
- HINTS
- ${ACML_ROOT}/lib
- ${ACML_ROOT}/${ACML_SUBDIR}/lib
- $ENV{ACML_ROOT}/lib
- $ENV{ACML_ROOT}/${ACML_SUBDIR}/lib
- )
- mark_as_advanced(_acml_mv_library)
- endif( )
-
- if(WIN32)
- find_library(ACML_LIBRARIES libacml_mp_dll
- HINTS
- ${ACML_ROOT}/lib
- ${ACML_ROOT}/${ACML_SUBDIR}/lib
- $ENV{ACML_ROOT}/lib
- $ENV{ACML_ROOT}/${ACML_SUBDIR}/lib
- )
- endif( )
-
- if( NOT ACML_LIBRARIES )
- message(WARNING "Cannot find libacml")
- endif( )
-
- if(ACML_INCLUDE_DIRS AND ACML_LIBRARIES)
- if(_acml_mv_library)
- list(APPEND ACML_LIBRARIES ${_acml_mv_library})
- endif()
- message(STATUS "Found ACML: ${ACML_LIBRARIES}")
- set(ACML_FOUND TRUE BOOL "Found the ACML package")
- endif()
- mark_as_advanced(ACML_FOUND ACML_INCLUDE_DIRS ACML_LIBRARIES)
-
- endif( )
-endif( )
-
-# This will define OPENCL_FOUND
-find_package( OpenCL )
-
-# Find Google Test package
-find_package( GTest )
-
-# Find Boost on the system, and configure the type of boost build we want
-set( Boost_USE_MULTITHREADED ON )
-set( Boost_USE_STATIC_LIBS ON )
-set( Boost_DETAILED_FAILURE_MSG ON )
-set( Boost_DEBUG ON )
-set( Boost_ADDITIONAL_VERSIONS "1.44.0" "1.44" "1.47.0" "1.47" )
-
-find_package( Boost 1.33.0 COMPONENTS program_options )
-message(STATUS "Boost_PROGRAM_OPTIONS_LIBRARY: ${Boost_PROGRAM_OPTIONS_LIBRARY}")
-
-
-if( NOT Boost_FOUND )
- message( STATUS "The clBLAS ktest requires boost to be installed" )
- set( BUILD_KTEST OFF )
- message( STATUS "The clBLAS client requires boost to be installed" )
- set( BUILD_CLIENT OFF )
-endif()
-
-# Turn on maximum compiler verbosity
-if(CMAKE_COMPILER_IS_GNUCXX)
- add_definitions(-pedantic -Wall -Wextra
- -D_POSIX_C_SOURCE=199309L -D_XOPEN_SOURCE=500
- )
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -Wstrict-prototypes" CACHE STRING
- "Default CFLAGS" FORCE)
- # Don't use -rpath.
- set(CMAKE_SKIP_RPATH ON CACHE BOOL "Skip RPATH" FORCE)
-
- set(CMAKE_C_FLAGS "-m${TARGET_PLATFORM} ${CMAKE_C_FLAGS}")
- set(CMAKE_CXX_FLAGS "-m${TARGET_PLATFORM} ${CMAKE_CXX_FLAGS}")
- set(CMAKE_Fortran_FLAGS "-m${TARGET_PLATFORM} ${CMAKE_Fortran_FLAGS}")
-
- if(TARGET_PLATFORM EQUAL 32)
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-builtin")
- endif()
-elseif( MSVC )
- # CMake sets huge stack frames for windows, for whatever reason. We go with compiler default.
- string( REGEX REPLACE "/STACK:[0-9]+" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}" )
- string( REGEX REPLACE "/STACK:[0-9]+" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}" )
- string( REGEX REPLACE "/STACK:[0-9]+" "" CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS}" )
-endif( )
-
-if (WIN32)
- add_definitions(-D_CRT_SECURE_NO_WARNINGS)
-endif( )
-
-#TODO: We should remove this pre-processor define for our 1.8 build; this means removing our deprecated image functions such as calls clCreateImage2D( )
-add_definitions( -DCL_USE_DEPRECATED_OPENCL_1_1_APIS )
-
-configure_file( "${PROJECT_SOURCE_DIR}/clBLAS.version.h.in" "${PROJECT_BINARY_DIR}/include/clBLAS.version.h" )
-
-# configure a header file to pass the CMake version settings to the source, and package the header files in the output archive
-install( FILES
- "clBLAS.h"
- "clAmdBlas.h"
- "clAmdBlas.version.h"
- "clBLAS-complex.h"
- "${PROJECT_BINARY_DIR}/include/clBLAS.version.h"
- DESTINATION
- "./include" )
-
-
-if( BUILD_CLIENT AND IS_DIRECTORY "${PROJECT_SOURCE_DIR}/client")
- add_subdirectory( client )
-endif( )
-
-if( BUILD_PERFORMANCE AND IS_DIRECTORY "${PROJECT_SOURCE_DIR}/scripts/perf" )
- add_subdirectory( scripts/perf )
-endif( )
-
-if( BUILD_RUNTIME AND IS_DIRECTORY "${PROJECT_SOURCE_DIR}/library" )
- add_subdirectory( library )
- add_subdirectory( library/tools/tune )
- if( BUILD_KTEST )
- add_subdirectory( library/tools/ktest )
- endif( )
-endif()
-
-if( BUILD_SAMPLE AND IS_DIRECTORY "${PROJECT_SOURCE_DIR}/samples" )
- add_subdirectory( samples )
-endif( )
-
-# The build server is not supposed to build or package any of the tests; build server script will define this on the command line with
-# cmake -G "Visual Studio 10 Win64" -D BUILDSERVER:BOOL=ON ../..
-if( BUILD_TEST )
- if( IS_DIRECTORY "${PROJECT_SOURCE_DIR}/tests" )
- add_subdirectory(tests)
- endif( )
-
- # These tests #include <getopts.h>, which is not windows compliant
- if (NOT WIN32 AND IS_DIRECTORY "${PROJECT_SOURCE_DIR}/library" )
- add_subdirectory( library/blas/gens/tests )
- add_subdirectory( library/blas/gens/legacy/tests )
- add_subdirectory( library/common/tests )
- endif( )
-endif( )
-
-if(WIN32)
- set(destdir CMake)
-else()
- set(destdir share/clBLAS)
-endif()
-string(REGEX REPLACE "[^/]+" ".." reldir "${destdir}")
-configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/clBLASConfigVersion.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/clBLASConfigVersion.cmake
- @ONLY)
-configure_file(
- ${CMAKE_CURRENT_SOURCE_DIR}/clBLASConfig.cmake.in
- ${CMAKE_CURRENT_BINARY_DIR}/clBLASConfig.cmake
- @ONLY)
-install(EXPORT Library DESTINATION ${destdir} FILE clBLASTargets.cmake)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/clBLASConfigVersion.cmake
- ${CMAKE_CURRENT_BINARY_DIR}/clBLASConfig.cmake
- DESTINATION ${destdir})
-
-
-# The following code is setting variables to control the behavior of CPack to generate our
-if( WIN32 )
- set( CPACK_SOURCE_GENERATOR "ZIP" )
- set( CPACK_GENERATOR "ZIP" )
-else( )
- set( CPACK_SOURCE_GENERATOR "TGZ" )
- set( CPACK_GENERATOR "TGZ" )
-endif( )
-
-if( TARGET_PLATFORM EQUAL 64 )
- set( CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${clBLAS_VERSION}-${CMAKE_HOST_SYSTEM_NAME}-x64")
-else( )
- set( CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${clBLAS_VERSION}-${CMAKE_HOST_SYSTEM_NAME}-x32")
-endif( )
-
-set( CPACK_SOURCE_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${clBLAS_VERSION}-${CMAKE_HOST_SYSTEM_NAME}-Source")
-
-set( CPACK_PACKAGE_VERSION_MAJOR ${clBLAS_VERSION_MAJOR} )
-set( CPACK_PACKAGE_VERSION_MINOR ${clBLAS_VERSION_MINOR} )
-set( CPACK_PACKAGE_VERSION_PATCH ${clBLAS_VERSION_PATCH} )
-set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "OpenCL implementation of a BLAS library")
-set( CPACK_PACKAGE_VENDOR "Neutral")
-set( CPACK_SOURCE_IGNORE_FILES "/\\\\.hg/;/\\\\.svn/;/\\\\.git/" )
-
-# Define all variables that influence CPack before including CPack, such as install targets
-include( CPack )