Browse Source

Revert "CMake: Pass `OpenMP` compiler and linker flags through CMake targets"

revert-5180-openmp_use_cmake
Martin Kroeker GitHub 2 months ago
parent
commit
52792f6da7
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
15 changed files with 68 additions and 66 deletions
  1. +0
    -1
      .github/workflows/apple_m.yml
  2. +6
    -16
      CMakeLists.txt
  3. +11
    -0
      cmake/arch.cmake
  4. +12
    -12
      cmake/fc.cmake
  5. +9
    -14
      cmake/system.cmake
  6. +16
    -0
      ctest/CMakeLists.txt
  7. +0
    -4
      driver/level2/CMakeLists.txt
  8. +0
    -4
      driver/level3/CMakeLists.txt
  9. +0
    -4
      driver/others/CMakeLists.txt
  10. +0
    -4
      interface/CMakeLists.txt
  11. +0
    -3
      kernel/CMakeLists.txt
  12. +6
    -0
      lapack-netlib/TESTING/EIG/CMakeLists.txt
  13. +4
    -0
      lapack-netlib/TESTING/LIN/CMakeLists.txt
  14. +0
    -4
      lapack/CMakeLists.txt
  15. +4
    -0
      test/CMakeLists.txt

+ 0
- 1
.github/workflows/apple_m.yml View File

@@ -108,7 +108,6 @@ jobs:
mkdir build && cd build mkdir build && cd build
cmake -DDYNAMIC_ARCH=1 \ cmake -DDYNAMIC_ARCH=1 \
-DUSE_OPENMP=${{matrix.openmp}} \ -DUSE_OPENMP=${{matrix.openmp}} \
-DOpenMP_Fortran_LIB_NAMES=omp \
-DINTERFACE64=${{matrix.ilp64}} \ -DINTERFACE64=${{matrix.ilp64}} \
-DNOFORTRAN=0 \ -DNOFORTRAN=0 \
-DBUILD_WITHOUT_LAPACK=0 \ -DBUILD_WITHOUT_LAPACK=0 \


+ 6
- 16
CMakeLists.txt View File

@@ -121,6 +121,10 @@ endif()


message(WARNING "CMake support is experimental. It does not yet support all build options and may not produce the same Makefiles that OpenBLAS ships with.") message(WARNING "CMake support is experimental. It does not yet support all build options and may not produce the same Makefiles that OpenBLAS ships with.")


if (USE_OPENMP)
find_package(OpenMP REQUIRED)
endif ()

include("${PROJECT_SOURCE_DIR}/cmake/utils.cmake") include("${PROJECT_SOURCE_DIR}/cmake/utils.cmake")
include("${PROJECT_SOURCE_DIR}/cmake/system.cmake") include("${PROJECT_SOURCE_DIR}/cmake/system.cmake")


@@ -246,12 +250,6 @@ endif ()
# add objects to the openblas lib # add objects to the openblas lib
if(NOT NO_LAPACK) if(NOT NO_LAPACK)
add_library(LAPACK_OVERRIDES OBJECT ${LA_SOURCES}) add_library(LAPACK_OVERRIDES OBJECT ${LA_SOURCES})
if (USE_OPENMP AND (NOT NOFORTRAN))
# Disable OpenMP for LAPACK Fortran codes on Windows.
if(NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
target_link_libraries(LAPACK_OVERRIDES OpenMP::OpenMP_Fortran)
endif()
endif()
list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:LAPACK_OVERRIDES>") list(APPEND TARGET_OBJS "$<TARGET_OBJECTS:LAPACK_OVERRIDES>")
endif() endif()
if(NOT NO_LAPACKE) if(NOT NO_LAPACKE)
@@ -293,18 +291,10 @@ endif()


if (USE_OPENMP) if (USE_OPENMP)
if(BUILD_STATIC_LIBS) if(BUILD_STATIC_LIBS)
if(NOFORTRAN)
target_link_libraries(${OpenBLAS_LIBNAME}_static OpenMP::OpenMP_C)
else()
target_link_libraries(${OpenBLAS_LIBNAME}_static OpenMP::OpenMP_C OpenMP::OpenMP_Fortran)
endif()
target_link_libraries(${OpenBLAS_LIBNAME}_static OpenMP::OpenMP_C)
endif() endif()
if(BUILD_SHARED_LIBS) if(BUILD_SHARED_LIBS)
if(NOFORTRAN)
target_link_libraries(${OpenBLAS_LIBNAME}_shared OpenMP::OpenMP_C)
else()
target_link_libraries(${OpenBLAS_LIBNAME}_shared OpenMP::OpenMP_C OpenMP::OpenMP_Fortran)
endif()
target_link_libraries(${OpenBLAS_LIBNAME}_shared OpenMP::OpenMP_C)
endif() endif()
endif() endif()




+ 11
- 0
cmake/arch.cmake View File

@@ -31,6 +31,17 @@ if (${CMAKE_C_COMPILER_ID} STREQUAL "Intel")
set(CCOMMON_OPT "${CCOMMON_OPT} -wd981") set(CCOMMON_OPT "${CCOMMON_OPT} -wd981")
endif () endif ()


if (USE_OPENMP)
# USE_SIMPLE_THREADED_LEVEL3 = 1
# NO_AFFINITY = 1
find_package(OpenMP REQUIRED)
if (OpenMP_FOUND)
set(CCOMMON_OPT "${CCOMMON_OPT} ${OpenMP_C_FLAGS} -DUSE_OPENMP")
set(FCOMMON_OPT "${FCOMMON_OPT} ${OpenMP_Fortran_FLAGS}")
endif()
endif ()


if (DYNAMIC_ARCH) if (DYNAMIC_ARCH)
if (ARM64) if (ARM64)
set(DYNAMIC_CORE ARMV8 CORTEXA53 CORTEXA57 THUNDERX THUNDERX2T99 TSV110 EMAG8180 NEOVERSEN1 THUNDERX3T110) set(DYNAMIC_CORE ARMV8 CORTEXA53 CORTEXA57 THUNDERX THUNDERX2T99 TSV110 EMAG8180 NEOVERSEN1 THUNDERX3T110)


+ 12
- 12
cmake/fc.cmake View File

@@ -7,7 +7,7 @@ if (${F_COMPILER} STREQUAL "FLANG" AND NOT CMAKE_Fortran_COMPILER_ID STREQUAL "L
# This is for classic Flang. LLVM Flang is handled with gfortran below. # This is for classic Flang. LLVM Flang is handled with gfortran below.
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_FLANG") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_FLANG")
if (USE_OPENMP) if (USE_OPENMP)
set(OpenMP_Fortran_FLAGS "-fopenmp" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -fopenmp")
endif () endif ()
set(FCOMMON_OPT "${FCOMMON_OPT} -Mrecursive -Kieee") set(FCOMMON_OPT "${FCOMMON_OPT} -Mrecursive -Kieee")
endif () endif ()
@@ -117,7 +117,7 @@ if (${F_COMPILER} STREQUAL "GFORTRAN" OR ${F_COMPILER} STREQUAL "F95" OR CMAKE_F
endif () endif ()


if (USE_OPENMP) if (USE_OPENMP)
set(OpenMP_Fortran_FLAGS "-fopenmp" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -fopenmp")
endif () endif ()
endif () endif ()


@@ -128,14 +128,14 @@ if (${F_COMPILER} STREQUAL "INTEL" OR CMAKE_Fortran_COMPILER_ID MATCHES "Intel")
endif () endif ()
set(FCOMMON_OPT "${FCOMMON_OPT} -recursive -fp-model=consistent") set(FCOMMON_OPT "${FCOMMON_OPT} -recursive -fp-model=consistent")
if (USE_OPENMP) if (USE_OPENMP)
set(OpenMP_Fortran_FLAGS "-openmp" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -openmp")
endif () endif ()
endif () endif ()


if (${F_COMPILER} STREQUAL "FUJITSU") if (${F_COMPILER} STREQUAL "FUJITSU")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_FUJITSU") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_FUJITSU")
if (USE_OPENMP) if (USE_OPENMP)
set(OpenMP_Fortran_FLAGS "-openmp" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -openmp")
endif () endif ()
endif () endif ()


@@ -151,7 +151,7 @@ if (${F_COMPILER} STREQUAL "IBM")
set(FCOMMON_OPT "${FCOMMON_OPT} -q32") set(FCOMMON_OPT "${FCOMMON_OPT} -q32")
endif () endif ()
if (USE_OPENMP) if (USE_OPENMP)
set(OpenMP_Fortran_FLAGS "-openmp" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -openmp")
endif () endif ()
endif () endif ()


@@ -168,7 +168,7 @@ if (${F_COMPILER} STREQUAL "PGI" OR ${F_COMPILER} STREQUAL "PGF95")
endif () endif ()
set(FCOMMON_OPT "${FCOMMON_OPT} -Mrecursive") set(FCOMMON_OPT "${FCOMMON_OPT} -Mrecursive")
if (USE_OPENMP) if (USE_OPENMP)
set(OpenMP_Fortran_FLAGS "-mp" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -mp")
endif () endif ()
endif () endif ()


@@ -195,7 +195,7 @@ if (${F_COMPILER} STREQUAL "PATHSCALE")
endif () endif ()


if (USE_OPENMP) if (USE_OPENMP)
set(OpenMP_Fortran_FLAGS "-mp" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -mp")
endif () endif ()
endif () endif ()


@@ -233,7 +233,7 @@ if (${F_COMPILER} STREQUAL "OPEN64")


if (USE_OPENMP) if (USE_OPENMP)
set(FEXTRALIB "${FEXTRALIB} -lstdc++") set(FEXTRALIB "${FEXTRALIB} -lstdc++")
set(OpenMP_Fortran_FLAGS "-mp" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -mp")
endif () endif ()
endif () endif ()


@@ -245,14 +245,14 @@ if (${F_COMPILER} STREQUAL "SUN")
set(FCOMMON_OPT "${FCOMMON_OPT} -m64") set(FCOMMON_OPT "${FCOMMON_OPT} -m64")
endif () endif ()
if (USE_OPENMP) if (USE_OPENMP)
set(OpenMP_Fortran_FLAGS "-xopenmp=parallel" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -xopenmp=parallel")
endif () endif ()
endif () endif ()


if (${F_COMPILER} STREQUAL "COMPAQ") if (${F_COMPILER} STREQUAL "COMPAQ")
set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_COMPAQ") set(CCOMMON_OPT "${CCOMMON_OPT} -DF_INTERFACE_COMPAQ")
if (USE_OPENMP) if (USE_OPENMP)
set(OpenMP_Fortran_FLAGS "-openmp" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -openmp")
endif () endif ()
endif () endif ()


@@ -265,7 +265,7 @@ if (${F_COMPILER} STREQUAL "CRAY")
if (NOT USE_OPENMP) if (NOT USE_OPENMP)
set(FCOMMON_OPT "${FCOMMON_OPT} -fno-openmp") set(FCOMMON_OPT "${FCOMMON_OPT} -fno-openmp")
else () else ()
set(OpenMP_Fortran_FLAGS "-fopenmp" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -fopenmp")
endif () endif ()
endif () endif ()


@@ -290,7 +290,7 @@ if (${F_COMPILER} STREQUAL "NAGFOR")
# -w=unused: Suppress warning messages about unused variables # -w=unused: Suppress warning messages about unused variables
set(FCOMMON_OPT "${FCOMMON_OPT} -w=x77 -w=ques -w=unused") set(FCOMMON_OPT "${FCOMMON_OPT} -w=x77 -w=ques -w=unused")
if (USE_OPENMP) if (USE_OPENMP)
set(OpenMP_Fortran_FLAGS "-openmp" CACHE STRING "OpenMP Fortran compiler flags")
set(FCOMMON_OPT "${FCOMMON_OPT} -openmp")
endif () endif ()
endif () endif ()




+ 9
- 14
cmake/system.cmake View File

@@ -412,20 +412,6 @@ else ()
endif () endif ()
endif () endif ()


if (USE_OPENMP)
find_package(OpenMP COMPONENTS C REQUIRED)
set(CCOMMON_OPT "${CCOMMON_OPT} -DUSE_OPENMP")
if (NOT NOFORTRAN)
find_package(OpenMP COMPONENTS Fortran REQUIRED)
# Avoid mixed OpenMP linkage
get_target_property(OMP_C_LIB OpenMP::OpenMP_C INTERFACE_LINK_LIBRARIES)
get_target_property(OMP_Fortran_LIB OpenMP::OpenMP_Fortran INTERFACE_LINK_LIBRARIES)
if (NOT OMP_C_LIB STREQUAL OMP_Fortran_LIB)
message(FATAL_ERROR "Multiple OpenMP runtime libraries detected. Mixed OpenMP runtime linkage is dangerous. You may pass -DOpenMP_LANG_LIB_NAMES and -DOpenMP_omp_LIBRARY to manually choose the OpenMP library.")
endif()
endif ()
endif ()

if (BINARY64) if (BINARY64)
if (INTERFACE64) if (INTERFACE64)
# CCOMMON_OPT += -DUSE64BITINT # CCOMMON_OPT += -DUSE64BITINT
@@ -724,6 +710,15 @@ if (LAPACK_STRLEN)
endif() endif()
set(LAPACK_FPFLAGS "${LAPACK_FPFLAGS} ${FPFLAGS}") set(LAPACK_FPFLAGS "${LAPACK_FPFLAGS} ${FPFLAGS}")


#Disable -fopenmp for LAPACK Fortran codes on Windows.
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(FILTER_FLAGS "-fopenmp;-mp;-openmp;-xopenmp=parallel")
foreach (FILTER_FLAG ${FILTER_FLAGS})
string(REPLACE ${FILTER_FLAG} "" LAPACK_FFLAGS ${LAPACK_FFLAGS})
string(REPLACE ${FILTER_FLAG} "" LAPACK_FPFLAGS ${LAPACK_FPFLAGS})
endforeach ()
endif ()

if (CMAKE_Fortran_COMPILER) if (CMAKE_Fortran_COMPILER)
if ("${F_COMPILER}" STREQUAL "NAGFOR" OR "${F_COMPILER}" STREQUAL "CRAY" OR CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*") if ("${F_COMPILER}" STREQUAL "NAGFOR" OR "${F_COMPILER}" STREQUAL "CRAY" OR CMAKE_Fortran_COMPILER_ID MATCHES "LLVMFlang.*")
set(FILTER_FLAGS "-msse3;-mssse3;-msse4.1;-mavx;-mavx2,-mskylake-avx512") set(FILTER_FLAGS "-msse3;-mssse3;-msse4.1;-mavx;-mavx2,-mskylake-avx512")


+ 16
- 0
ctest/CMakeLists.txt View File

@@ -44,6 +44,10 @@ else()
c_${float_char}blas1.c) c_${float_char}blas1.c)
endif() endif()
target_link_libraries(x${float_char}cblat1 ${OpenBLAS_LIBNAME}) target_link_libraries(x${float_char}cblat1 ${OpenBLAS_LIBNAME})
if (USE_OPENMP AND (${CMAKE_Fortran_COMPILER_ID} STREQUAL GNU) AND (${CMAKE_C_COMPILER_ID} STREQUAL Clang))
string(REGEX REPLACE "-fopenmp" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
target_link_libraries(x${float_char}cblat1 omp pthread)
endif()
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "QNX") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "QNX")
target_link_libraries(x${float_char}cblat1 m) target_link_libraries(x${float_char}cblat1 m)
endif() endif()
@@ -69,6 +73,10 @@ else()
constant.c) constant.c)
endif() endif()
target_link_libraries(x${float_char}cblat2 ${OpenBLAS_LIBNAME}) target_link_libraries(x${float_char}cblat2 ${OpenBLAS_LIBNAME})
if (USE_OPENMP AND (${CMAKE_Fortran_COMPILER_ID} STREQUAL GNU) AND (${CMAKE_C_COMPILER_ID} STREQUAL Clang))
string(REGEX REPLACE "-fopenmp" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
target_link_libraries(x${float_char}cblat2 omp pthread)
endif()
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "QNX") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "QNX")
target_link_libraries(x${float_char}cblat2 m) target_link_libraries(x${float_char}cblat2 m)
endif() endif()
@@ -116,12 +124,20 @@ else()
endif() endif()
endif() endif()
target_link_libraries(x${float_char}cblat3 ${OpenBLAS_LIBNAME}) target_link_libraries(x${float_char}cblat3 ${OpenBLAS_LIBNAME})
if (USE_OPENMP AND (${CMAKE_Fortran_COMPILER_ID} STREQUAL GNU) AND (${CMAKE_C_COMPILER_ID} STREQUAL Clang))
string(REGEX REPLACE "-fopenmp" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
target_link_libraries(x${float_char}cblat3 omp pthread)
endif()
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "QNX") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "QNX")
target_link_libraries(x${float_char}cblat3 m) target_link_libraries(x${float_char}cblat3 m)
endif() endif()
if (USE_GEMM3M) if (USE_GEMM3M)
if ((${float_char} STREQUAL "c") OR (${float_char} STREQUAL "z")) if ((${float_char} STREQUAL "c") OR (${float_char} STREQUAL "z"))
target_link_libraries(x${float_char}cblat3_3m ${OpenBLAS_LIBNAME}) target_link_libraries(x${float_char}cblat3_3m ${OpenBLAS_LIBNAME})
if (USE_OPENMP AND (${CMAKE_Fortran_COMPILER_ID} STREQUAL GNU) AND (${CMAKE_C_COMPILER_ID} STREQUAL Clang))
string(REGEX REPLACE "-fopenmp" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
target_link_libraries(x${float_char}cblat3 omp pthread)
endif()
if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "QNX") if(${CMAKE_SYSTEM_NAME} MATCHES "Linux" OR ${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD" OR ${CMAKE_SYSTEM_NAME} MATCHES "QNX")
target_link_libraries(x${float_char}cblat3_3m m) target_link_libraries(x${float_char}cblat3_3m m)
endif() endif()


+ 0
- 4
driver/level2/CMakeLists.txt View File

@@ -223,7 +223,3 @@ if (USE_THREAD)
endif () endif ()


add_library(driver_level2 OBJECT ${OPENBLAS_SRC}) add_library(driver_level2 OBJECT ${OPENBLAS_SRC})

if (USE_OPENMP)
target_link_libraries(driver_level2 OpenMP::OpenMP_C)
endif()

+ 0
- 4
driver/level3/CMakeLists.txt View File

@@ -178,7 +178,3 @@ endforeach ()
# #


add_library(driver_level3 OBJECT ${OPENBLAS_SRC}) add_library(driver_level3 OBJECT ${OPENBLAS_SRC})

if (USE_OPENMP)
target_link_libraries(driver_level3 OpenMP::OpenMP_C)
endif()

+ 0
- 4
driver/others/CMakeLists.txt View File

@@ -88,7 +88,3 @@ endif ()
#endif #endif


add_library(driver_others OBJECT ${OPENBLAS_SRC} ${MEMORY} ${SMP_SOURCES} ${COMMON_SOURCES}) add_library(driver_others OBJECT ${OPENBLAS_SRC} ${MEMORY} ${SMP_SOURCES} ${COMMON_SOURCES})

if (USE_OPENMP)
target_link_libraries(driver_others OpenMP::OpenMP_C)
endif()

+ 0
- 4
interface/CMakeLists.txt View File

@@ -289,7 +289,3 @@ if ( BUILD_BFLOAT16 AND NO_FBLAS )
endif() endif()


add_library(interface OBJECT ${OPENBLAS_SRC}) add_library(interface OBJECT ${OPENBLAS_SRC})

if (USE_OPENMP)
target_link_libraries(interface OpenMP::OpenMP_C)
endif()

+ 0
- 3
kernel/CMakeLists.txt View File

@@ -1470,9 +1470,6 @@ endif ()
if (USE_GEMM3M) if (USE_GEMM3M)
target_compile_definitions(kernel${TSUFFIX} PRIVATE USE_GEMM3M) target_compile_definitions(kernel${TSUFFIX} PRIVATE USE_GEMM3M)
endif() endif()
if (USE_OPENMP)
target_link_libraries(kernel${TSUFFIX} OpenMP::OpenMP_C)
endif()
endfunction () endfunction ()






+ 6
- 0
lapack-netlib/TESTING/EIG/CMakeLists.txt View File

@@ -107,6 +107,12 @@ set(ZDMDEIGTST zchkdmd.f90)
macro(add_eig_executable name) macro(add_eig_executable name)
add_executable(${name} ${ARGN}) add_executable(${name} ${ARGN})
target_link_libraries(${name} ${LIBNAMEPREFIX}openblas${LIBNAMESUFFIX}${SUFFIX64_UNDERSCORE}) target_link_libraries(${name} ${LIBNAMEPREFIX}openblas${LIBNAMESUFFIX}${SUFFIX64_UNDERSCORE})

if (USE_OPENMP AND (${CMAKE_Fortran_COMPILER_ID} STREQUAL GNU) AND (${CMAKE_C_COMPILER_ID} STREQUAL Clang))
string(REGEX REPLACE "-fopenmp" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
target_link_libraries(${name} omp pthread)
endif()

#${TMGLIB} ../${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) #${TMGLIB} ../${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
endmacro() endmacro()




+ 4
- 0
lapack-netlib/TESTING/LIN/CMakeLists.txt View File

@@ -240,6 +240,10 @@ set(ZLINTSTRFP zchkrfp.f zdrvrfp.f zdrvrf1.f zdrvrf2.f zdrvrf3.f zdrvrf4.f zerrr
macro(add_lin_executable name) macro(add_lin_executable name)
add_executable(${name} ${ARGN}) add_executable(${name} ${ARGN})
target_link_libraries(${name} ${LIBNAMEPREFIX}openblas${LIBNAMESUFFIX}${SUFFIX64_UNDERSCORE}) target_link_libraries(${name} ${LIBNAMEPREFIX}openblas${LIBNAMESUFFIX}${SUFFIX64_UNDERSCORE})
if (USE_OPENMP AND (${CMAKE_Fortran_COMPILER_ID} STREQUAL GNU) AND (${CMAKE_C_COMPILER_ID} STREQUAL Clang))
string(REGEX REPLACE "-fopenmp" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
target_link_libraries(${name} omp pthread)
endif()
#${TMGLIB} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES}) #${TMGLIB} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
endmacro() endmacro()




+ 0
- 4
lapack/CMakeLists.txt View File

@@ -120,7 +120,3 @@ GenerateCombinationObjects("${UNIT_SOURCES}" "UNIT" "N" "" 4)
GenerateCombinationObjects("${UNIT_SOURCES2}" "UNIT" "N" "" 0 "" "" 3) GenerateCombinationObjects("${UNIT_SOURCES2}" "UNIT" "N" "" 0 "" "" 3)


add_library(lapack OBJECT ${OPENBLAS_SRC}) add_library(lapack OBJECT ${OPENBLAS_SRC})

if (USE_OPENMP)
target_link_libraries(lapack OpenMP::OpenMP_C)
endif()

+ 4
- 0
test/CMakeLists.txt View File

@@ -34,6 +34,10 @@ endif ()
foreach(test_bin ${OpenBLAS_Tests}) foreach(test_bin ${OpenBLAS_Tests})
add_executable(${test_bin} ${test_bin}.f) add_executable(${test_bin} ${test_bin}.f)
target_link_libraries(${test_bin} ${OpenBLAS_LIBNAME}) target_link_libraries(${test_bin} ${OpenBLAS_LIBNAME})
if (USE_OPENMP AND (${CMAKE_Fortran_COMPILER_ID} STREQUAL GNU) AND (${CMAKE_C_COMPILER_ID} STREQUAL Clang))
string(REGEX REPLACE "-fopenmp" "" CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS}")
target_link_libraries(${test_bin} omp pthread)
endif()
endforeach() endforeach()


# $1 exec, $2 input, $3 output_result # $1 exec, $2 input, $3 output_result


Loading…
Cancel
Save