mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-28 03:10:57 +08:00
[libarchive, libuv]Fix static linkage (#10769)
* [libarchive] fix static linkage of libarchive in dependent ports (non yet) * [libuv] fix static builds of dependent ports * modernize portfiles * remove POSIX_REGEX_LIB=NONE since it is added elsewhere * remove debug message
This commit is contained in:
parent
5f77f3e92b
commit
4d8237b89c
@ -1,5 +1,5 @@
|
||||
Source: libarchive
|
||||
Version: 3.4.1
|
||||
Version: 3.4.1-1
|
||||
Homepage: https://github.com/libarchive/libarchive
|
||||
Description: Library for reading and writing streaming archives
|
||||
Build-Depends: zlib
|
||||
|
@ -21,8 +21,25 @@ vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
|
||||
lzma ENABLE_LZMA
|
||||
lzo ENABLE_LZO
|
||||
openssl ENABLE_OPENSSL
|
||||
# The below features should be added to CONTROL
|
||||
#pcre ENABLE_PCREPOSIX
|
||||
#nettle ENABLE_NETTLE
|
||||
#expat ENABLE_EXPAT
|
||||
#libgcc ENABLE_LibGCC
|
||||
#cng ENABLE_CNG
|
||||
#tar ENABLE_TAR
|
||||
#cpio ENABLE_CPIO
|
||||
#cat ENABLE_CAT
|
||||
#xattr ENABLE_XATTR
|
||||
#acl ENABLE_ACL
|
||||
#iconv ENABLE_ICONV
|
||||
)
|
||||
|
||||
if(FEATURES MATCHES "pcre")
|
||||
else()
|
||||
list(APPEND FEATURE_OPTIONS -DPOSIX_REGEX_LIB=NONE)
|
||||
endif()
|
||||
|
||||
vcpkg_configure_cmake(
|
||||
SOURCE_PATH ${SOURCE_PATH}
|
||||
PREFER_NINJA
|
||||
@ -38,15 +55,24 @@ vcpkg_configure_cmake(
|
||||
-DENABLE_CAT=OFF
|
||||
-DENABLE_XATTR=OFF
|
||||
-DENABLE_ACL=OFF
|
||||
-DENABLE_TEST=OFF
|
||||
-DENABLE_ICONV=OFF
|
||||
-DPOSIX_REGEX_LIB=NONE
|
||||
-DENABLE_TEST=OFF
|
||||
-DENABLE_WERROR=OFF
|
||||
)
|
||||
|
||||
vcpkg_install_cmake()
|
||||
vcpkg_copy_pdbs()
|
||||
|
||||
foreach(_feature IN LISTS FEATURE_OPTIONS)
|
||||
string(REPLACE "-D" "" _feature "${_feature}")
|
||||
string(REPLACE "=" ";" _feature "${_feature}")
|
||||
string(REPLACE "ON" "1" _feature "${_feature}")
|
||||
string(REPLACE "OFF" "0" _feature "${_feature}")
|
||||
list(GET _feature 0 _feature_name)
|
||||
list(GET _feature 1 _feature_status)
|
||||
set(${_feature_name} ${_feature_status})
|
||||
endforeach()
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
|
||||
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
|
||||
foreach(HEADER ${CURRENT_PACKAGES_DIR}/include/archive.h ${CURRENT_PACKAGES_DIR}/include/archive_entry.h)
|
||||
file(READ ${HEADER} CONTENTS)
|
||||
@ -54,5 +80,4 @@ foreach(HEADER ${CURRENT_PACKAGES_DIR}/include/archive.h ${CURRENT_PACKAGES_DIR}
|
||||
file(WRITE ${HEADER} "${CONTENTS}")
|
||||
endforeach()
|
||||
|
||||
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/libarchive)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libarchive/COPYING ${CURRENT_PACKAGES_DIR}/share/libarchive/copyright)
|
||||
file(INSTALL ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
86
ports/libarchive/vcpkg-cmake-wrapper.cmake
Normal file
86
ports/libarchive/vcpkg-cmake-wrapper.cmake
Normal file
@ -0,0 +1,86 @@
|
||||
_find_package(${ARGS})
|
||||
|
||||
if("@VCPKG_LIBRARY_LINKAGE@" STREQUAL "static")
|
||||
if(@ENABLE_BZip2@)
|
||||
find_package(BZip2 REQUIRED)
|
||||
list(APPEND LibArchive_LIBRARIES BZip2::BZip2)
|
||||
endif()
|
||||
if(@ENABLE_LIBXML2@)
|
||||
find_package(LibXml2 REQUIRED)
|
||||
list(APPEND LibArchive_LIBRARIES LibXml2::LibXml2)
|
||||
endif()
|
||||
if(@ENABLE_LZ4@)
|
||||
find_package(lz4 REQUIRED)
|
||||
list(APPEND LibArchive_LIBRARIES lz4::lz4)
|
||||
endif()
|
||||
if(@ENABLE_LZMA@)
|
||||
find_package(LibLZMA REQUIRED)
|
||||
list(APPEND LibArchive_LIBRARIES LibLZMA::LibLZMA)
|
||||
endif()
|
||||
if(@ENABLE_LZO@)
|
||||
find_library(LZO_LIBRARY_DEBUG NAMES lzo2d lzo2 NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}/debug" NO_DEFAULT_PATH)
|
||||
find_library(LZO_LIBRARY_RELEASE NAMES lzo2 NAMES_PER_DIR PATH_SUFFIXES lib PATHS "${_VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}" NO_DEFAULT_PATH)
|
||||
if(LZO_LIBRARY_RELEASE)
|
||||
list(APPEND LibArchive_LIBRARIES optimized ${LZO_LIBRARY_RELEASE})
|
||||
endif()
|
||||
if(LZO_LIBRARY_DEBUG)
|
||||
list(APPEND LibArchive_LIBRARIES debug ${LZO_LIBRARY_DEBUG})
|
||||
endif()
|
||||
endif()
|
||||
if(@ENABLE_OPENSSL@)
|
||||
find_package(OpenSSL REQUIRED)
|
||||
list(APPEND LibArchive_LIBRARIES OpenSSL::Crypto)
|
||||
endif()
|
||||
|
||||
if(TARGET LibArchive::LibArchive)
|
||||
if(@ENABLE_BZip2@)
|
||||
target_link_libraries(LibArchive::LibArchive INTERFACE BZip2::BZip2)
|
||||
endif()
|
||||
if(@ENABLE_LIBXML2@)
|
||||
target_link_libraries(LibArchive::LibArchive INTERFACE LibXml2::LibXml2)
|
||||
endif()
|
||||
if(@ENABLE_LZ4@)
|
||||
target_link_libraries(LibArchive::LibArchive INTERFACE lz4::lz4)
|
||||
endif()
|
||||
if(@ENABLE_LZMA@)
|
||||
target_link_libraries(LibArchive::LibArchive INTERFACE LibLZMA::LibLZMA)
|
||||
endif()
|
||||
if(@ENABLE_LZO@)
|
||||
if(LZO_LIBRARY_RELEASE)
|
||||
list(APPEND interface_lib \$<\$<NOT:\$<CONFIG:DEBUG>>:${LZO_LIBRARY_RELEASE}>)
|
||||
endif()
|
||||
if(LZO_LIBRARY_DEBUG)
|
||||
list(APPEND interface_lib \$<\$<CONFIG:DEBUG>:${LZO_LIBRARY_DEBUG}>)
|
||||
endif()
|
||||
set_property(TARGET LibArchive::LibArchive APPEND PROPERTY INTERFACE_LINK_LIBRARIES ${interface_lib})
|
||||
endif()
|
||||
if(@ENABLE_OPENSSL@)
|
||||
target_link_libraries(LibArchive::LibArchive INTERFACE OpenSSL::Crypto)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
# TODO in some future
|
||||
# if(@ENABLE_PCREPOSIX@)
|
||||
# endif()
|
||||
# if(@ENABLE_NETTLE@)
|
||||
# endif()
|
||||
# if(@ENABLE_EXPAT@)
|
||||
# endif()
|
||||
# if(@ENABLE_LibGCC@)
|
||||
# endif()
|
||||
# if(@ENABLE_CNG@)
|
||||
# endif()
|
||||
# if(@ENABLE_TAR@)
|
||||
# endif()
|
||||
# if(@ENABLE_CPIO@)
|
||||
# endif()
|
||||
# if(@ENABLE_CAT@)
|
||||
# endif()
|
||||
# if(@ENABLE_XATTR@)
|
||||
# endif()
|
||||
# if(@ENABLE_ACL@)
|
||||
# endif()
|
||||
# if(@ENABLE_ICONV@)
|
||||
# endif()
|
@ -1,4 +1,4 @@
|
||||
Source: libuv
|
||||
Version: 1.34.2
|
||||
Version: 1.34.2-1
|
||||
Homepage: https://github.com/libuv/libuv
|
||||
Description: libuv is a multi-platform support library with a focus on asynchronous I/O.
|
||||
|
@ -1,5 +1,3 @@
|
||||
include(vcpkg_common_functions)
|
||||
|
||||
vcpkg_from_github(
|
||||
OUT_SOURCE_PATH SOURCE_PATH
|
||||
REPO libuv/libuv
|
||||
@ -32,8 +30,9 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
||||
string(REPLACE "defined(USING_UV_SHARED)" "1" UV_H "${UV_H}")
|
||||
else()
|
||||
string(REPLACE "defined(USING_UV_SHARED)" "0" UV_H "${UV_H}")
|
||||
configure_file("${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake" "${CURRENT_PACKAGES_DIR}/share/${PORT}/vcpkg-cmake-wrapper.cmake" @ONLY)
|
||||
endif()
|
||||
file(WRITE ${CURRENT_PACKAGES_DIR}/include/uv.h "${UV_H}")
|
||||
|
||||
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libuv)
|
||||
file(RENAME ${CURRENT_PACKAGES_DIR}/share/libuv/LICENSE ${CURRENT_PACKAGES_DIR}/share/libuv/copyright)
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
|
||||
|
||||
|
16
ports/libuv/vcpkg-cmake-wrapper.cmake
Normal file
16
ports/libuv/vcpkg-cmake-wrapper.cmake
Normal file
@ -0,0 +1,16 @@
|
||||
_find_package(${ARGS})
|
||||
|
||||
if(WIN32)
|
||||
list(APPEND LibUV_LIBRARIES iphlpapi psapi shell32 userenv ws2_32)
|
||||
if(TARGET LibUV::LibUV)
|
||||
target_link_libraries(LibUV::LibUV INTERFACE iphlpapi psapi shell32 userenv ws2_32)
|
||||
endif()
|
||||
endif()
|
||||
include(CMakeFindDependencyMacro)
|
||||
find_dependency(Threads)
|
||||
list(APPEND LibUV_LIBRARIES Threads::Threads)
|
||||
if(TARGET LibUV::LibUV)
|
||||
target_link_libraries(LibUV::LibUV INTERFACE Threads::Threads)
|
||||
endif()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user