| PROJECT(BTL) |
| |
| CMAKE_MINIMUM_REQUIRED(VERSION 2.6.2) |
| |
| set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) |
| include(MacroOptionalAddSubdirectory) |
| |
| OPTION(BTL_NOVEC "Disable SSE/Altivec optimizations when possible" OFF) |
| |
| SET(CMAKE_INCLUDE_CURRENT_DIR ON) |
| |
| string(REGEX MATCH icpc IS_ICPC ${CMAKE_CXX_COMPILER}) |
| IF(CMAKE_COMPILER_IS_GNUCXX OR IS_ICPC) |
| SET(CMAKE_CXX_FLAGS "-g0 -O3 -DNDEBUG") |
| SET(CMAKE_Fortran_FLAGS "-g0 -O3 -DNDEBUG") |
| IF(NOT BTL_NOVEC) |
| SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2") |
| SET(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -msse2") |
| ELSE(NOT BTL_NOVEC) |
| SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEIGEN_DONT_VECTORIZE") |
| ENDIF(NOT BTL_NOVEC) |
| ENDIF(CMAKE_COMPILER_IS_GNUCXX OR IS_ICPC) |
| |
| IF(MSVC) |
| SET(CMAKE_CXX_FLAGS " /O2 /Ot /GL /fp:fast -DNDEBUG") |
| # SET(CMAKE_Fortran_FLAGS "-g0 -O3 -DNDEBUG") |
| IF(NOT BTL_NOVEC) |
| SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /arch:SSE2") |
| ELSE(NOT BTL_NOVEC) |
| SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DEIGEN_DONT_VECTORIZE") |
| ENDIF(NOT BTL_NOVEC) |
| ENDIF(MSVC) |
| |
| if(IS_ICPC) |
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fast") |
| set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fast") |
| endif(IS_ICPC) |
| |
| include_directories( |
| ${PROJECT_SOURCE_DIR}/actions |
| ${PROJECT_SOURCE_DIR}/generic_bench |
| ${PROJECT_SOURCE_DIR}/generic_bench/utils |
| ${PROJECT_SOURCE_DIR}/libs/STL) |
| |
| # find_package(MKL) |
| # if (MKL_FOUND) |
| # add_definitions(-DHAVE_MKL) |
| # set(DEFAULT_LIBRARIES ${MKL_LIBRARIES}) |
| # endif (MKL_FOUND) |
| |
| MACRO(BTL_ADD_BENCH targetname) |
| |
| foreach(_current_var ${ARGN}) |
| set(_last_var ${_current_var}) |
| endforeach(_current_var) |
| |
| set(_sources ${ARGN}) |
| list(LENGTH _sources _argn_length) |
| |
| list(REMOVE_ITEM _sources ON OFF TRUE FALSE) |
| |
| list(LENGTH _sources _src_length) |
| |
| if (${_argn_length} EQUAL ${_src_length}) |
| set(_last_var ON) |
| endif (${_argn_length} EQUAL ${_src_length}) |
| |
| OPTION(BUILD_${targetname} "Build benchmark ${targetname}" ${_last_var}) |
| |
| IF(BUILD_${targetname}) |
| ADD_EXECUTABLE(${targetname} ${_sources}) |
| ADD_TEST(${targetname} "${targetname}") |
| target_link_libraries(${targetname} ${DEFAULT_LIBRARIES}) |
| ENDIF(BUILD_${targetname}) |
| |
| ENDMACRO(BTL_ADD_BENCH) |
| |
| macro(btl_add_target_property target prop value) |
| |
| if(BUILD_${target}) |
| get_target_property(previous ${target} ${prop}) |
| if(NOT previous) |
| set(previous "") |
| endif() |
| set_target_properties(${target} PROPERTIES ${prop} "${previous} ${value}") |
| endif() |
| |
| endmacro(btl_add_target_property) |
| |
| ENABLE_TESTING() |
| |
| add_subdirectory(libs/eigen2) |
| add_subdirectory(libs/hand_vec) |
| add_subdirectory(libs/gmm) |
| add_subdirectory(libs/mtl4) |
| add_subdirectory(libs/ublas) |
| add_subdirectory(libs/blitz) |
| add_subdirectory(libs/tvmet) |
| add_subdirectory(libs/C_BLAS) |
| add_subdirectory(libs/f77) |
| add_subdirectory(libs/C) |
| add_subdirectory(libs/STL) |
| add_subdirectory(libs/STL_algo) |
| |
| add_subdirectory(data) |
| |
| |