Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[bit7z] new port #40889

Merged
merged 17 commits into from
Sep 24, 2024
Merged
28 changes: 28 additions & 0 deletions ports/bit7z/fix_dependency.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f8ff6f0..855b78d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -194,15 +194,22 @@ include( cmake/BuildOptions.cmake )
include( cmake/CompilerOptions.cmake )

# dependencies
-include( cmake/Dependencies.cmake )
+# include( cmake/Dependencies.cmake )
+find_package(7zip CONFIG REQUIRED)
+add_library(7-zip ALIAS 7zip::7zip)

# 7-zip source code
target_link_libraries( ${LIB_TARGET} PRIVATE 7-zip )

# filesystem library (needed if std::filesystem is not available)
+if(0)
if( ghc_filesystem_ADDED )
target_link_libraries( ${LIB_TARGET} PRIVATE ghc_filesystem )
endif()
+else()
+ find_package(ghc_filesystem CONFIG REQUIRED)
+ target_link_libraries(${LIB_TARGET} PRIVATE ghcFilesystem::ghc_filesystem )
+endif()

# public includes
target_include_directories( ${LIB_TARGET} PUBLIC "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>"
47 changes: 47 additions & 0 deletions ports/bit7z/fix_install.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2eb8634..f8ff6f0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -179,7 +179,7 @@ message( STATUS "Language Standard for bit7z: C++${CMAKE_CXX_STANDARD}" )
set( LIB_TARGET bit7z${ARCH_POSTFIX} )
add_library( ${LIB_TARGET} STATIC )
target_sources( ${LIB_TARGET}
- PUBLIC ${PUBLIC_HEADERS}
+ # PUBLIC ${PUBLIC_HEADERS}
PRIVATE ${HEADERS} ${SOURCES} )

# additional target without the architecture suffix in the name
@@ -246,3 +246,32 @@ endif()
if( BIT7Z_BUILD_DOCS )
add_subdirectory( docs )
endif()
+
+set(_includes)
+foreach(_include_dir ${PUBLIC_HEADERS})
+ list(APPEND _includes "${CMAKE_CURRENT_SOURCE_DIR}/${_include_dir}")
+endforeach()
+set_target_properties( ${LIB_TARGET} PROPERTIES PUBLIC_HEADER "${_includes}")
msclock marked this conversation as resolved.
Show resolved Hide resolved
+
+include(CMakePackageConfigHelpers)
+configure_package_config_file(
+ "${CMAKE_CURRENT_SOURCE_DIR}/unofficial-bit7z-config.cmake.in"
+ "${CMAKE_CURRENT_BINARY_DIR}/unofficial-bit7z-config.cmake"
+ INSTALL_DESTINATION "share/unofficial-bit7z"
+)
+install(
+ FILES "${CMAKE_CURRENT_BINARY_DIR}/unofficial-bit7z-config.cmake"
+ DESTINATION "share/unofficial-bit7z"
+)
+
+include(GNUInstallDirs)
+install(
+ TARGETS ${LIB_TARGET}
+ EXPORT unofficial-bit7z-targets
+ COMPONENT bit7z
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/bit7z COMPONENT bit7z_development)
+
+install(EXPORT unofficial-bit7z-targets FILE unofficial-bit7z-targets.cmake NAMESPACE unofficial::bit7z:: DESTINATION share/unofficial-bit7z)
+
45 changes: 45 additions & 0 deletions ports/bit7z/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
vcpkg_check_linkage(ONLY_STATIC_LIBRARY)
msclock marked this conversation as resolved.
Show resolved Hide resolved

vcpkg_from_github(
msclock marked this conversation as resolved.
Show resolved Hide resolved
OUT_SOURCE_PATH SOURCE_PATH
REPO rikyoz/bit7z
REF "v${VERSION}"
SHA512 02ee10a66598e9a2f5b47f35392dc8f3de11e01dac9d657e1321d1de97baf9832b1f1559054160d122dddd0427f54076820d7252185912c38b2f277d9c5fa1c0
HEAD_REF master
PATCHES
fix_install.patch
fix_dependency.patch
)

file(COPY "${CMAKE_CURRENT_LIST_DIR}/unofficial-bit7z-config.cmake.in" DESTINATION "${SOURCE_PATH}")

vcpkg_check_features(
OUT_FEATURE_OPTIONS FEATURE_OPTIONS
FEATURES
regex-matching BIT7Z_REGEX_MATCHING
)

vcpkg_cmake_configure(
SOURCE_PATH "${SOURCE_PATH}"
OPTIONS
-DBIT7Z_AUTO_FORMAT=ON
-DBIT7Z_AUTO_PREFIX_LONG_PATHS=ON
-DBIT7Z_DISABLE_ZIP_ASCII_PWD_CHECK=OFF
-DBIT7Z_PATH_SANITIZATION=ON
-DBIT7Z_DISABLE_USE_STD_FILESYSTEM=OFF
-DBIT7Z_USE_STD_BYTE=OFF
-DBIT7Z_USE_NATIVE_STRING=OFF
-DBIT7Z_USE_SYSTEM_CODEPAGE=OFF
-DBIT7Z_BUILD_TESTS=OFF
-DBIT7Z_BUILD_DOCS=OFF
${FEATURE_OPTIONS}
msclock marked this conversation as resolved.
Show resolved Hide resolved
)

vcpkg_cmake_install()
vcpkg_copy_pdbs()

vcpkg_cmake_config_fixup(PACKAGE_NAME unofficial-bit7z CONFIG_PATH share/unofficial-bit7z)

vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")

file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include" "${CURRENT_PACKAGES_DIR}/debug/share")
10 changes: 10 additions & 0 deletions ports/bit7z/unofficial-bit7z-config.cmake.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
@PACKAGE_INIT@

msclock marked this conversation as resolved.
Show resolved Hide resolved
include(CMakeFindDependencyMacro)

find_dependency(7zip CONFIG)
find_dependency(ghc_filesystem CONFIG)

include("${CMAKE_CURRENT_LIST_DIR}/unofficial-bit7z-targets.cmake")

check_required_components(bit7z)
24 changes: 24 additions & 0 deletions ports/bit7z/vcpkg.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"name": "bit7z",
"version": "4.0.8",
"description": "A C++ static library offering a clean and simple interface to the 7-zip shared libraries.",
"homepage": "https://github.com/rikyoz/bit7z",
"license": "MPL-2.0",
"dependencies": [
"7zip",
"ghc-filesystem",
{
"name": "vcpkg-cmake",
"host": true
},
{
"name": "vcpkg-cmake-config",
"host": true
}
],
"features": {
"regex-matching": {
"description": "Enables the support for extracting files matching regular expressions"
}
}
}
9 changes: 9 additions & 0 deletions versions/b-/bit7z.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"versions": [
{
"git-tree": "ae4527dee70621eef9ba2380ba58d4ea1e4e6ea3",
"version": "4.0.8",
"port-version": 0
}
]
}
4 changes: 4 additions & 0 deletions versions/baseline.json
Original file line number Diff line number Diff line change
Expand Up @@ -644,6 +644,10 @@
"baseline": "3.0",
"port-version": 3
},
"bit7z": {
"baseline": "4.0.8",
"port-version": 0
},
"bitmagic": {
"baseline": "7.13.4",
"port-version": 0
Expand Down