12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- ################################################################################
- # HPCC SYSTEMS software Copyright (C) 2016 HPCC Systems®.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- ################################################################################
- if(NOT CBLAS_FOUND)
- if(WIN32)
- set(cblas_lib "cblas")
- else()
- set(cblas_lib cblas tatlas satlas)
- endif()
- find_path(CBLAS_INCLUDE_DIR NAMES cblas.h)
- find_library(CBLAS_LIBRARIES NAMES ${cblas_lib} PATHS /usr/lib/atlas /usr/lib64/atlas)
- include(FindPackageHandleStandardArgs)
- find_package_handle_standard_args(CBLAS
- DEFAULT_MSG
- CBLAS_LIBRARIES
- CBLAS_INCLUDE_DIR)
- if (APPLE AND ${CMAKE_SYSTEM_VERSION} VERSION_LESS "18.2.0") # 18.2.0 is macOS Mojave (10.14)
- set(LIB_TO_DO ${CBLAS_LIBRARIES})
- set(CBLAS_DEPS_LIBS "")
- foreach (lib libquadmath;libgfortran;libgcc_s)
- message("otool -L ${LIB_TO_DO} | egrep ${lib}(.[0-9]{1,})*.dylib | sed \"s/^[[:space:]]//g\" | cut -d' ' -f1")
- execute_process(
- COMMAND bash "-c" "otool -L \"${LIB_TO_DO}\" | egrep \"${lib}(.[0-9]{1,})*.dylib\" | sed \"s/^[[:space:]]//g\" | cut -d' ' -f1"
- OUTPUT_VARIABLE otoolOut
- ERROR_VARIABLE otoolErr
- OUTPUT_STRIP_TRAILING_WHITESPACE
- )
- if (NOT "${otoolErr}" STREQUAL "")
- message(FATAL_ERROR "Failed to check dependent lib ${lib} for ${LIB_TO_DO}")
- endif()
- if ("${otoolOut}" STREQUAL "")
- message(FATAL_ERROR "${LIB_TO_DO} dependencies changed. Run otool -L check manually and update file FindCBLAS.cmake")
- endif()
- list(APPEND CBLAS_DEPS_LIBS ${otoolOut})
- if ("${otoolOut}" MATCHES ".*libgfortran.*")
- set(LIB_TO_DO "${otoolOut}")
- endif()
- endforeach()
- endif()
- mark_as_advanced(CBLAS_INCLUDE_DIR CBLAS_LIBRARIES)
- endif()
|