blob: 17b291a8760689e7c04670ddbcbee8dcfc19b16a [file] [log] [blame]
cmake_minimum_required(VERSION 3.0)
project(CLCPP)
enable_testing()
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
option(BUILD_DOCS "Build Documentation" ON)
option(BUILD_EXAMPLES "Build Examples" ON)
option(BUILD_TESTS "Build Unit Tests" ON)
if(DEFINED ENV{AMDAPPSDKROOT})
set(OPENCL_DIST_DIR $ENV{AMDAPPSDKROOT} CACHE PATH "OpenCL source dir")
if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
set(OPENCL_LIB_DIR ${OPENCL_DIST_DIR}/lib/x86_64 )
else( CMAKE_SIZEOF_VOID_P EQUAL 8 )
set(OPENCL_LIB_DIR ${OPENCL_DIST_DIR}/lib/x86 )
endif( CMAKE_SIZEOF_VOID_P EQUAL 8 )
elseif(DEFINED ENV{INTELOCLSDKROOT})
set(OPENCL_DIST_DIR $ENV{INTELOCLSDKROOT} CACHE PATH "OpenCL source dir")
if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
set(OPENCL_LIB_DIR ${OPENCL_DIST_DIR}/lib/x64 )
else( CMAKE_SIZEOF_VOID_P EQUAL 8 )
set(OPENCL_LIB_DIR ${OPENCL_DIST_DIR}/lib/x86 )
endif( CMAKE_SIZEOF_VOID_P EQUAL 8 )
else()
set(OPENCL_DIST_DIR "" CACHE PATH "OpenCL source dir")
set(OPENCL_LIB_DIR "${OPENCL_DIST_DIR}/lib" CACHE PATH "OpenCL library dir" )
endif()
if( CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID STREQUAL "Clang" )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -Werror=return-type")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pthread")
endif()
set(OPENCL_INCLUDE_DIR ${OPENCL_DIST_DIR}/include CACHE PATH "OpenCL source dir")
set(UNITY_DIR ${PROJECT_SOURCE_DIR}/external/Unity CACHE PATH "Unity dir")
set(CMOCK_DIR ${PROJECT_SOURCE_DIR}/external/CMock CACHE PATH "CMock dir")
if(BUILD_DOCS)
add_subdirectory(docs)
endif(BUILD_DOCS)
add_subdirectory(include)
if(BUILD_EXAMPLES)
add_subdirectory(examples)
endif(BUILD_EXAMPLES)
if(BUILD_TESTS)
add_subdirectory(tests)
endif(BUILD_TESTS)