1 cmake_minimum_required(VERSION 2.8)
3 include(ExternalProject)
4 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake_modules)
6 # Default values for build variables
9 #set(${CMAKE_VERBOSE_MAKEFILE} 1)
11 # ---------DevIL package--------------------------------
12 message("Looking for dependencies of package DevIL...")
13 find_program(PATCH NAMES "patch")
15 message(" patch... FOUND")
17 message(" patch... NOT FOUND")
20 find_package(PNG "1.2" EXACT)
22 message(" libpng... FOUND - version ${PNG_VERSION_STRING}")
24 if(${PNG_VERSION_STRING} STRGREATER "1.2.99")
25 message(FATAL_ERROR "The DevIL library is known not to build with libpng versions greater than 1.2. Please install libpng 1.2 AND the matching development files and rerun cmake.")
28 message(" libpng... NOT FOUND")
31 # libpng is optional for DevIL. Do not fail if not found
33 message(FATAL_ERROR "Some dependencies of DevIL are missing. Please install them and rerun cmake.")
36 add_subdirectory(LPISupport)
38 # DevIL needs this patch to compile in GCC 5:
39 # https://github.com/DentonW/DevIL/issues/31
40 ExternalProject_Add(DevIL
42 URL ${PROJECT_SOURCE_DIR}/DevIL/DevIL-1.7.8.tar.gz
43 PATCH_COMMAND ${PATCH} -d ${PROJECT_BINARY_DIR}/DevIL/src/DevIL -N -p0 -i ${PROJECT_SOURCE_DIR}/DevIL/patch-include_IL_il.h &&
44 ${PATCH} -d ${PROJECT_BINARY_DIR}/DevIL/src/DevIL -N -p0 -i ${PROJECT_SOURCE_DIR}/DevIL/patch-include_IL_devil_cpp_wrapper.hpp
45 CONFIGURE_COMMAND CFLAGS=-I${PNG_PNG_INCLUDE_DIR} ${PROJECT_BINARY_DIR}/DevIL/src/DevIL/configure --prefix=${PROJECT_BINARY_DIR}/DevIL/install --enable-ILUT=yes
46 INSTALL_DIR ${PROJECT_BINARY_DIR}/DevIL/install
49 # --------------------------------------------------------------
51 message("Looking for dependencies of ${PROJECT_NAME}...")
52 find_library(LIBMATIO "matio")
54 message(" libmatio... FOUND")
56 message (" libmatio... NOT FOUND")
61 set(clFFT_ROOT_DIR /opt/shared/clFFT CACHE FILEPATH "Path to the root directory of the clFFT library")
64 set(clBLAS_ROOT_DIR /opt/shared/clBLAS CACHE FILEPATH "Path to the root directory of the clBLAS library")
67 if(NOT LIBMATIO OR NOT CLFFT_FOUND OR NOT CLBLAS_FOUND)
68 message(FATAL_ERROR "Some dependencies of ${PROJECT_NAME} are missing. Please install them and rerun cmake.")
70 if (CMAKE_COMPILER_IS_GNUCXX)
71 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g -std=gnu++11")
73 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -std=c++11")
76 include_directories(include ${PROJECT_SOURCE_DIR}/LPISupport/include ${OpenCL_INCLUDE_DIRS} ${clFFT_INCLUDE_DIRS} ${PROJECT_BINARY_DIR}/DevIL/install/include)
77 file(GLOB_RECURSE SOURCEFILES "src/*")
78 add_library(OpenCLIPER SHARED ${SOURCEFILES})
79 add_dependencies(OpenCLIPER LPISupport DevIL)
80 target_link_libraries(OpenCLIPER
81 ${PROJECT_BINARY_DIR}/LPISupport/libLPISupport.so
82 ${PROJECT_BINARY_DIR}/DevIL/install/lib/libIL.so
83 ${PROJECT_BINARY_DIR}/DevIL/install/lib/libILU.so
84 ${PROJECT_BINARY_DIR}/DevIL/install/lib/libILUT.so
90 install(TARGETS OpenCLIPER RUNTIME DESTINATION bin LIBRARY DESTINATION lib)
93 add_subdirectory(tests)
94 add_subdirectory(performanceTests)
95 add_subdirectory(examples)
98 # Adding C/C++ label definition with value of cmake variable PROJECT_SOURCE_DIR
99 add_definitions(-DPROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}")
101 # # Show all cmake variables
102 # get_cmake_property(_variableNames VARIABLES)
103 # foreach (_variableName ${_variableNames})
104 # message(STATUS "${_variableName}=${${_variableName}}")