From 695d2a8a4de7a4065edc514508795d83b5dd4eb3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jack=C2=B7Boos=C2=B7Yu?= <47264268+JackBoosY@users.noreply.github.com> Date: Fri, 1 May 2020 01:05:06 +0800 Subject: [PATCH] [armadillo] Add dependent port superlu on osx (#11063) * [armadillo] Add dependent port superlu on osx * [armadillo] Suppress automatic dependency enablement * [mlpack] Re-enable in CI Co-authored-by: Robert Schumacher --- ports/armadillo/CONTROL | 2 +- .../armadillo/add-disable-find-package.patch | 92 +++++++++++++++++++ ports/armadillo/portfile.cmake | 11 ++- scripts/ci.baseline.txt | 2 - 4 files changed, 101 insertions(+), 6 deletions(-) create mode 100644 ports/armadillo/add-disable-find-package.patch diff --git a/ports/armadillo/CONTROL b/ports/armadillo/CONTROL index 41b52bea7..463b8e670 100644 --- a/ports/armadillo/CONTROL +++ b/ports/armadillo/CONTROL @@ -1,4 +1,4 @@ Source: armadillo -Version: 2019-04-16-6 +Version: 2019-04-16-8 Description: Armadillo is a high quality linear algebra library (matrix maths) for the C++ language, aiming towards a good balance between speed and ease of use Build-Depends: openblas (!osx), clapack (!osx) diff --git a/ports/armadillo/add-disable-find-package.patch b/ports/armadillo/add-disable-find-package.patch new file mode 100644 index 000000000..65197e202 --- /dev/null +++ b/ports/armadillo/add-disable-find-package.patch @@ -0,0 +1,92 @@ +diff --git a/cmake_aux/Modules/ARMA_FindACML.cmake b/cmake_aux/Modules/ARMA_FindACML.cmake +index 7d0655e..fa435ff 100644 +--- a/cmake_aux/Modules/ARMA_FindACML.cmake ++++ b/cmake_aux/Modules/ARMA_FindACML.cmake +@@ -5,6 +5,11 @@ + # also defined, but not for general use are + # ACML_LIBRARY, where to find the ACML library. + ++if(CMAKE_DISABLE_FIND_PACKAGE_ACML) ++ set(ACML_FOUND "NO") ++ return() ++endif() ++ + SET(ACML_NAMES ${ACML_NAMES} acml) + FIND_LIBRARY(ACML_LIBRARY + NAMES ${ACML_NAMES} +diff --git a/cmake_aux/Modules/ARMA_FindACMLMP.cmake b/cmake_aux/Modules/ARMA_FindACMLMP.cmake +index 3390179..ead7b1e 100644 +--- a/cmake_aux/Modules/ARMA_FindACMLMP.cmake ++++ b/cmake_aux/Modules/ARMA_FindACMLMP.cmake +@@ -5,6 +5,11 @@ + # also defined, but not for general use are + # ACMLMP_LIBRARY, where to find the ACMLMP library. + ++if(CMAKE_DISABLE_FIND_PACKAGE_ACMLMP) ++ set(ACMLMP_FOUND NO) ++ return() ++endif() ++ + SET(ACMLMP_NAMES ${ACMLMP_NAMES} acml_mp) + FIND_LIBRARY(ACMLMP_LIBRARY + NAMES ${ACMLMP_NAMES} +diff --git a/cmake_aux/Modules/ARMA_FindARPACK.cmake b/cmake_aux/Modules/ARMA_FindARPACK.cmake +index 1a709ad..3029c25 100644 +--- a/cmake_aux/Modules/ARMA_FindARPACK.cmake ++++ b/cmake_aux/Modules/ARMA_FindARPACK.cmake +@@ -4,6 +4,10 @@ + # ARPACK_FOUND - system has ARPACK + # ARPACK_LIBRARY - Link this to use ARPACK + ++if(CMAKE_DISABLE_FIND_PACKAGE_ARPACK) ++ set(ARPACK_FOUND NO) ++ return() ++endif() + + find_library(ARPACK_LIBRARY + NAMES arpack +diff --git a/cmake_aux/Modules/ARMA_FindATLAS.cmake b/cmake_aux/Modules/ARMA_FindATLAS.cmake +index 491a361..e40a0ff 100644 +--- a/cmake_aux/Modules/ARMA_FindATLAS.cmake ++++ b/cmake_aux/Modules/ARMA_FindATLAS.cmake +@@ -1,3 +1,8 @@ ++if(CMAKE_DISABLE_FIND_PACKAGE_ATLAS) ++ set(ATLAS_FOUND NO) ++ return() ++endif() ++ + find_path(ATLAS_CBLAS_INCLUDE_DIR + NAMES cblas.h + PATHS /usr/include/atlas/ /usr/include/ /usr/local/include/atlas/ /usr/local/include/ +diff --git a/cmake_aux/Modules/ARMA_FindMKL.cmake b/cmake_aux/Modules/ARMA_FindMKL.cmake +index 0fd5b06..d6bcd49 100644 +--- a/cmake_aux/Modules/ARMA_FindMKL.cmake ++++ b/cmake_aux/Modules/ARMA_FindMKL.cmake +@@ -6,6 +6,11 @@ + ## the link below explains why we're linking only with mkl_rt + ## https://software.intel.com/en-us/articles/a-new-linking-model-single-dynamic-library-mkl_rt-since-intel-mkl-103 + ++if(CMAKE_DISABLE_FIND_PACKAGE_MKL) ++ set(MKL_FOUND NO) ++ return() ++endif() ++ + set(MKL_NAMES ${MKL_NAMES} mkl_rt) + #set(MKL_NAMES ${MKL_NAMES} mkl_lapack) + #set(MKL_NAMES ${MKL_NAMES} mkl_intel_thread) +diff --git a/cmake_aux/Modules/ARMA_FindSuperLU5.cmake b/cmake_aux/Modules/ARMA_FindSuperLU5.cmake +index abf046d..e496cb0 100644 +--- a/cmake_aux/Modules/ARMA_FindSuperLU5.cmake ++++ b/cmake_aux/Modules/ARMA_FindSuperLU5.cmake +@@ -5,6 +5,11 @@ + # SuperLU_LIBRARY - Link this to use SuperLU + # SuperLU_INCLUDE_DIR - directory of SuperLU headers + ++if(CMAKE_DISABLE_FIND_PACKAGE_SuperLU) ++ set(SuperLU_FOUND OFF) ++ return() ++endif() ++ + find_path(SuperLU_INCLUDE_DIR slu_ddefs.h + /usr/include/superlu/ + /usr/include/SuperLU/ diff --git a/ports/armadillo/portfile.cmake b/ports/armadillo/portfile.cmake index 512aa813e..586864495 100644 --- a/ports/armadillo/portfile.cmake +++ b/ports/armadillo/portfile.cmake @@ -1,5 +1,3 @@ -include(vcpkg_common_functions) - vcpkg_check_linkage(ONLY_STATIC_LIBRARY) vcpkg_from_gitlab( @@ -11,7 +9,8 @@ vcpkg_from_gitlab( HEAD_REF 9.400.x PATCHES remove_custom_modules.patch - fix-CMakePath.patch + fix-CMakePath.patch + add-disable-find-package.patch ) file(REMOVE ${SOURCE_PATH}/cmake_aux/Modules/ARMA_FindBLAS.cmake) @@ -24,6 +23,12 @@ vcpkg_configure_cmake( PREFER_NINJA OPTIONS -DDETECT_HDF5=false + -DCMAKE_DISABLE_FIND_PACKAGE_SuperLU=ON + -DCMAKE_DISABLE_FIND_PACKAGE_ACML=ON + -DCMAKE_DISABLE_FIND_PACKAGE_ACMLMP=ON + -DCMAKE_DISABLE_FIND_PACKAGE_ARPACK=ON + -DCMAKE_DISABLE_FIND_PACKAGE_ATLAS=ON + -DCMAKE_DISABLE_FIND_PACKAGE_MKL=ON ) vcpkg_install_cmake() diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index e80c4d118..ed44356d7 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1081,8 +1081,6 @@ miniupnpc:arm-uwp=fail miniupnpc:x64-uwp=fail minizip:arm-uwp=fail minizip:x64-uwp=fail -mlpack:x64-linux=ignore -mlpack:x64-osx=ignore mman:x64-linux=fail mman:x64-osx=fail # mmx installs many problematic headers, such as `json.h` and `sched.h`