From 567669d3ff4db8f3ea7cfe1990bbfc9e3d5175c7 Mon Sep 17 00:00:00 2001 From: Jonas Holzman Date: Mon, 10 Feb 2025 01:22:56 +0100 Subject: [PATCH] Build: Remove unused PCRE dependency OpenCollada used to rely on PCRE (a Perl Regexp library). Since switching to Aras' OpenCollada fork (#122270), the library is no longer needed, but is still required as a dependency. This patch cleans this up by completely removing it from our build system and linux system package installation script. This also lets us remove it from our pre-compiled library platform repos, making the process of recompiling our libraries from scratch easier as it wasn't compiled by our dependency builder anymore. Pull Request: https://projects.blender.org/blender/blender/pulls/134310 --- .../install_linux_packages.py | 16 ----- build_files/cmake/Modules/FindPCRE.cmake | 68 ------------------- .../cmake/platform/platform_apple.cmake | 2 - .../cmake/platform/platform_unix.cmake | 13 ---- .../cmake/platform/platform_win32.cmake | 7 -- source/blender/io/collada/CMakeLists.txt | 1 - 6 files changed, 107 deletions(-) delete mode 100644 build_files/cmake/Modules/FindPCRE.cmake diff --git a/build_files/build_environment/install_linux_packages.py b/build_files/build_environment/install_linux_packages.py index 9dc23398292..364888fa81a 100755 --- a/build_files/build_environment/install_linux_packages.py +++ b/build_files/build_environment/install_linux_packages.py @@ -517,22 +517,6 @@ DEPS_OPTIONAL_SUBPACKAGES = ( DISTRO_ID_ARCH: "yaml-cpp", }, ), - Package(name="Pcre Library Devel", - sub_packages=( - Package(name="Pcre Library", is_mandatory=False, - distro_package_names={DISTRO_ID_DEBIAN: ..., - DISTRO_ID_FEDORA: ..., - DISTRO_ID_SUSE: "libpcre1", # this is... a dependency joke? - DISTRO_ID_ARCH: ..., - }, - ), - ), - distro_package_names={DISTRO_ID_DEBIAN: ..., - DISTRO_ID_FEDORA: "pcre-devel", # Missing dependency of collada package? - DISTRO_ID_SUSE: "pcre-devel", # Missing dependency of collada package? - DISTRO_ID_ARCH: ..., - }, - ), Package(name="Deflate Library", distro_package_names={DISTRO_ID_DEBIAN: "libdeflate-dev", DISTRO_ID_FEDORA: "libdeflate-devel", diff --git a/build_files/cmake/Modules/FindPCRE.cmake b/build_files/cmake/Modules/FindPCRE.cmake deleted file mode 100644 index 4451c2148e2..00000000000 --- a/build_files/cmake/Modules/FindPCRE.cmake +++ /dev/null @@ -1,68 +0,0 @@ -# SPDX-FileCopyrightText: 2011 Blender Authors -# -# SPDX-License-Identifier: BSD-3-Clause - -# - Find PCRE library -# Find the native PCRE includes and library -# This module defines -# PCRE_INCLUDE_DIRS, where to find pcre.h, Set when -# PCRE_INCLUDE_DIR is found. -# PCRE_LIBRARIES, libraries to link against to use PCRE. -# PCRE_ROOT_DIR, The base directory to search for PCRE. -# This can also be an environment variable. -# PCRE_FOUND, If false, do not try to use PCRE. -# -# also defined, but not for general use are -# PCRE_LIBRARY, where to find the PCRE library. - -# If `PCRE_ROOT_DIR` was defined in the environment, use it. -if(DEFINED PCRE_ROOT_DIR) - # Pass. -elseif(DEFINED ENV{PCRE_ROOT_DIR}) - set(PCRE_ROOT_DIR $ENV{PCRE_ROOT_DIR}) -else() - set(PCRE_ROOT_DIR "") -endif() - -set(_pcre_SEARCH_DIRS - ${PCRE_ROOT_DIR} -) - -find_path(PCRE_INCLUDE_DIR pcre.h - HINTS - ${_pcre_SEARCH_DIRS} - PATH_SUFFIXES - include -) - -find_library(PCRE_LIBRARY - NAMES - pcre - HINTS - ${_pcre_SEARCH_DIRS} - PATH_SUFFIXES - lib64 lib -) - -# handle the QUIETLY and REQUIRED arguments and set PCRE_FOUND to TRUE if -# all listed variables are TRUE -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(PCRE DEFAULT_MSG - PCRE_LIBRARY PCRE_INCLUDE_DIR) - -# With 'make deps' precompiled libs, opencollada ships with a copy of libpcre -# but not the headers, ${PCRE_LIBRARY} will be valid in this case -# but PCRE_FOUND will be FALSE. So we set this variable outside of -# the `if(PCRE_FOUND)` below to allow blender to successfully link. -set(PCRE_LIBRARIES ${PCRE_LIBRARY}) - -if(PCRE_FOUND) - set(PCRE_INCLUDE_DIRS ${PCRE_INCLUDE_DIR}) -endif() - -mark_as_advanced( - PCRE_INCLUDE_DIR - PCRE_LIBRARY -) - -unset(_pcre_SEARCH_DIRS) diff --git a/build_files/cmake/platform/platform_apple.cmake b/build_files/cmake/platform/platform_apple.cmake index d863005f840..e722ddc9c66 100644 --- a/build_files/cmake/platform/platform_apple.cmake +++ b/build_files/cmake/platform/platform_apple.cmake @@ -216,9 +216,7 @@ endif() if(WITH_OPENCOLLADA) find_package(OpenCOLLADA) - find_library(PCRE_LIBRARIES NAMES pcre HINTS ${LIBDIR}/opencollada/lib) find_library(XML2_LIBRARIES NAMES xml2 HINTS ${LIBDIR}/opencollada/lib) - print_found_status("PCRE" "${PCRE_LIBRARIES}") print_found_status("XML2" "${XML2_LIBRARIES}") endif() diff --git a/build_files/cmake/platform/platform_unix.cmake b/build_files/cmake/platform/platform_unix.cmake index 5b7e5ecfb17..ff56c91799a 100644 --- a/build_files/cmake/platform/platform_unix.cmake +++ b/build_files/cmake/platform/platform_unix.cmake @@ -341,19 +341,6 @@ endif() if(WITH_OPENCOLLADA) find_package_wrapper(OpenCOLLADA) if(OPENCOLLADA_FOUND) - if(WITH_STATIC_LIBS) - # PCRE is bundled with OpenCollada without headers, so can't use - # find_package reliably to detect it. - # NOTE: newer fork no longer depends on PCRE: see !122270. - if(EXISTS ${LIBDIR}/opencollada/lib/libpcre.a) - set(PCRE_LIBRARIES ${LIBDIR}/opencollada/lib/libpcre.a) - else() - # Quiet warnings. - set(PCRE_LIBRARIES "") - endif() - else() - find_package_wrapper(PCRE) - endif() find_package_wrapper(XML2) else() set_and_warn_library_found("OpenCollada" OPENCOLLADA_FOUND WITH_OPENCOLLADA) diff --git a/build_files/cmake/platform/platform_win32.cmake b/build_files/cmake/platform/platform_win32.cmake index c6ead630ffe..43cddc32b8c 100644 --- a/build_files/cmake/platform/platform_win32.cmake +++ b/build_files/cmake/platform/platform_win32.cmake @@ -515,13 +515,6 @@ if(WITH_OPENCOLLADA) endif() list(APPEND OPENCOLLADA_LIBRARIES ${OPENCOLLADA}/lib/opencollada/UTF.lib) - if(EXISTS ${OPENCOLLADA}/lib/opencollada/pcre.lib) - set(PCRE_LIBRARIES - optimized ${OPENCOLLADA}/lib/opencollada/pcre.lib - - debug ${OPENCOLLADA}/lib/opencollada/pcre_d.lib - ) - endif() endif() if(WITH_CODEC_FFMPEG) diff --git a/source/blender/io/collada/CMakeLists.txt b/source/blender/io/collada/CMakeLists.txt index 147f79a2ffb..b7ccb49df34 100644 --- a/source/blender/io/collada/CMakeLists.txt +++ b/source/blender/io/collada/CMakeLists.txt @@ -106,7 +106,6 @@ set(SRC set(LIB ${OPENCOLLADA_LIBRARIES} - ${PCRE_LIBRARIES} ${XML2_LIBRARIES} PRIVATE bf::animrig PRIVATE bf::blenkernel