Skip to content

Commit b925353

Browse files
authored
Merge pull request #4533 from martin-frbg/fixup4501
CMake: add option for building benchmarks and handle their dependencies
2 parents 96e4218 + cfc28c5 commit b925353

1 file changed

Lines changed: 33 additions & 4 deletions

File tree

CMakeLists.txt

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ option(BUILD_LAPACK_DEPRECATED "When building LAPACK, include also some older, d
2424

2525
option(BUILD_TESTING "Build LAPACK testsuite when building LAPACK" ON)
2626

27+
option(BUILD_BENCHMARKS "Build the collection of BLAS/LAPACK benchmarks" OFF)
28+
2729
option(C_LAPACK "Build LAPACK from C sources instead of the original Fortran" OFF)
2830

2931
option(BUILD_WITHOUT_CBLAS "Do not build the C interface (CBLAS) to the BLAS functions" OFF)
@@ -328,7 +330,7 @@ if (NOT NOFORTRAN)
328330
# Build test and ctest
329331
add_subdirectory(test)
330332
endif()
331-
if (BUILD_TESTING)
333+
if (BUILD_TESTING AND NOT BUILD_WITHOUT_LAPACK)
332334
add_subdirectory(lapack-netlib/TESTING)
333335
endif()
334336
endif()
@@ -458,9 +460,35 @@ if (BUILD_SHARED_LIBS AND NOT ${SYMBOLPREFIX}${SYMBOLSUFFIX} STREQUAL "")
458460
endif()
459461
endif()
460462
461-
if (BUILD_TESTING)
462-
find_package(OpenMP REQUIRED)
463+
if (BUILD_BENCHMARKS)
464+
#find_package(OpenMP REQUIRED)
463465
file(GLOB SOURCES "benchmark/*.c")
466+
if (NOT USE_OPENMP)
467+
file(GLOB REMFILE "benchmark/smallscaling.c")
468+
list(REMOVE_ITEM SOURCES ${REMFILE})
469+
endif()
470+
if (BUILD_WITHOUT_LAPACK)
471+
file(GLOB REMFILE "benchmark/cholesky.c")
472+
list(REMOVE_ITEM SOURCES ${REMFILE})
473+
file(GLOB REMFILE "benchmark/geev.c")
474+
list(REMOVE_ITEM SOURCES ${REMFILE})
475+
file(GLOB REMFILE "benchmark/gesv.c")
476+
list(REMOVE_ITEM SOURCES ${REMFILE})
477+
file(GLOB REMFILE "benchmark/getri.c")
478+
list(REMOVE_ITEM SOURCES ${REMFILE})
479+
file(GLOB REMFILE "benchmark/potrf.c")
480+
list(REMOVE_ITEM SOURCES ${REMFILE})
481+
file(GLOB REMFILE "benchmark/spmv.c")
482+
list(REMOVE_ITEM SOURCES ${REMFILE})
483+
file(GLOB REMFILE "benchmark/symv.c")
484+
list(REMOVE_ITEM SOURCES ${REMFILE})
485+
file(GLOB REMFILE "benchmark/linpack.c")
486+
list(REMOVE_ITEM SOURCES ${REMFILE})
487+
endif()
488+
if (NOT USE_GEMM3M)
489+
file(GLOB REMFILE "benchmark/gemm3m.c")
490+
list(REMOVE_ITEM SOURCES ${REMFILE})
491+
endif()
464492
foreach(source ${SOURCES})
465493
get_filename_component(name ${source} NAME_WE)
466494
if ((NOT ${name} STREQUAL "zdot-intel") AND (NOT ${name} STREQUAL "cula_wrapper"))
@@ -477,7 +505,8 @@ if (BUILD_TESTING)
477505
(NOT ${target_name} STREQUAL "benchmark_min_COMPLEX") AND (NOT ${target_name} STREQUAL "benchmark_min_COMPLEX_DOUBLE"))
478506
add_executable(${target_name} ${source})
479507
target_include_directories(${target_name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR})
480-
target_link_libraries(${target_name} ${OpenBLAS_LIBNAME} OpenMP::OpenMP_C)
508+
target_link_libraries(${target_name} ${OpenBLAS_LIBNAME} )
509+
# target_link_libraries(${target_name} ${OpenBLAS_LIBNAME} OpenMP::OpenMP_C)
481510
if (NOT "${define}" STREQUAL "DEFAULT")
482511
target_compile_definitions(${target_name} PRIVATE ${define})
483512
endif()

0 commit comments

Comments
 (0)