aboutsummaryrefslogtreecommitdiff
path: root/ports/openblas
diff options
context:
space:
mode:
authorAlexander Neumann <30894796+Neumann-A@users.noreply.github.com>2020-08-12 19:28:41 +0200
committerGitHub <noreply@github.com>2020-08-12 10:28:41 -0700
commitf3b96f339c3179f8f1c46b412d192e0c8a84eb5e (patch)
tree1602ac95f8097220ffb55a62bbce63322cab3a5b /ports/openblas
parentdea76199aad32b41af3e6d33a265d62d187a3da2 (diff)
downloadvcpkg-f3b96f339c3179f8f1c46b412d192e0c8a84eb5e.tar.gz
vcpkg-f3b96f339c3179f8f1c46b412d192e0c8a84eb5e.zip
[lapack-reference|fortran] Add new port (#12805)
* [vcpkg/script] add vcpkg_find_fortran * [openblas] add pkg-config fixes * [lapack] add lapack-reference and reduce dependency on clapack * fix build issues * dont touch any main files * move toolchain var into parent scope * fix a few more issues * create link in the noblas case * removed unnecessary check handled by vcpkg_find_fortran. * move dumpbin check * fix last issue * depend on openblas * set cmake_binary_dir so that compiler id run gets put into buildtree. * more paths * add missing PARENT_SCOPE * ws change * [mlpack] remove dep on clapack * comment out patches * remove openblas again * Install lapack wrapper since it is missing linkage against -lm and -lgfortran * PREPEND mingw path to make sure cmake picks it up correctly * depend on openblas also on osx * add clapack on windows to skip due to conflicting library installs * add clapack to skip on linux * add -fPIC as a fortran compiler flag * do not add the flag on windows * add gcc explicitly to the cmake args. * ws change * applyrequested changes from CR * fix the failing patch
Diffstat (limited to 'ports/openblas')
-rw-r--r--ports/openblas/CONTROL5
-rw-r--r--ports/openblas/portfile.cmake32
2 files changed, 27 insertions, 10 deletions
diff --git a/ports/openblas/CONTROL b/ports/openblas/CONTROL
index 3c2b0b7eb..ea246834d 100644
--- a/ports/openblas/CONTROL
+++ b/ports/openblas/CONTROL
@@ -1,5 +1,6 @@
Source: openblas
-Version: 0.3.9-1
+Version: 0.3.9
+Port-Version: 2
Homepage: https://github.com/xianyi/OpenBLAS
-Build-Depends: pthread (linux)
+Build-Depends: pthread (linux&osx)
Description: OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
diff --git a/ports/openblas/portfile.cmake b/ports/openblas/portfile.cmake
index 2decb5883..57b9236ac 100644
--- a/ports/openblas/portfile.cmake
+++ b/ports/openblas/portfile.cmake
@@ -1,5 +1,3 @@
-include(vcpkg_common_functions)
-
vcpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO xianyi/OpenBLAS
@@ -22,13 +20,15 @@ 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(PATH_BACKUP "$ENV{PATH}")
+vcpkg_add_to_path("${PERL_EXE_PATH}")
+vcpkg_add_to_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")
+if(VCPKG_TARGET_IS_UWP)
message(STATUS "Building Windows helper files")
set(TEMP_CMAKE_SYSTEM_NAME "${VCPKG_CMAKE_SYSTEM_NAME}")
set(TEMP_CMAKE_SYSTEM_VERSION "${VCPKG_CMAKE_SYSTEM_VERSION}")
@@ -46,7 +46,7 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
# 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")
+ vcpkg_add_to_path("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
# restore target build information
set(VCPKG_CMAKE_SYSTEM_NAME "${TEMP_CMAKE_SYSTEM_NAME}")
@@ -63,7 +63,7 @@ if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
-DVS_WINRT_COMPONENT=TRUE
"-DBLASHELPER_BINARY_DIR=${CURRENT_BUILDTREES_DIR}/x64-windows-rel")
-elseif(NOT VCPKG_CMAKE_SYSTEM_NAME)
+elseif(VCPKG_TARGET_IS_WINDOWS)
vcpkg_configure_cmake(
PREFER_NINJA
SOURCE_PATH ${SOURCE_PATH}
@@ -85,6 +85,23 @@ endif()
vcpkg_install_cmake()
vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/OpenBLAS TARGET_PATH share/openblas)
+set(ENV{PATH} "${PATH_BACKUP}")
+
+set(pcfile "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/openblas.pc")
+if(EXISTS "${pcfile}")
+ file(READ "${pcfile}" _contents)
+ set(_contents "prefix=${CURRENT_INSTALLED_DIR}\n${_contents}")
+ file(WRITE "${pcfile}" "${_contents}")
+ #file(CREATE_LINK "${pcfile}" "${CURRENT_PACKAGES_DIR}/lib/pkgconfig/blas.pc" COPY_ON_ERROR)
+endif()
+set(pcfile "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/openblas.pc")
+if(EXISTS "${pcfile}")
+ file(READ "${pcfile}" _contents)
+ set(_contents "prefix=${CURRENT_INSTALLED_DIR}/debug\n${_contents}")
+ file(WRITE "${pcfile}" "${_contents}")
+ #file(CREATE_LINK "${pcfile}" "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig/blas.pc" COPY_ON_ERROR)
+endif()
+vcpkg_fixup_pkgconfig()
#maybe we need also to write a wrapper inside share/blas to search implicitly for openblas, whenever we feel it's ready for its own -config.cmake file
# openblas do not make the config file , so I manually made this
@@ -97,8 +114,7 @@ string(REPLACE "#include \"common.h\"" "#include \"openblas_common.h\"" CBLAS_H
file(WRITE ${CURRENT_PACKAGES_DIR}/include/cblas.h "${CBLAS_H}")
# openblas is BSD
-file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/openblas)
-file(RENAME ${CURRENT_PACKAGES_DIR}/share/openblas/LICENSE ${CURRENT_PACKAGES_DIR}/share/openblas/copyright)
+file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/blas)
file(COPY ${CMAKE_CURRENT_LIST_DIR}/FindBLAS.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/blas)