|
| 1 | +set(VCPKG_POLICY_EMPTY_INCLUDE_FOLDER enabled) # Numpy iuncludes are stored in the module itself |
| 2 | +set(VCPKG_BUILD_TYPE release) # No debug builds required for pure python modules since vcpkg does not install a debug python executable. |
| 3 | + |
| 4 | +find_program(VCPKG_PYTHON3 NAMES python${PYTHON3_VERSION_MAJOR}.${PYTHON3_VERSION_MINOR} python${PYTHON3_VERSION_MAJOR} python PATHS "${VCPKG_PYTHON3_BASEDIR}" NO_DEFAULT_PATH) |
| 5 | +find_program(VCPKG_CYTHON NAMES cython PATHS "${VCPKG_PYTHON3_BASEDIR}" "${VCPKG_PYTHON3_BASEDIR}/Scripts" NO_DEFAULT_PATH) |
| 6 | +message(STATUS "PYTHON3:${VCPKG_PYTHON3}") |
| 7 | +set(ENV{PYTHON3} "${VCPKG_PYTHON3}") |
| 8 | +set(PYTHON3 "${VCPKG_PYTHON3}") |
| 9 | + |
| 10 | +vcpkg_add_to_path(PREPEND "${VCPKG_PYTHON3_BASEDIR}") |
| 11 | +if(VCPKG_TARGET_IS_WINDOWS) |
| 12 | + vcpkg_add_to_path(PREPEND "${VCPKG_PYTHON3_BASEDIR}/Scripts") |
| 13 | +endif() |
| 14 | + |
| 15 | +vcpkg_from_github( |
| 16 | + OUT_SOURCE_PATH SOURCE_PATH |
| 17 | + REPO numpy/numpy |
| 18 | + REF 411a55b9ec084c3315fe5f199351c31d0eb3c352 |
| 19 | + SHA512 44d46d7c4b1e8a568e63951cf424f49dd47a5f3f9ad673a548c954ba373d353af03e12f07d7fa6f523c1dd91431d0f428d1e24703757928b1e9a0f50ada28ee7 |
| 20 | + HEAD_REF main |
| 21 | +) |
| 22 | + |
| 23 | +vcpkg_from_github( |
| 24 | + OUT_SOURCE_PATH SOURCE_PATH_SIMD |
| 25 | + REPO intel/x86-simd-sort |
| 26 | + REF 3c9bf9a5c69bc90f51e34aa039f914652d8b31cd |
| 27 | + SHA512 1940346206e9988c42dfeb0907d34ac6320db067913c837b14028c89c5f41508c1abc1162996a305430a1186bf824d95129ae48178e77d44120cbf1246230749 |
| 28 | + HEAD_REF main |
| 29 | +) |
| 30 | + |
| 31 | +vcpkg_from_github( |
| 32 | + OUT_SOURCE_PATH SOURCE_PATH_MESON_NUMPY |
| 33 | + REPO numpy/meson |
| 34 | + REF 067efcb7f59d4cef86c11f9ef7dd64828c48a9b8 |
| 35 | + SHA512 f1bb457de6e1123c7a69ee39c39dacfdb01001391dbb78e3c864ca5506029409a6153f951e59e4ba4bb0441340a0c686c95a287087e92856dac4009e6379b5a5 |
| 36 | + HEAD_REF main |
| 37 | +) |
| 38 | + |
| 39 | +cmake_path(GET SCRIPT_MESON PARENT_PATH MESON_DIR) |
| 40 | +file(COPY "${SOURCE_PATH_MESON_NUMPY}/mesonbuild/modules/features" DESTINATION "${MESON_DIR}/mesonbuild/modules") |
| 41 | + |
| 42 | +file(COPY "${SOURCE_PATH_SIMD}/" DESTINATION "${SOURCE_PATH}/numpy/core/src/npysort/x86-simd-sort") |
| 43 | +set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) |
| 44 | + |
| 45 | +vcpkg_from_github( |
| 46 | + OUT_SOURCE_PATH SOURCE_PATH_SVML |
| 47 | + REPO numpy/SVML |
| 48 | + REF 958caeac44d66878ab36d364c863bde47c0c69e2 |
| 49 | + SHA512 444c1f765e875cc3eb55e48bcb8fa0c0d5b2e47cc5db16287e424f16b025cdbaf18f5d5eb6ccee6f5d0311e545ba9b8fdfa0f0cbc09508b38ce372afb339f8c7 |
| 50 | + HEAD_REF main |
| 51 | +) |
| 52 | + |
| 53 | +file(COPY "${SOURCE_PATH_SVML}/" DESTINATION "${SOURCE_PATH}/numpy/core/src/umath/svml") |
| 54 | + |
| 55 | +vcpkg_replace_string("${SOURCE_PATH}/meson.build" "py.dependency()" "dependency('python-3.${PYTHON3_VERSION_MINOR}', method : 'pkg-config')") |
| 56 | + |
| 57 | +vcpkg_configure_meson( |
| 58 | + SOURCE_PATH "${SOURCE_PATH}" |
| 59 | + OPTIONS |
| 60 | + -Dblas=blas |
| 61 | + -Dlapack=lapack |
| 62 | + -Duse-ilp64=true |
| 63 | + ADDITIONAL_BINARIES |
| 64 | + cython=['${VCPKG_CYTHON}'] |
| 65 | + python3=['${VCPKG_PYTHON3}'] |
| 66 | + python=['${VCPKG_PYTHON3}'] |
| 67 | + ) |
| 68 | +vcpkg_install_meson() |
| 69 | +vcpkg_fixup_pkgconfig() |
| 70 | + |
| 71 | +set(subdir "${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/") |
| 72 | +if(VCPKG_TARGET_IS_WINDOWS) |
| 73 | + set(subdir "${CURRENT_PACKAGES_DIR}/lib/site-packages/") |
| 74 | +endif() |
| 75 | +set(pyfile "${subdir}/numpy/__config__.py") |
| 76 | +file(READ "${pyfile}" contents) |
| 77 | +string(REPLACE "${CURRENT_INSTALLED_DIR}" "$(prefix)" contents "${contents}") |
| 78 | +file(WRITE "${pyfile}" "${contents}") |
| 79 | + |
| 80 | + |
| 81 | +if(VCPKG_TARGET_IS_WINDOWS) |
| 82 | + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}") |
| 83 | + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/site-packages/numpy" "${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/numpy") |
| 84 | + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib") |
| 85 | +endif() |
| 86 | + |
| 87 | +file(REMOVE_RECURSE |
| 88 | + "${CURRENT_PACKAGES_DIR}/debug/include" |
| 89 | + "${CURRENT_PACKAGES_DIR}/debug/share" |
| 90 | +) |
| 91 | + |
| 92 | +vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE.txt") |
| 93 | + |
| 94 | +# Add required Metadata for some python build plugins |
| 95 | +file(WRITE "${CURRENT_PACKAGES_DIR}/${PYTHON3_SITE}/numpy-${VERSION}.dist-info/METADATA" |
| 96 | +"Metadata-Version: 2.1\n\ |
| 97 | +Name: numpy\n\ |
| 98 | +Version: ${VERSION}" |
| 99 | +) |
| 100 | + |
| 101 | +vcpkg_python_test_import(MODULE "numpy") |
0 commit comments