build: improve building with system libb64 (#8195)

This commit is contained in:
Yat Ho
2026-01-24 01:02:41 +08:00
committed by GitHub
parent cccef8e2a6
commit 9cee1d3d3b
3 changed files with 52 additions and 41 deletions
+1 -2
View File
@@ -566,9 +566,8 @@ if(ENABLE_UTP)
-DLIBUTP_SHARED:BOOL=OFF)
endif()
tr_add_external_auto_library_legacy(B64 libb64 b64
tr_add_external_auto_library(B64 libb64
SUBPROJECT
TARGET libb64::libb64
CMAKE_ARGS
-DLIBB64_SHARED:BOOL=OFF)
-39
View File
@@ -1,39 +0,0 @@
if(B64_PREFER_STATIC_LIB)
set(B64_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
if(WIN32)
set(CMAKE_FIND_LIBRARY_SUFFIXES .a .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
else()
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
endif()
endif()
if(UNIX)
find_package(PkgConfig QUIET)
pkg_check_modules(_B64 QUIET libb64)
endif()
find_path(B64_INCLUDE_DIR
NAMES
b64/cdecode.h
b64/cencode.h
HINTS ${_B64_INCLUDEDIR})
find_library(B64_LIBRARY
NAMES b64
HINTS ${_B64_LIBDIR})
set(B64_INCLUDE_DIRS ${B64_INCLUDE_DIR})
set(B64_LIBRARIES ${B64_LIBRARY})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(B64
REQUIRED_VARS
B64_LIBRARY
B64_INCLUDE_DIR)
mark_as_advanced(B64_INCLUDE_DIR B64_LIBRARY)
if(B64_PREFER_STATIC_LIB)
set(CMAKE_FIND_LIBRARY_SUFFIXES ${B64_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
unset(B64_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
endif()
+51
View File
@@ -0,0 +1,51 @@
if(${CMAKE_FIND_PACKAGE_NAME}_PREFER_STATIC_LIB)
set(${CMAKE_FIND_PACKAGE_NAME}_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
if(WIN32)
set(CMAKE_FIND_LIBRARY_SUFFIXES .a .lib ${CMAKE_FIND_LIBRARY_SUFFIXES})
else()
set(CMAKE_FIND_LIBRARY_SUFFIXES .a ${CMAKE_FIND_LIBRARY_SUFFIXES})
endif()
endif()
if(UNIX)
find_package(PkgConfig QUIET)
pkg_check_modules(_B64 QUIET libb64)
endif()
find_path(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR
NAMES
b64/cdecode.h
b64/cencode.h
HINTS ${_B64_INCLUDEDIR})
find_library(${CMAKE_FIND_PACKAGE_NAME}_LIBRARY
NAMES b64
HINTS ${_B64_LIBDIR})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(${CMAKE_FIND_PACKAGE_NAME}
REQUIRED_VARS
${CMAKE_FIND_PACKAGE_NAME}_LIBRARY
${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR)
if(${CMAKE_FIND_PACKAGE_NAME}_FOUND)
set(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIRS ${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR})
set(${CMAKE_FIND_PACKAGE_NAME}_LIBRARIES ${${CMAKE_FIND_PACKAGE_NAME}_LIBRARY})
if(NOT TARGET libb64::libb64)
add_library(libb64::libb64 INTERFACE IMPORTED)
target_include_directories(libb64::libb64
INTERFACE
${${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR})
target_link_libraries(libb64::libb64
INTERFACE
${${CMAKE_FIND_PACKAGE_NAME}_LIBRARY})
endif()
endif()
mark_as_advanced(${CMAKE_FIND_PACKAGE_NAME}_INCLUDE_DIR ${CMAKE_FIND_PACKAGE_NAME}_LIBRARY)
if(${CMAKE_FIND_PACKAGE_NAME}_PREFER_STATIC_LIB)
set(CMAKE_FIND_LIBRARY_SUFFIXES ${${CMAKE_FIND_PACKAGE_NAME}_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES})
unset(${CMAKE_FIND_PACKAGE_NAME}_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES)
endif()