1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
cmake_minimum_required(VERSION 2.6.3)
project(dict_hw)
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
set(CMAKE_VERBOSE_MAKEFILE YES)
if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "")
set(CMAKE_BUILD_TYPE RELEASE)
# set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "" FORCE)
endif ()
set(MEASURE_TIMINGS TRUE CACHE BOOL "Report execution times")
#find_program(SED_EXECUTABLE sed)
#find_program(LS_EXECUTABLE ls)
#find_program(HEAD_EXECUTABLE head)
#mark_as_advanced(SED_EXECUTABLE LS_EXECUTABLE HEAD_EXECUTABLE)
find_package(GLIB2 REQUIRED)
set (MINIMAL_CUDA_VERSION 2.3)
find_package(CUDA ${MINIMAL_CUDA_VERSION} REQUIRED)
find_package(CUDPP REQUIRED)
find_package(TIFF)
if (CMAKE_BUILD_TYPE)
SET(CFLAGS CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE})
SET(CPPFLAGS CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE})
else(CMAKE_BUILD_TYPE)
SET(CFLAGS CMAKE_C_FLAGS)
SET(CPPFLAGS CMAKE_CXX_FLAGS)
endif(CMAKE_BUILD_TYPE)
SET(CUDA_NVCC_FLAGS -O3 --use_fast_math )
SET(CMAKE_C_FLAGS_RELEASE "-O3 -funroll-loops -msse2 ")
SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -funroll-loops -msse2 ")
if (TIFF_FOUND)
SET(IMAGE_FORMATS ${IMAGE_FORMATS} TIFF)
SET(IMAGE_INCLUDE_DIRS ${IMAGE_INCLUDE_DIRS} ${TIFF_INCLUDE_DIR})
SET(IMAGE_LIBRARIES ${IMAGE_LIBRARIES} ${TIFF_LIBRARY})
SET(IMAGE_DEFINES ${IMAGE_DEFINES} -DDICT_TIFF_SUPPORT)
endif (TIFF_FOUND)
set(DICT_HW_INCLUDE_DIRS ${GLIB2_INCLUDE_DIR} ${CUDPP_INCLUDE_DIR} ${IMAGE_INCLUDE_DIRS})
set(DICT_HW_LIBRARIES ${GLIB2_LIBRARIES} ${CUDPP_LIBRARY} ${IMAGE_LIBRARIES})
set(DICT_HW_DEFINITIONS ${IMAGE_DEFINES})
message("")
message("Configuration")
message("-------------")
if (GLIB2_FOUND)
message(" * GLIB2 is found, good")
endif()
if (CUDA_FOUND)
message(" * CUDA ${CUDA_VERSION}, SDK, and CUDPP are found")
endif()
message(" * Supported image formats: ${IMAGE_FORMATS}")
if (MEASURE_TIMINGS)
set(DICT_HW_DEFINITIONS ${DICT_HW_DEFINITIONS} -DDICT_HW_MEASURE_TIMINGS)
message(" * Build configuration: ${CMAKE_BUILD_TYPE} with timing information")
else()
message(" * Build configuration: ${CMAKE_BUILD_TYPE}")
endif()
#message(" * CFLAGS : ${${CFLAGS}}")
message(" * CPPFLAGS : ${${CPPFLAGS}}")
message(" * NVCCFLAGS: ${CUDA_NVCC_FLAGS}")
message("\n")
ADD_SUBDIRECTORY(src)
#SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "build;PyHST_c_CPU/PyHST_c.so")
IF (UNIX)
ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
SET(DISTCLEANED
cmake\\.depends
cmake\\.check_depends
CMakeFiles
cmake\\.check_cache
cmake-install\\.cmake
Makefile
core
core\\.[0-9a-zA-Z_]*
gmon\\.out
build
.*\\.pyc
.*~
)
SET(DISTCLEANED_REGEX .*/\\\(CMakeCache\\.txt)
FOREACH(ITEM ${DISTCLEANED})
SET(DISTCLEANED_REGEX "${DISTCLEANED_REGEX}\\|${ITEM}")
ENDFOREACH(ITEM)
SET(DISTCLEANED_REGEX "${DISTCLEANED_REGEX}\\\)")
# message(${DISTCLEANED_REGEX})
#It's a bug fix
SET(DISTCLEANED_SLASH \\)
SET(DISTCLEANED_SEMICOLON \;)
ADD_CUSTOM_COMMAND(
DEPENDS clean
COMMENT "distribution clean"
COMMAND find
ARGS . -depth -regex '${DISTCLEANED_REGEX}' -exec rm -r {} "${DISTCLEANED_SLASH}${DISTCLEANED_SEMICOLON}"
TARGET distclean
)
ADD_CUSTOM_COMMAND(
COMMENT "setting dummy makefile"
COMMAND cmake
ARGS -E copy Makefile.default Makefile
TARGET distclean
)
ENDIF(UNIX)
|