1
cmake_minimum_required(VERSION 2.6.3)
4
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
5
set(CMAKE_VERBOSE_MAKEFILE YES)
7
if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
8
set(CMAKE_BUILD_TYPE RELEASE)
9
# set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "" FORCE)
12
set(MEASURE_TIMINGS TRUE CACHE BOOL "Report execution times")
14
#find_program(SED_EXECUTABLE sed)
15
#find_program(LS_EXECUTABLE ls)
16
#find_program(HEAD_EXECUTABLE head)
17
#mark_as_advanced(SED_EXECUTABLE LS_EXECUTABLE HEAD_EXECUTABLE)
19
find_package(GLIB2 REQUIRED)
21
set (MINIMAL_CUDA_VERSION 2.3)
22
find_package(CUDA ${MINIMAL_CUDA_VERSION} REQUIRED)
23
find_package(CUDPP REQUIRED)
26
SET(CFLAGS CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE})
27
SET(CPPFLAGS CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE})
28
else(CMAKE_BUILD_TYPE)
29
SET(CFLAGS CMAKE_C_FLAGS)
30
SET(CPPFLAGS CMAKE_CXX_FLAGS)
31
endif(CMAKE_BUILD_TYPE)
33
SET(CUDA_NVCC_FLAGS -O3 --use_fast_math )
34
SET(CMAKE_C_FLAGS_RELEASE "-O3 -funroll-loops -msse2 ")
35
SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -funroll-loops -msse2 ")
37
set(DICT_HW_INCLUDE_DIRS ${GLIB2_INCLUDE_DIR} ${CUDPP_INCLUDE_DIR})
38
set(DICT_HW_LIBRARIES ${GLIB2_LIBRARIES} ${CUDPP_LIBRARY})
39
set(DICT_HW_DEFINITIONS)
44
message("Configuration")
45
message("-------------")
48
message(" * GLIB2 is found, good")
52
message(" * CUDA ${CUDA_VERSION}, SDK, and CUDPP are found")
56
message(" * Build configuration: ${CMAKE_BUILD_TYPE} with timing information")
57
set(DICT_HW_DEFINITIONS ${DICT_HW_DEFINITIONS} -DDICT_HW_MEASURE_TIMINGS)
59
message(" * Build configuration: ${CMAKE_BUILD_TYPE}")
62
#message(" * CFLAGS : ${${CFLAGS}}")
63
message(" * CPPFLAGS : ${${CPPFLAGS}}")
64
message(" * NVCCFLAGS: ${CUDA_NVCC_FLAGS}")
68
#SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "build;PyHST_c_CPU/PyHST_c.so")
72
ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
88
SET(DISTCLEANED_REGEX .*/\\\(CMakeCache\\.txt)
89
FOREACH(ITEM ${DISTCLEANED})
90
SET(DISTCLEANED_REGEX "${DISTCLEANED_REGEX}\\|${ITEM}")
92
SET(DISTCLEANED_REGEX "${DISTCLEANED_REGEX}\\\)")
93
# message(${DISTCLEANED_REGEX})
96
SET(DISTCLEANED_SLASH \\)
97
SET(DISTCLEANED_SEMICOLON \;)
101
COMMENT "distribution clean"
103
ARGS . -depth -regex '${DISTCLEANED_REGEX}' -exec rm -r {} "${DISTCLEANED_SLASH}${DISTCLEANED_SEMICOLON}"
108
COMMENT "setting dummy makefile"
110
ARGS -E copy Makefile.default Makefile