From 5e928c2f0a783604b539bef2375cc2368a82e365 Mon Sep 17 00:00:00 2001 From: Mario Fortier <4542410+mario4tier@users.noreply.github.com> Date: Mon, 13 Jul 2026 17:11:38 -0400 Subject: [PATCH] [talib] update to 0.7.1 (#52719) Co-authored-by: mario4tier --- ports/talib/fix-forced-install-prefix.patch | 19 +++ ports/talib/no-system-cleanup.patch | 10 ++ ports/talib/portfile.cmake | 148 +++++++------------- ports/talib/vcpkg.json | 6 +- versions/baseline.json | 2 +- versions/t-/talib.json | 5 + 6 files changed, 87 insertions(+), 103 deletions(-) create mode 100644 ports/talib/fix-forced-install-prefix.patch create mode 100644 ports/talib/no-system-cleanup.patch diff --git a/ports/talib/fix-forced-install-prefix.patch b/ports/talib/fix-forced-install-prefix.patch new file mode 100644 index 0000000000..21582b22d6 --- /dev/null +++ b/ports/talib/fix-forced-install-prefix.patch @@ -0,0 +1,19 @@ +--- a/CMakeLists.txt 2026-07-03 13:23:38.000000000 -0400 ++++ b/CMakeLists.txt 2026-07-03 14:39:31.155802967 -0400 +@@ -23,10 +23,12 @@ + endif() + + if(WIN32) +- if(CMAKE_SIZEOF_VOID_P EQUAL 8) +- set(CMAKE_INSTALL_PREFIX "C:/Program Files/TA-Lib" CACHE PATH "Installation Directory" FORCE) +- else() +- set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/TA-Lib" CACHE PATH "Installation Directory" FORCE) ++ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) ++ if(CMAKE_SIZEOF_VOID_P EQUAL 8) ++ set(CMAKE_INSTALL_PREFIX "C:/Program Files/TA-Lib" CACHE PATH "Installation Directory" FORCE) ++ else() ++ set(CMAKE_INSTALL_PREFIX "C:/Program Files (x86)/TA-Lib" CACHE PATH "Installation Directory" FORCE) ++ endif() + endif() + + if(DEFINED ENV{Platform}) diff --git a/ports/talib/no-system-cleanup.patch b/ports/talib/no-system-cleanup.patch new file mode 100644 index 0000000000..101fa146b3 --- /dev/null +++ b/ports/talib/no-system-cleanup.patch @@ -0,0 +1,10 @@ +--- a/CMakeLists.txt 2026-07-10 12:07:34.514505823 -0400 ++++ b/CMakeLists.txt 2026-07-10 12:07:54.722504260 -0400 +@@ -456,7 +456,6 @@ + " endforeach()\n" + "endif()\n" + ) +- install(SCRIPT ${CMAKE_BINARY_DIR}/cleanup_glob.cmake ) + endif() + + if(BUILD_DEV_TOOLS) diff --git a/ports/talib/portfile.cmake b/ports/talib/portfile.cmake index 938fb84644..b7e28ca6b1 100644 --- a/ports/talib/portfile.cmake +++ b/ports/talib/portfile.cmake @@ -2,109 +2,59 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO "TA-Lib/ta-lib" REF "v${VERSION}" - SHA512 189702beda83f9ebe16ef7d08d8bba76068a71b63409e2e00f1a5a4a06997037d54f048778323fcc6482fe1e5ce9125314b4d4b7a12dee5d64c5b0d3879fca45 + SHA512 c8b9daf922cc98119e96a5bdb54187669e2f26be53fded8c7056630496b1410848fca7d37ff895f1ce8d6449853174ce2b5d2b3153ddbdc854af69c9c8ea68c7 + PATCHES + fix-forced-install-prefix.patch + no-system-cleanup.patch ) if(VCPKG_TARGET_IS_WINDOWS) vcpkg_check_linkage(ONLY_STATIC_LIBRARY) - if(VCPKG_CRT_LINKAGE STREQUAL "dynamic") - set(LFLAG "d") - else() - set(LFLAG "m") - endif() - - # Debug build - if (NOT VCPKG_BUILD_TYPE) - file(MAKE_DIRECTORY "${SOURCE_PATH}/temp/c${LFLAG}d") - file(MAKE_DIRECTORY "${SOURCE_PATH}/temp/c${LFLAG}d/gen_code") - set(TALIB_SUBDIRS ta_common ta_func ta_abstract ta_libc gen_code) - foreach(subdir IN LISTS TALIB_SUBDIRS) - vcpkg_execute_build_process( - COMMAND nmake /nologo -f Makefile - WORKING_DIRECTORY "${SOURCE_PATH}/make/c${LFLAG}d/win32/msvc/${subdir}" - LOGNAME build-${TARGET_TRIPLET}-dbg-${subdir} - ) - endforeach() - - file( - INSTALL "${SOURCE_PATH}/lib/ta_abstract_c${LFLAG}d.lib" - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib - RENAME ta_abstract.lib - ) - file( - INSTALL "${SOURCE_PATH}/lib/ta_libc_c${LFLAG}d.lib" - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib - RENAME ta_libc.lib - ) - file( - INSTALL "${SOURCE_PATH}/lib/ta_func_c${LFLAG}d.lib" - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib - RENAME ta_func.lib - ) - file( - INSTALL "${SOURCE_PATH}/lib/ta_common_c${LFLAG}d.lib" - DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib - RENAME ta_common.lib - ) - endif() - - # Release build - file(MAKE_DIRECTORY "${SOURCE_PATH}/temp/c${LFLAG}r") - file(MAKE_DIRECTORY "${SOURCE_PATH}/temp/c${LFLAG}r/gen_code") - set(TALIB_SUBDIRS ta_common ta_func ta_abstract ta_libc gen_code) - foreach(subdir IN LISTS TALIB_SUBDIRS) - vcpkg_execute_build_process( - COMMAND nmake /nologo -f Makefile - WORKING_DIRECTORY "${SOURCE_PATH}/make/c${LFLAG}r/win32/msvc/${subdir}" - LOGNAME build-${TARGET_TRIPLET}-rel-${subdir} - ) - endforeach() - - file( - INSTALL "${SOURCE_PATH}/lib/ta_abstract_c${LFLAG}r.lib" - DESTINATION ${CURRENT_PACKAGES_DIR}/lib - RENAME ta_abstract.lib - ) - file( - INSTALL "${SOURCE_PATH}/lib/ta_libc_c${LFLAG}r.lib" - DESTINATION ${CURRENT_PACKAGES_DIR}/lib - RENAME ta_libc.lib - ) - file( - INSTALL "${SOURCE_PATH}/lib/ta_func_c${LFLAG}r.lib" - DESTINATION ${CURRENT_PACKAGES_DIR}/lib - RENAME ta_func.lib - ) - file( - INSTALL "${SOURCE_PATH}/lib/ta_common_c${LFLAG}r.lib" - DESTINATION ${CURRENT_PACKAGES_DIR}/lib - RENAME ta_common.lib - ) - - # Include files - file( - INSTALL "${SOURCE_PATH}/include" - DESTINATION ${CURRENT_PACKAGES_DIR} - PATTERN Makefile.* EXCLUDE - ) - file( - INSTALL "${SOURCE_PATH}/include/" - DESTINATION "${CURRENT_PACKAGES_DIR}/include/ta-lib" - PATTERN Makefile.* EXCLUDE - ) - file(INSTALL - "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" - DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" - ) -else() - vcpkg_cmake_configure(SOURCE_PATH "${SOURCE_PATH}" - DISABLE_PARALLEL_CONFIGURE) - vcpkg_cmake_install() - file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") - file(INSTALL - "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" - DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" - ) endif() + +# Since upstream 0.6.1 the only supported build systems are CMake and +# autotools on every platform; the make/ msvc tree this port used to +# drive on Windows no longer exists in the source archive. +vcpkg_cmake_configure( + SOURCE_PATH "${SOURCE_PATH}" + DISABLE_PARALLEL_CONFIGURE + OPTIONS + -DBUILD_DEV_TOOLS=OFF +) +vcpkg_cmake_install() + +# Upstream always builds and installs both the shared and the static +# library. Keep only what matches the triplet's linkage. +if(VCPKG_TARGET_IS_WINDOWS) + # Static-only on Windows: drop the DLL and its import library, and + # let the static library take the canonical name. + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") + file(REMOVE "${CURRENT_PACKAGES_DIR}/lib/ta-lib.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/ta-lib.lib") + file(RENAME "${CURRENT_PACKAGES_DIR}/lib/ta-lib-static.lib" "${CURRENT_PACKAGES_DIR}/lib/ta-lib.lib") + if(EXISTS "${CURRENT_PACKAGES_DIR}/debug/lib/ta-lib-static.lib") + file(RENAME "${CURRENT_PACKAGES_DIR}/debug/lib/ta-lib-static.lib" "${CURRENT_PACKAGES_DIR}/debug/lib/ta-lib.lib") + endif() +elseif(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(GLOB _talib_shared + "${CURRENT_PACKAGES_DIR}/lib/libta-lib*.so*" + "${CURRENT_PACKAGES_DIR}/lib/libta-lib*.dylib" + "${CURRENT_PACKAGES_DIR}/debug/lib/libta-lib*.so*" + "${CURRENT_PACKAGES_DIR}/debug/lib/libta-lib*.dylib") + if(_talib_shared) + file(REMOVE ${_talib_shared}) + endif() +else() + file(REMOVE + "${CURRENT_PACKAGES_DIR}/lib/libta-lib.a" + "${CURRENT_PACKAGES_DIR}/debug/lib/libta-lib.a") +endif() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +file(INSTALL + "${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" + DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" +) + # License file vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE") diff --git a/ports/talib/vcpkg.json b/ports/talib/vcpkg.json index 027eb5786f..17d3e14664 100644 --- a/ports/talib/vcpkg.json +++ b/ports/talib/vcpkg.json @@ -1,10 +1,10 @@ { "name": "talib", - "version-semver": "0.6.4", + "version-semver": "0.7.1", "description": "TA-Lib - Technical Analysis Library", "homepage": "https://ta-lib.github.io/", - "license": "BSD-2-Clause", - "supports": "osx | (windows & !uwp)", + "license": "BSD-3-Clause", + "supports": "linux | osx | (windows & !uwp)", "dependencies": [ { "name": "vcpkg-cmake", diff --git a/versions/baseline.json b/versions/baseline.json index fc14e4fe41..f1ba64e618 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -9985,7 +9985,7 @@ "port-version": 0 }, "talib": { - "baseline": "0.6.4", + "baseline": "0.7.1", "port-version": 0 }, "tanakh-cmdline": { diff --git a/versions/t-/talib.json b/versions/t-/talib.json index cc275a9148..e8580ccb66 100644 --- a/versions/t-/talib.json +++ b/versions/t-/talib.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "8e77a0a4588687c0dd59e77d36cb1baf38684d40", + "version-semver": "0.7.1", + "port-version": 0 + }, { "git-tree": "13b295fd12e2eb8df1c2a2c9cb751205dbf871a1", "version-semver": "0.6.4",