CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT( BioEM ) SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/") SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}") FIND_PACKAGE(CUDA) FIND_PACKAGE(PkgConfig REQUIRED) PKG_CHECK_MODULES(FFTW fftw3 REQUIRED) INCLUDE_DIRECTORIES(${FFTW_INCLUDE_DIRS}) FIND_PACKAGE(Boost 1.43 REQUIRED) INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) FIND_PACKAGE(OpenMP) IF(OPENMP_FOUND) SET( CMAKE_CXX_FLAGS ${OpenMP_CXX_FLAGS}) ADD_DEFINITIONS(-DWITH_OPENMP) ENDIF() SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=native -fopenmp -fweb -mfpmath=sse -frename-registers -minline-all-stringops -ftracer -funroll-loops -fpeel-loops -fprefetch-loop-arrays -ffast-math -ggdb" ) SET( CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS};-gencode arch=compute_35,code=sm_35;--use_fast_math;-ftz=true;-O4;-Xptxas -O4" ) INCLUDE_DIRECTORIES( include $HOME/usr/include ) IF(CUDA_FOUND) ADD_DEFINITIONS(-DWITH_CUDA) CUDA_ADD_EXECUTABLE( bioEM bioem.cpp main.cpp map.cpp model.cpp param.cpp cmodules/timer.cpp bioem_cuda.cu ) CUDA_ADD_CUFFT_TO_TARGET(bioEM) ELSE() ADD_EXECUTABLE( bioEM bioem.cpp main.cpp map.cpp model.cpp param.cpp cmodules/timer.cpp ) ENDIF() TARGET_LINK_LIBRARIES(bioEM -L${FFTW_LIBDIR} -lfftw3 -lfftw3f) TARGET_LINK_LIBRARIES(bioEM -L${Boost_LIBRARY_DIRS} -lboost_program_options) SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x -Wall -Wno-vla -Wno-unused-result -pedantic" ) message(STATUS "FFTW library: ${FFTW_LIBDIR}") message(STATUS "Boost directory: ${Boost_LIBRARY_DIRS}") message(STATUS "FFTW includedir: ${FFTW_INCLUDEDIR}") #get_cmake_property(_variableNames VARIABLES) #foreach (_variableName ${_variableNames}) #message(STATUS "${_variableName}=${${_variableName}}") #endforeach()