/normxcorr/trunk

To get this branch, use:
bzr branch http://suren.me/webbzr/normxcorr/trunk

« back to all changes in this revision

Viewing changes to dict_hw/CMakeLists.txt

  • Committer: Suren A. Chilingaryan
  • Date: 2009-12-12 01:38:41 UTC
  • Revision ID: csa@dside.dyndns.org-20091212013841-feih3qa4i28x75j4
Provide stand-alone library

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
cmake_minimum_required(VERSION 2.6.3)
 
2
project(dict_hw)
 
3
 
 
4
set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake" ${CMAKE_MODULE_PATH})
 
5
set(CMAKE_VERBOSE_MAKEFILE YES)
 
6
 
 
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)
 
10
endif ()
 
11
 
 
12
set(MEASURE_TIMINGS TRUE CACHE BOOL "Report execution times")
 
13
 
 
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)
 
18
 
 
19
find_package(GLIB2 REQUIRED)
 
20
 
 
21
set (MINIMAL_CUDA_VERSION 2.3)
 
22
find_package(CUDA ${MINIMAL_CUDA_VERSION} REQUIRED)
 
23
find_package(CUDPP REQUIRED)
 
24
 
 
25
if (CMAKE_BUILD_TYPE)
 
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)
 
32
 
 
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 ")
 
36
 
 
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)
 
40
 
 
41
ADD_SUBDIRECTORY(src)
 
42
 
 
43
message("")
 
44
message("Configuration")
 
45
message("-------------")
 
46
 
 
47
if (GLIB2_FOUND)
 
48
    message(" * GLIB2 is found, good")
 
49
endif()
 
50
 
 
51
if (CUDA_FOUND)
 
52
    message(" * CUDA ${CUDA_VERSION}, SDK, and CUDPP are found")
 
53
endif()
 
54
 
 
55
if (MEASURE_TIMINGS)
 
56
    message(" * Build configuration: ${CMAKE_BUILD_TYPE} with timing information")
 
57
    set(DICT_HW_DEFINITIONS ${DICT_HW_DEFINITIONS} -DDICT_HW_MEASURE_TIMINGS)
 
58
else()
 
59
    message(" * Build configuration: ${CMAKE_BUILD_TYPE}")
 
60
endif()
 
61
 
 
62
#message(" * CFLAGS   : ${${CFLAGS}}")
 
63
message(" * CPPFLAGS : ${${CPPFLAGS}}")
 
64
message(" * NVCCFLAGS: ${CUDA_NVCC_FLAGS}")
 
65
message("\n")
 
66
 
 
67
 
 
68
#SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "build;PyHST_c_CPU/PyHST_c.so")
 
69
 
 
70
 
 
71
IF (UNIX)
 
72
    ADD_CUSTOM_TARGET (distclean @echo cleaning for source distribution)
 
73
    SET(DISTCLEANED
 
74
        cmake\\.depends
 
75
        cmake\\.check_depends
 
76
        CMakeFiles
 
77
        cmake\\.check_cache
 
78
        cmake-install\\.cmake
 
79
        Makefile
 
80
        core
 
81
        core\\.[0-9a-zA-Z_]*
 
82
        gmon\\.out
 
83
        build
 
84
        .*\\.pyc
 
85
        .*~
 
86
    )
 
87
  
 
88
    SET(DISTCLEANED_REGEX .*/\\\(CMakeCache\\.txt)
 
89
    FOREACH(ITEM ${DISTCLEANED})
 
90
        SET(DISTCLEANED_REGEX "${DISTCLEANED_REGEX}\\|${ITEM}")
 
91
    ENDFOREACH(ITEM)
 
92
    SET(DISTCLEANED_REGEX "${DISTCLEANED_REGEX}\\\)")
 
93
#    message(${DISTCLEANED_REGEX})
 
94
    
 
95
    #It's a bug fix
 
96
    SET(DISTCLEANED_SLASH \\)
 
97
    SET(DISTCLEANED_SEMICOLON \;)
 
98
 
 
99
    ADD_CUSTOM_COMMAND(
 
100
        DEPENDS clean
 
101
        COMMENT "distribution clean"
 
102
        COMMAND find
 
103
        ARGS    . -depth -regex '${DISTCLEANED_REGEX}' -exec rm -r {} "${DISTCLEANED_SLASH}${DISTCLEANED_SEMICOLON}"
 
104
        TARGET  distclean
 
105
    )  
 
106
    
 
107
    ADD_CUSTOM_COMMAND(
 
108
        COMMENT "setting dummy makefile"
 
109
        COMMAND cmake
 
110
        ARGS -E copy Makefile.default Makefile
 
111
        TARGET distclean
 
112
    )
 
113
ENDIF(UNIX)