aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Engberg <diizzy@FreeBSD.org>2023-04-05 06:12:08 +0000
committerDaniel Engberg <diizzy@FreeBSD.org>2023-04-05 06:12:14 +0000
commit72ad532057c9f9fb6fa370c80f663c005e9dd021 (patch)
treee4dc259e5457529f0e6cf7c4d4e0d91048df3466
parent7793ffbd7c57dcf95d105886eec61733d6959efa (diff)
downloadports-72ad532057c9f9fb6fa370c80f663c005e9dd021.tar.gz
ports-72ad532057c9f9fb6fa370c80f663c005e9dd021.zip
archivers/zstd: Add CMake config files and adjust Makefile
- Use upstream's short test for "make test" - Use verbose output by default during build * Tweak Makefile to follow Porters Handbook more closely * Install CMake files (taken from CMake build framework) PR: 267652 Reported by: fluffy Approved by: portmgr (maintainer timeout, 1+ month)
-rw-r--r--archivers/zstd/Makefile45
-rw-r--r--archivers/zstd/distinfo2
-rw-r--r--archivers/zstd/files/zstdConfig.cmake.in1
-rw-r--r--archivers/zstd/files/zstdConfigVersion.cmake.in70
-rw-r--r--archivers/zstd/files/zstdTargets-BUILD_TYPE.cmake.in29
-rw-r--r--archivers/zstd/files/zstdTargets.cmake.in115
-rw-r--r--archivers/zstd/pkg-plist6
7 files changed, 257 insertions, 11 deletions
diff --git a/archivers/zstd/Makefile b/archivers/zstd/Makefile
index bd01c4aeeff0..40687a6a7855 100644
--- a/archivers/zstd/Makefile
+++ b/archivers/zstd/Makefile
@@ -1,7 +1,8 @@
PORTNAME= zstd
-PORTVERSION= 1.5.4
+DISTVERSION= 1.5.4
+PORTREVISION= 1
CATEGORIES= archivers
-MASTER_SITES= https://github.com/facebook/zstd/releases/download/v${PORTVERSION}/
+MASTER_SITES= https://github.com/facebook/zstd/releases/download/v${DISTVERSION}/
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Fast real-time compression algorithm
@@ -16,27 +17,53 @@ LICENSE_FILE_GPLv2= ${WRKSRC}/COPYING
LIB_DEPENDS= liblz4.so:archivers/liblz4
USES= gmake localbase:ldflags tar:zst
+USE_LDCONFIG= yes
ALL_TARGET= default
+TEST_TARGET= shortest
BINARY_ALIAS= gmd5sum=md5sum
-TEST_TARGET= test
MAKE_ENV= INSTALL_DATA="${INSTALL_DATA}" \
INSTALL_MAN="${INSTALL_MAN}" \
INSTALL_PROGRAM="${INSTALL_PROGRAM}" \
- INSTALL_SCRIPT="${INSTALL_SCRIPT}"
-USE_LDCONFIG= yes
+ INSTALL_SCRIPT="${INSTALL_SCRIPT}" \
+ V=1
+
+.if defined(WITH_DEBUG)
+BUILD_TYPE= Debug
+.else
+BUILD_TYPE= Release
+.endif
-PLIST_SUB= PORTVERSION=${PORTVERSION}
+PLIST_SUB= DISTVERSION=${DISTVERSION} \
+ BUILD_TYPE=${BUILD_TYPE:tl}
OPTIONS_DEFINE= OPTIMIZED_CFLAGS
OPTIMIZED_CFLAGS_VARS= CFLAGS+=-O3
post-build:
- cd ${WRKSRC}/programs && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} zstd-frugal
+ cd ${BUILD_WRKSRC}/programs && ${DO_MAKE_BUILD} zstd-frugal
post-install:
- ${INSTALL_PROGRAM} ${WRKSRC}/programs/zstd-frugal ${STAGEDIR}${PREFIX}/bin/zstd-frugal
- ${LN} -s zstd.1.gz ${STAGEDIR}${PREFIX}/man/man1/zstdmt.1.gz
+ ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/programs/zstd-frugal ${STAGEDIR}${PREFIX}/bin/zstd-frugal
+ ${MKDIR} ${STAGEDIR}${PREFIX}/lib/cmake/zstd
+ ${INSTALL_DATA} ${PATCHDIR}/zstdConfig.cmake.in \
+ ${STAGEDIR}${PREFIX}/lib/cmake/zstd/zstdConfig.cmake
+ ${INSTALL_DATA} ${PATCHDIR}/zstdConfigVersion.cmake.in \
+ ${STAGEDIR}${PREFIX}/lib/cmake/zstd/zstdConfigVersion.cmake
+ @${REINPLACE_CMD} -e 's|%%DISTVERSION%%|${DISTVERSION}|g' \
+ ${STAGEDIR}${PREFIX}/lib/cmake/zstd/zstdConfigVersion.cmake
+ ${INSTALL_DATA} ${PATCHDIR}/zstdTargets-BUILD_TYPE.cmake.in \
+ ${STAGEDIR}${PREFIX}/lib/cmake/zstd/zstdTargets-${BUILD_TYPE:tl}.cmake
+ @${REINPLACE_CMD} -e 's|%%BUILD_TYPE_CAPS%%|${BUILD_TYPE:tu}|g' \
+ ${STAGEDIR}${PREFIX}/lib/cmake/zstd/zstdTargets-${BUILD_TYPE:tl}.cmake
+ @${REINPLACE_CMD} -e 's|%%BUILD_TYPE_MIXED%%|${BUILD_TYPE}|g' \
+ ${STAGEDIR}${PREFIX}/lib/cmake/zstd/zstdTargets-${BUILD_TYPE:tl}.cmake
+ @${REINPLACE_CMD} -e 's|%%DISTVERSION%%|${DISTVERSION}|g' \
+ ${STAGEDIR}${PREFIX}/lib/cmake/zstd/zstdTargets-${BUILD_TYPE:tl}.cmake
+ ${INSTALL_DATA} ${PATCHDIR}/zstdTargets.cmake.in \
+ ${STAGEDIR}${PREFIX}/lib/cmake/zstd/zstdTargets.cmake
+ ${RM} ${STAGEDIR}${PREFIX}/lib/cmake/zstd/*.bak
+ ${RLN} zstd.1.gz ${STAGEDIR}${PREFIX}/man/man1/zstdmt.1.gz
.include <bsd.port.mk>
diff --git a/archivers/zstd/distinfo b/archivers/zstd/distinfo
index 14adce85132c..b1bcfd8794b3 100644
--- a/archivers/zstd/distinfo
+++ b/archivers/zstd/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1677770991
+TIMESTAMP = 1680672624
SHA256 (zstd-1.5.4.tar.zst) = 6925880b84aca086308c27036ef1c16e76817372301ead7c37f90e23567f704e
SIZE (zstd-1.5.4.tar.zst) = 1620303
diff --git a/archivers/zstd/files/zstdConfig.cmake.in b/archivers/zstd/files/zstdConfig.cmake.in
new file mode 100644
index 000000000000..ebbfcc38f6fc
--- /dev/null
+++ b/archivers/zstd/files/zstdConfig.cmake.in
@@ -0,0 +1 @@
+include("${CMAKE_CURRENT_LIST_DIR}/zstdTargets.cmake")
diff --git a/archivers/zstd/files/zstdConfigVersion.cmake.in b/archivers/zstd/files/zstdConfigVersion.cmake.in
new file mode 100644
index 000000000000..9d632415ae6b
--- /dev/null
+++ b/archivers/zstd/files/zstdConfigVersion.cmake.in
@@ -0,0 +1,70 @@
+# This is a basic version file for the Config-mode of find_package().
+# It is used by write_basic_package_version_file() as input file for configure_file()
+# to create a version-file which can be installed along a config.cmake file.
+#
+# The created file sets PACKAGE_VERSION_EXACT if the current version string and
+# the requested version string are exactly the same and it sets
+# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version,
+# but only if the requested major version is the same as the current one.
+# The variable CVF_VERSION must be set before calling configure_file().
+
+
+set(PACKAGE_VERSION "%%DISTVERSION%%")
+
+if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+
+ if("%%DISTVERSION%%" MATCHES "^([0-9]+)\\.")
+ set(CVF_VERSION_MAJOR "${CMAKE_MATCH_1}")
+ if(NOT CVF_VERSION_MAJOR VERSION_EQUAL 0)
+ string(REGEX REPLACE "^0+" "" CVF_VERSION_MAJOR "${CVF_VERSION_MAJOR}")
+ endif()
+ else()
+ set(CVF_VERSION_MAJOR "%%DISTVERSION%%")
+ endif()
+
+ if(PACKAGE_FIND_VERSION_RANGE)
+ # both endpoints of the range must have the expected major version
+ math (EXPR CVF_VERSION_MAJOR_NEXT "${CVF_VERSION_MAJOR} + 1")
+ if (NOT PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR
+ OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX_MAJOR STREQUAL CVF_VERSION_MAJOR)
+ OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND NOT PACKAGE_FIND_VERSION_MAX VERSION_LESS_EQUAL CVF_VERSION_MAJOR_NEXT)))
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+ elseif(PACKAGE_FIND_VERSION_MIN_MAJOR STREQUAL CVF_VERSION_MAJOR
+ AND ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS_EQUAL PACKAGE_FIND_VERSION_MAX)
+ OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MAX)))
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ else()
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+ endif()
+ else()
+ if(PACKAGE_FIND_VERSION_MAJOR STREQUAL CVF_VERSION_MAJOR)
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ else()
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+ endif()
+
+ if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
+ endif()
+endif()
+
+
+# if the installed project requested no architecture check, don't perform the check
+if("FALSE")
+ return()
+endif()
+
+# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
+if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "")
+ return()
+endif()
+
+# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
+if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8")
+ math(EXPR installedBits "8 * 8")
+ set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
+ set(PACKAGE_VERSION_UNSUITABLE TRUE)
+endif()
diff --git a/archivers/zstd/files/zstdTargets-BUILD_TYPE.cmake.in b/archivers/zstd/files/zstdTargets-BUILD_TYPE.cmake.in
new file mode 100644
index 000000000000..fed8503e9e06
--- /dev/null
+++ b/archivers/zstd/files/zstdTargets-BUILD_TYPE.cmake.in
@@ -0,0 +1,29 @@
+#----------------------------------------------------------------
+# Generated CMake target import file for configuration "%%BUILD_TYPE_MIXED%%".
+#----------------------------------------------------------------
+
+# Commands may need to know the format version.
+set(CMAKE_IMPORT_FILE_VERSION 1)
+
+# Import target "zstd::libzstd_shared" for configuration "%%BUILD_TYPE_MIXED%%"
+set_property(TARGET zstd::libzstd_shared APPEND PROPERTY IMPORTED_CONFIGURATIONS %%BUILD_TYPE_CAPS%%)
+set_target_properties(zstd::libzstd_shared PROPERTIES
+ IMPORTED_LOCATION_%%BUILD_TYPE_CAPS%% "${_IMPORT_PREFIX}/lib/libzstd.so.%%DISTVERSION%%"
+ IMPORTED_SONAME_%%BUILD_TYPE_CAPS%% "libzstd.so.1"
+ )
+
+list(APPEND _cmake_import_check_targets zstd::libzstd_shared )
+list(APPEND _cmake_import_check_files_for_zstd::libzstd_shared "${_IMPORT_PREFIX}/lib/libzstd.so.%%DISTVERSION%%" )
+
+# Import target "zstd::libzstd_static" for configuration "%%BUILD_TYPE_MIXED%%"
+set_property(TARGET zstd::libzstd_static APPEND PROPERTY IMPORTED_CONFIGURATIONS %%BUILD_TYPE_CAPS%%)
+set_target_properties(zstd::libzstd_static PROPERTIES
+ IMPORTED_LINK_INTERFACE_LANGUAGES_%%BUILD_TYPE_CAPS%% "C"
+ IMPORTED_LOCATION_%%BUILD_TYPE_CAPS%% "${_IMPORT_PREFIX}/lib/libzstd.a"
+ )
+
+list(APPEND _cmake_import_check_targets zstd::libzstd_static )
+list(APPEND _cmake_import_check_files_for_zstd::libzstd_static "${_IMPORT_PREFIX}/lib/libzstd.a" )
+
+# Commands beyond this point should not need to know the version.
+set(CMAKE_IMPORT_FILE_VERSION)
diff --git a/archivers/zstd/files/zstdTargets.cmake.in b/archivers/zstd/files/zstdTargets.cmake.in
new file mode 100644
index 000000000000..60da8aa603e0
--- /dev/null
+++ b/archivers/zstd/files/zstdTargets.cmake.in
@@ -0,0 +1,115 @@
+# Generated by CMake
+
+if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
+ message(FATAL_ERROR "CMake >= 2.8.0 required")
+endif()
+if(CMAKE_VERSION VERSION_LESS "2.8.3")
+ message(FATAL_ERROR "CMake >= 2.8.3 required")
+endif()
+cmake_policy(PUSH)
+cmake_policy(VERSION 2.8.3...3.23)
+#----------------------------------------------------------------
+# Generated CMake target import file.
+#----------------------------------------------------------------
+
+# Commands may need to know the format version.
+set(CMAKE_IMPORT_FILE_VERSION 1)
+
+# Protect against multiple inclusion, which would fail when already imported targets are added once more.
+set(_cmake_targets_defined "")
+set(_cmake_targets_not_defined "")
+set(_cmake_expected_targets "")
+foreach(_cmake_expected_target IN ITEMS zstd::libzstd_shared zstd::libzstd_static)
+ list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
+ if(TARGET "${_cmake_expected_target}")
+ list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
+ else()
+ list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
+ endif()
+endforeach()
+unset(_cmake_expected_target)
+if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
+ unset(_cmake_targets_defined)
+ unset(_cmake_targets_not_defined)
+ unset(_cmake_expected_targets)
+ unset(CMAKE_IMPORT_FILE_VERSION)
+ cmake_policy(POP)
+ return()
+endif()
+if(NOT _cmake_targets_defined STREQUAL "")
+ string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
+ string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
+ message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
+endif()
+unset(_cmake_targets_defined)
+unset(_cmake_targets_not_defined)
+unset(_cmake_expected_targets)
+
+
+# Compute the installation prefix relative to this file.
+get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+if(_IMPORT_PREFIX STREQUAL "/")
+ set(_IMPORT_PREFIX "")
+endif()
+
+# Create imported target zstd::libzstd_shared
+add_library(zstd::libzstd_shared SHARED IMPORTED)
+
+set_target_properties(zstd::libzstd_shared PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+ INTERFACE_LINK_LIBRARIES "-pthread"
+)
+
+# Create imported target zstd::libzstd_static
+add_library(zstd::libzstd_static STATIC IMPORTED)
+
+set_target_properties(zstd::libzstd_static PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+ INTERFACE_LINK_LIBRARIES "-pthread"
+)
+
+if(CMAKE_VERSION VERSION_LESS 2.8.12)
+ message(FATAL_ERROR "This file relies on consumers using CMake 2.8.12 or greater.")
+endif()
+
+# Load information for each installed configuration.
+file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/zstdTargets-*.cmake")
+foreach(_cmake_config_file IN LISTS _cmake_config_files)
+ include("${_cmake_config_file}")
+endforeach()
+unset(_cmake_config_file)
+unset(_cmake_config_files)
+
+# Cleanup temporary variables.
+set(_IMPORT_PREFIX)
+
+# Loop over all imported files and verify that they actually exist
+foreach(_cmake_target IN LISTS _cmake_import_check_targets)
+ foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
+ if(NOT EXISTS "${_cmake_file}")
+ message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
+ \"${_cmake_file}\"
+but this file does not exist. Possible reasons include:
+* The file was deleted, renamed, or moved to another location.
+* An install or uninstall procedure did not complete successfully.
+* The installation package was faulty and contained
+ \"${CMAKE_CURRENT_LIST_FILE}\"
+but not all the files it references.
+")
+ endif()
+ endforeach()
+ unset(_cmake_file)
+ unset("_cmake_import_check_files_for_${_cmake_target}")
+endforeach()
+unset(_cmake_target)
+unset(_cmake_import_check_targets)
+
+# This file does not depend on other imported targets which have
+# been exported from the same project but in a separate export set.
+
+# Commands beyond this point should not need to know the version.
+set(CMAKE_IMPORT_FILE_VERSION)
+cmake_policy(POP)
diff --git a/archivers/zstd/pkg-plist b/archivers/zstd/pkg-plist
index fbe5a2fadb4c..c9710e44faab 100644
--- a/archivers/zstd/pkg-plist
+++ b/archivers/zstd/pkg-plist
@@ -8,10 +8,14 @@ bin/zstdmt
include/zdict.h
include/zstd.h
include/zstd_errors.h
+lib/cmake/zstd/zstdConfig.cmake
+lib/cmake/zstd/zstdConfigVersion.cmake
+lib/cmake/zstd/zstdTargets-%%BUILD_TYPE%%.cmake
+lib/cmake/zstd/zstdTargets.cmake
lib/libzstd.a
lib/libzstd.so
lib/libzstd.so.1
-lib/libzstd.so.%%PORTVERSION%%
+lib/libzstd.so.%%DISTVERSION%%
libdata/pkgconfig/libzstd.pc
man/man1/unzstd.1.gz
man/man1/zstd.1.gz