mirror of
https://github.com/amd/blis.git
synced 2026-04-19 23:28:52 +00:00
CMake: Added logic to link openmp library given through OpenMP_libomp_LIBRARY cmake variable on linux.
Enabled command line option to link libiomp5.so or libomp.so or libgomp.so libraries using cmake. Eg:- -DOpenMP_libomp_LIBRARY=<path to openmp library including library name>. If we not set above variable, by default openmp library will be libomp.so for clang and libgomp.so for gcc compiler. Change-Id: I5bffa10ff8351f5d10f0d543cbdf55aa16c84c90
This commit is contained in:
committed by
Chandrashekara KR
parent
91bdf9a3eb
commit
fa75ce725e
@@ -155,6 +155,8 @@ if(WIN32)
|
||||
option(ENABLE_UPPERCASE_API "Export APIs with uppercase." OFF)
|
||||
# Setting path to OpenMP runtime.
|
||||
set(OpenMP_libomp_LIBRARY "C:/Program Files/LLVM/lib/libomp.lib" CACHE STRING "openmp library path")
|
||||
else(WIN32)
|
||||
set(OpenMP_libomp_LIBRARY "" CACHE STRING "openmp library path")
|
||||
endif()
|
||||
# Debug & Release flags option setting is only available for Linux. On Windows the default flags are used.
|
||||
if(NOT MSVC)
|
||||
@@ -1166,7 +1168,11 @@ if(BUILD_SHARED_LIBS)
|
||||
set_target_properties(libblis-shared PROPERTIES LINKER_LANGUAGE C VERSION ${VERSION} SOVERSION ${SO_VERSION_MAJOR})
|
||||
set_target_properties(libblis-shared PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
||||
if(THREADING_MODEL STREQUAL "openmp")
|
||||
target_link_libraries(libblis-shared PRIVATE OpenMP::OpenMP_C)
|
||||
if((NOT ${OpenMP_libomp_LIBRARY} STREQUAL "") AND (NOT WIN32))
|
||||
target_link_libraries(libblis-shared PRIVATE ${OpenMP_libomp_LIBRARY})
|
||||
else()
|
||||
target_link_libraries(libblis-shared PRIVATE OpenMP::OpenMP_C)
|
||||
endif()
|
||||
endif()
|
||||
add_dependencies(libblis-shared flat-header)
|
||||
if(ENABLE_CBLAS)
|
||||
|
||||
@@ -136,7 +136,11 @@ function(benchexe extn)
|
||||
)
|
||||
target_link_libraries(${exec_name}.x PRIVATE ${BLAS_LIBS} ${LIBBLIS} ${LDFLAGS})
|
||||
if(THREADING_MODEL STREQUAL "openmp")
|
||||
target_link_libraries(${exec_name}.x PRIVATE OpenMP::OpenMP_C)
|
||||
if((NOT ${OpenMP_libomp_LIBRARY} STREQUAL "") AND (NOT WIN32))
|
||||
target_link_libraries(${exec_name}.x PRIVATE ${OpenMP_libomp_LIBRARY})
|
||||
else()
|
||||
target_link_libraries(${exec_name}.x PRIVATE OpenMP::OpenMP_C)
|
||||
endif()
|
||||
endif()
|
||||
list(APPEND temp_executables ${exec_name}.x)
|
||||
endforeach()
|
||||
|
||||
@@ -49,7 +49,11 @@ target_include_directories(f2c
|
||||
)
|
||||
target_link_libraries(f2c PRIVATE ${LDFLAGS})
|
||||
if(THREADING_MODEL STREQUAL "openmp")
|
||||
target_link_libraries(f2c PRIVATE OpenMP::OpenMP_C)
|
||||
if((NOT ${OpenMP_libomp_LIBRARY} STREQUAL "") AND (NOT WIN32))
|
||||
target_link_libraries(f2c PRIVATE ${OpenMP_libomp_LIBRARY})
|
||||
else()
|
||||
target_link_libraries(f2c PRIVATE OpenMP::OpenMP_C)
|
||||
endif()
|
||||
endif()
|
||||
# Put all those targets under blastest-targets-targets folder name so that they appear all together in IDE.
|
||||
set_target_properties(f2c PROPERTIES FOLDER blastest-targets)
|
||||
@@ -93,7 +97,11 @@ foreach(source ${blastest_sources})
|
||||
)
|
||||
target_link_libraries(${exec_name}.x PRIVATE f2c ${libblis_link} ${LDFLAGS})
|
||||
if(THREADING_MODEL STREQUAL "openmp")
|
||||
target_link_libraries(${exec_name}.x PRIVATE OpenMP::OpenMP_C)
|
||||
if((NOT ${OpenMP_libomp_LIBRARY} STREQUAL "") AND (NOT WIN32))
|
||||
target_link_libraries(${exec_name}.x PRIVATE ${OpenMP_libomp_LIBRARY})
|
||||
else()
|
||||
target_link_libraries(${exec_name}.x PRIVATE OpenMP::OpenMP_C)
|
||||
endif()
|
||||
endif()
|
||||
set_target_properties(${exec_name}.x PROPERTIES CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
# Put all those targets under blastest-targets-targets folder name so that they appear all together in IDE.
|
||||
|
||||
@@ -70,7 +70,11 @@ target_include_directories(test_libblis.x
|
||||
)
|
||||
target_link_libraries(test_libblis.x PRIVATE ${libblis_link} ${LDFLAGS})
|
||||
if(THREADING_MODEL STREQUAL "openmp")
|
||||
target_link_libraries(test_libblis.x PRIVATE OpenMP::OpenMP_C)
|
||||
if((NOT ${OpenMP_libomp_LIBRARY} STREQUAL "") AND (NOT WIN32))
|
||||
target_link_libraries(test_libblis.x PRIVATE ${OpenMP_libomp_LIBRARY})
|
||||
else()
|
||||
target_link_libraries(test_libblis.x PRIVATE OpenMP::OpenMP_C)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# -- Test run/check rules --
|
||||
|
||||
6
vendor/testcpp/CMakeLists.txt
vendored
6
vendor/testcpp/CMakeLists.txt
vendored
@@ -53,7 +53,11 @@ foreach(source ${testcpp_sources})
|
||||
)
|
||||
target_link_libraries(${exec_name} PRIVATE ${LDFLAGS} ${libblis_link})
|
||||
if(THREADING_MODEL STREQUAL "openmp")
|
||||
target_link_libraries(${exec_name} PRIVATE OpenMP::OpenMP_C)
|
||||
if((NOT ${OpenMP_libomp_LIBRARY} STREQUAL "") AND (NOT WIN32))
|
||||
target_link_libraries(${exec_name} PRIVATE ${OpenMP_libomp_LIBRARY})
|
||||
else()
|
||||
target_link_libraries(${exec_name} PRIVATE OpenMP::OpenMP_C)
|
||||
endif()
|
||||
endif()
|
||||
set_target_properties(${exec_name} PROPERTIES CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
# Put all those targets under vendor-testcpp-targets folder name so that they appear all together in IDE.
|
||||
|
||||
Reference in New Issue
Block a user