mirror of https://github.com/microsoft/vcpkg.git
114 lines
3.9 KiB
CMake
114 lines
3.9 KiB
CMake
include(vcpkg_common_functions)
|
|
|
|
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
|
|
set(VCPKG_POLICY_EMPTY_PACKAGE enabled)
|
|
message(WARNING "You do not need this package on macOS, since you already have the Accelerate Framework")
|
|
return()
|
|
endif()
|
|
|
|
if(NOT VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
|
|
message(FATAL_ERROR "openblas can only be built for x64 currently")
|
|
endif()
|
|
|
|
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
|
|
set(ADDITIONAL_PATCH "enable_underscore.patch")
|
|
endif()
|
|
|
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
|
|
set(NO_SHARED 1)
|
|
endif()
|
|
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
|
|
set(NO_STATIC 1)
|
|
endif()
|
|
|
|
vcpkg_from_github(
|
|
OUT_SOURCE_PATH SOURCE_PATH
|
|
REPO xianyi/OpenBLAS
|
|
REF v0.3.6
|
|
SHA512 1ad980176a51f70d8b0b2d158da8c01f30f77b7cf385b24a6340d3c5feb1513bd04b9390487d05cc9557db7dc5f7c135b1688dec9f17ebef35dba884ef7ddee9
|
|
HEAD_REF develop
|
|
PATCHES
|
|
uwp.patch
|
|
fix_space_path.patch
|
|
${ADDITIONAL_PATCH}
|
|
)
|
|
|
|
find_program(GIT NAMES git git.cmd)
|
|
|
|
# sed and awk are installed with git but in a different directory
|
|
get_filename_component(GIT_EXE_PATH ${GIT} DIRECTORY)
|
|
set(SED_EXE_PATH "${GIT_EXE_PATH}/../usr/bin")
|
|
|
|
# openblas require perl to generate .def for exports
|
|
vcpkg_find_acquire_program(PERL)
|
|
get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY)
|
|
set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH};${SED_EXE_PATH}")
|
|
|
|
set(COMMON_OPTIONS -DBUILD_WITHOUT_LAPACK=ON)
|
|
|
|
# for UWP version, must build non uwp first for helper
|
|
# binaries.
|
|
if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
|
|
message(STATUS "Building Windows helper files")
|
|
set(TEMP_CMAKE_SYSTEM_NAME "${VCPKG_CMAKE_SYSTEM_NAME}")
|
|
set(TEMP_CMAKE_SYSTEM_VERSION "${VCPKG_CMAKE_SYSTEM_VERSION}")
|
|
set(TEMP_TARGET_TRIPLET "${TARGET_TRIPLET}")
|
|
unset(VCPKG_CMAKE_SYSTEM_NAME)
|
|
unset(VCPKG_CMAKE_SYSTEM_VERSION)
|
|
set(TARGET_TRIPLET "x64-windows")
|
|
|
|
vcpkg_configure_cmake(
|
|
SOURCE_PATH ${SOURCE_PATH}
|
|
OPTIONS
|
|
${COMMON_OPTIONS}
|
|
-DTARGET=NEHALEM
|
|
)
|
|
|
|
# add just built path to environment for gen_config_h.exe,
|
|
# getarch.exe and getarch_2nd.exe
|
|
set(ENV{PATH} "$ENV{PATH};${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
|
|
|
|
# restore target build information
|
|
set(VCPKG_CMAKE_SYSTEM_NAME "${TEMP_CMAKE_SYSTEM_NAME}")
|
|
set(VCPKG_CMAKE_SYSTEM_VERSION "${TEMP_CMAKE_SYSTEM_VERSION}")
|
|
set(TARGET_TRIPLET "${TEMP_TARGET_TRIPLET}")
|
|
|
|
message(STATUS "Finished building Windows helper files")
|
|
|
|
vcpkg_configure_cmake(
|
|
SOURCE_PATH ${SOURCE_PATH}
|
|
OPTIONS
|
|
${COMMON_OPTIONS}
|
|
-DCMAKE_SYSTEM_PROCESSOR=AMD64
|
|
-DVS_WINRT_COMPONENT=TRUE
|
|
"-DBLASHELPER_BINARY_DIR=${CURRENT_BUILDTREES_DIR}/x64-windows-rel")
|
|
|
|
elseif(NOT VCPKG_CMAKE_SYSTEM_NAME)
|
|
vcpkg_configure_cmake(
|
|
SOURCE_PATH ${SOURCE_PATH}
|
|
OPTIONS
|
|
${COMMON_OPTIONS})
|
|
else()
|
|
vcpkg_configure_cmake(
|
|
SOURCE_PATH ${SOURCE_PATH}
|
|
OPTIONS
|
|
${COMMON_OPTIONS}
|
|
-DTARGET=SANDYBRIDGE
|
|
-DCMAKE_SYSTEM_PROCESSOR=AMD64
|
|
-DBINARY=64
|
|
-DNO_SHARED=${NO_SHARED}
|
|
-DNO_STATIC=${NO_STATIC}
|
|
-DNOFORTRAN=ON)
|
|
endif()
|
|
|
|
|
|
vcpkg_install_cmake()
|
|
vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/OpenBLAS)
|
|
#we install a cmake wrapper since the official FindBLAS thinks that OpenBLAS can solve also LAPACK libraries, while it cannot because we disabled it and we use CLAPACK... maybe we have to trigger finding one package when requesting the other and vice-versa. Wrappers should be ready also to avoid an infinite loop
|
|
file(INSTALL ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/blas)
|
|
vcpkg_copy_pdbs()
|
|
|
|
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)
|
|
|
|
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openblas RENAME copyright)
|