2017-09-07 09:25:42 +08:00
vcpkg_from_github (
O U T _ S O U R C E _ P A T H S O U R C E _ P A T H
R E P O x i a n y i / O p e n B L A S
2021-07-26 08:26:55 +08:00
R E F 9 0 4 f 9 a 2 6 7 d d d b 3 0 e 9 f 1 8 7 e 5 7 2 3 1 e d 1 6 0 a b 2 f 2 7 0 4 # v0.3.15
S H A 5 1 2 d d b 1 e b a 7 b 0 d e f 0 8 4 8 3 d 7 6 1 0 6 7 5 3 3 5 6 4 8 0 1 7 e f f 4 1 d e 3 c b e 2 4 3 5 7 b d 1 5 c 6 9 3 8 c 7 9 9 7 f 1 2 c 4 4 9 f 3 2 d 8 2 2 5 a b b b 5 e f 8 f 7 a 2 e 7 5 0 1 3 2 0 e c 0 5 e 9 7 0 e 8 d d f 8 e 4 c 2 5 f d 8 1 e 8 0 0 2
2017-09-07 09:25:42 +08:00
H E A D _ R E F d e v e l o p
2019-05-03 13:57:43 +08:00
P A T C H E S
2019-03-26 05:32:28 +08:00
u w p . p a t c h
2019-07-19 07:13:10 +08:00
f i x - s p a c e - p a t h . p a t c h
2019-08-31 00:10:30 +08:00
f i x - r e d e f i n i t i o n - f u n c t i o n . p a t c h
2020-10-09 14:00:18 +08:00
f i x - u w p - b u i l d . p a t c h
2021-06-22 04:32:55 +08:00
f i x - m a r c o - c o n f l i c t . p a t c h
2017-04-12 10:45:07 +08:00
)
2017-08-08 05:25:26 +08:00
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" )
2017-04-12 10:45:07 +08:00
# openblas require perl to generate .def for exports
vcpkg_find_acquire_program ( PERL )
get_filename_component ( PERL_EXE_PATH ${ PERL } DIRECTORY )
2020-08-13 01:28:41 +08:00
set ( PATH_BACKUP "$ENV{PATH}" )
vcpkg_add_to_path ( "${PERL_EXE_PATH}" )
vcpkg_add_to_path ( "${SED_EXE_PATH}" )
2017-04-12 10:45:07 +08:00
2021-06-11 07:16:36 +08:00
vcpkg_check_features ( OUT_FEATURE_OPTIONS FEATURE_OPTIONS
F E A T U R E S
t h r e a d s U S E _ T H R E A D
s i m p l e t h r e a d U S E _ S I M P L E _ T H R E A D E D _ L E V E L 3
)
[many ports] improvements for linux/wsl (#6730)
* [many ports] improve compatibility with WSL and mixed case filesystems
* [treehopper] express dependency on libusb, which was not working on non-win32 platforms and is still broken there
* [libharu] add compatibility with non-win32 platforms
* [geogram] fix openblas on linux
[clapack] better integration with linux environment
[visit-struct] put cmake config file in the expected folder
[geogram] remove trailing underscore to enable compatibility with OpenBLAS
* [openblas] playing with underscore, without success
* [openblas/lapack] fix library integration
* [clapack] improve target handling in cmake module
* [openblas] promote self-generated config to default cmake module, otherwise internal ones thinks wrongly that openblas can also solve lapack libs
* [clapack,openblas] improve libraries integration
* [many ports] fix cmake unnecessary target paths, wrong config paths, empty default dependencies, unnecessary [core] tags
* [suitesparse] improve integration with new lapack/openblas mechanism
* [suitesparse] add no underscore postfix also for linux
* [ceres] fix integration with newer openblas/lapack configs
* [aws-c-event-stream] fix regression
* [systemc] fix regression
* [libwebp,geogram] trigger rebuild
* [libwebp,pthread4w] fix regressions
* [glbinding] fix cmake module installation
* [globjects] disentangle unnecessary dependency from qt5
* [jasper] remove broken and unnecessary patches
* [libwebp] fix regression
* [many ports] avoid using BUILD_SHARED_LIBS which is uninitialized in port files
* [clapack] correctly find dlls
* [clapack] use a generic blas as dependency
* [fizz,g2o] restore expected version
* fix mistake
* [many ports] remove WIN32, APPLE and UNIX (again, they keep creeping in) from ports since they are broken and usually break non-win32 ports
* [libressl,openssl] do not try to build one if the other is already installed
* [itk] update ref and patch to avoid regression
* [libressl,openssl] implement full strategy to fix CI
* [libwebp] disable components that are broken on macOS
* [ogre] enable macOS build
* [freeimage,jxrlib,ogre,openexr,protobuf] port patches from #5169
* [ogre] add missing install command
* [ffmpeg] enable wrapper for cmake module
* [ffmpeg] add avresample module finder
* [ffmpeg] improve module detection and exported symbols
* [ffmpeg] add variables to cache
* [thrift] remove unnecessary build option
* [allegro5] fix shared/static inversion
* [protobuf] cleanup
* [libressl] cleanup
* [moos-core] cleanup
* commented features must not be separated from other features, otherwise vcpkg complains
* [itk] fix regression
* [shogun,itk] fix regressions
* [ogre] fix regression
* [opusfile] add compatibility with non-win32
* [itk] fix regression
* [sndfile,libsndfile] remove duplicate, redirect sndfile to libsndfile
* add missing dependencies
* [ismrmrd] fix regression
* [ffmpeg] trigger rebuild
* [clapack,openblas,libogg] fix regressions on macOS
* [libtins] fix regression
* force rebuild windows regressions, unable to reproduce locally
* [mosquitto] enable non-win32 builds
* [json-dto] force rebuild, unable to reproduce regression locally
* [many ports] uniform naming and path length requests
* fix regression
* fix regression
* [ffmpeg] fixes for downstream projects
* clean up - thanks to reviewers
* trigger rebuild of regressions on macOS
* trigger rebuild of regressions on macOS - part2
* Add core back
* Use VCPKG_CONCURRENCY
* Add core back to suitesparse
* Add core back to curl
* Add core back to magnum
* Add core back to magnum
* Add core back to magnum
* Add core back to cgal
2019-06-21 10:11:54 +08:00
set ( COMMON_OPTIONS -DBUILD_WITHOUT_LAPACK=ON )
2019-05-22 07:56:37 +08:00
2021-07-26 08:26:55 +08:00
vcpkg_check_features ( OUT_FEATURE_OPTIONS FEATURE_OPTIONS
F E A T U R E S
" d y n a m i c - a r c h " D Y N A M I C _ A R C H
)
if ( VCPKG_TARGET_IS_OSX )
if ( "dynamic-arch" IN_LIST FEATURES )
vcpkg_check_linkage ( ONLY_DYNAMIC_LIBRARY )
message ( STATUS "Openblas with \" dynamic-arch\ " option for OSX supports only dynamic linkage. It's not a bag of openblas but bug of combination cmake+ninja+osx. See: https://gitlab.kitware.com/cmake/cmake/-/issues/16731" )
endif ( )
endif ( )
2017-08-08 05:25:26 +08:00
# for UWP version, must build non uwp first for helper
# binaries.
2020-08-13 01:28:41 +08:00
if ( VCPKG_TARGET_IS_UWP )
2017-08-08 05:25:26 +08:00
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 (
S O U R C E _ P A T H $ { S O U R C E _ P A T H }
2021-06-11 07:16:36 +08:00
O P T I O N S $ { F E A T U R E _ O P T I O N S }
2019-05-22 07:56:37 +08:00
$ { C O M M O N _ O P T I O N S }
- D T A R G E T = N E H A L E M
2017-08-08 05:25:26 +08:00
)
# add just built path to environment for gen_config_h.exe,
# getarch.exe and getarch_2nd.exe
2020-08-13 01:28:41 +08:00
vcpkg_add_to_path ( "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" )
2017-08-08 05:25:26 +08:00
# 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 (
S O U R C E _ P A T H $ { S O U R C E _ P A T H }
2020-08-28 13:13:05 +08:00
O P T I O N S
2019-05-22 07:56:37 +08:00
$ { C O M M O N _ O P T I O N S }
- D C M A K E _ S Y S T E M _ P R O C E S S O R = A M D 6 4
- D V S _ W I N R T _ C O M P O N E N T = T R U E
" - D B L A S H E L P E R _ B I N A R Y _ D I R = $ { C U R R E N T _ B U I L D T R E E S _ D I R } / x 6 4 - w i n d o w s - r e l " )
2017-08-08 05:25:26 +08:00
2020-08-13 01:28:41 +08:00
elseif ( VCPKG_TARGET_IS_WINDOWS )
2019-02-02 04:20:58 +08:00
vcpkg_configure_cmake (
2019-07-19 07:13:10 +08:00
P R E F E R _ N I N J A
2019-02-02 04:20:58 +08:00
S O U R C E _ P A T H $ { S O U R C E _ P A T H }
2019-05-22 07:56:37 +08:00
O P T I O N S
2021-06-11 07:16:36 +08:00
$ { C O M M O N _ O P T I O N S }
2021-07-26 08:26:55 +08:00
$ { F E A T U R E _ O P T I O N S }
2021-06-11 07:16:36 +08:00
)
2017-08-08 05:25:26 +08:00
else ( )
2021-07-23 13:05:06 +08:00
string ( APPEND VCPKG_C_FLAGS " -DNEEDBUNDERSCORE" ) # Required to get common BLASFUNC to append extra _
string ( APPEND VCPKG_CXX_FLAGS " -DNEEDBUNDERSCORE" )
2017-08-08 05:25:26 +08:00
vcpkg_configure_cmake (
S O U R C E _ P A T H $ { S O U R C E _ P A T H }
2019-05-22 07:56:37 +08:00
O P T I O N S
$ { C O M M O N _ O P T I O N S }
2021-07-26 08:26:55 +08:00
$ { F E A T U R E _ O P T I O N S }
2019-07-19 07:13:10 +08:00
- D N O F O R T R A N = O N
- D B U = _ #required for all blas functions to append extra _ using NAME
)
2017-08-08 05:25:26 +08:00
endif ( )
2017-04-12 10:45:07 +08:00
vcpkg_install_cmake ( )
2019-07-19 07:13:10 +08:00
vcpkg_fixup_cmake_targets ( CONFIG_PATH share/cmake/OpenBLAS TARGET_PATH share/openblas )
2020-08-13 01:28:41 +08:00
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 ( )
2019-07-19 07:13:10 +08:00
#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
# but I think in most case, libraries will not include these files, they define their own used function prototypes
# this is only to quite vcpkg
file ( COPY ${ CMAKE_CURRENT_LIST_DIR } /openblas_common.h DESTINATION ${ CURRENT_PACKAGES_DIR } /include )
file ( READ ${ SOURCE_PATH } /cblas.h CBLAS_H )
string ( REPLACE "#include \" common.h\ "" "#include \" openblas_common.h\ "" CBLAS_H "${CBLAS_H}" )
file ( WRITE ${ CURRENT_PACKAGES_DIR } /include/cblas.h "${CBLAS_H}" )
2017-04-12 10:45:07 +08:00
vcpkg_copy_pdbs ( )
2017-08-08 05:25:26 +08:00
2019-02-02 04:20:58 +08:00
file ( REMOVE_RECURSE ${ CURRENT_PACKAGES_DIR } /debug/include ${ CURRENT_PACKAGES_DIR } /debug/share )
2020-08-28 13:13:05 +08:00
file ( INSTALL ${ SOURCE_PATH } /LICENSE DESTINATION ${ CURRENT_PACKAGES_DIR } /share/ ${ PORT } RENAME copyright )