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 (WIN32) set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "Build Type" FORCE) set(MEASURE_TIMINGS FALSE CACHE BOOL "Report execution times" FORCE) else (WIN32) set(MEASURE_TIMINGS TRUE CACHE BOOL "Report execution times") endif (WIN32) if (NOT CMAKE_BUILD_TYPE OR CMAKE_BUILD_TYPE STREQUAL "") set(CMAKE_BUILD_TYPE RELEASE) # set(CMAKE_BUILD_TYPE RELEASE CACHE STRING "" FORCE) endif () #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 -O2 --use_fast_math ) SET(CMAKE_C_FLAGS_RELEASE "-O2 -funroll-loops -msse2 ") SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -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} ${GTHREAD2_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) if (CUDPP_FOUND) message(" * CUDA ${CUDA_VERSION} and CUDPP are found") else(CUDPP_FOUND) unset(CUDA_FOUND) message(" * CUDA ${CUDA_VERSION}, is found, but CUDPP is missing") endif(CUDPP_FOUND) else(CUDA_FOUND) message(" * CUDA is not found") endif(CUDA_FOUND) if (NOT CUDA_FOUND) message(FATAL_ERROR "Not all CUDA libraries are found") endif(NOT CUDA_FOUND) 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)