Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,20 @@ jobs:
pkgtgt: package package_source
cmake-args: -DMINIZIP_ENABLE_BZIP2=ON

- name: Ubuntu GCC no shared
os: ubuntu-latest
compiler: gcc
cflags: -Wall -Wextra
pkgtgt: package package_source
cmake-args: -DZLIB_BUILD_SHARED=OFF -DMINIZIP_ENABLE_BZIP2=ON

- name: Ubuntu GCC no static
os: ubuntu-latest
compiler: gcc
cflags: -Wall -Wextra
pkgtgt: package package_source
cmake-args: -DZLIB_BUILD_STATIC=OFF -DMINIZIP_ENABLE_BZIP2=ON

- name: Ubuntu GCC -O3
os: ubuntu-latest
compiler: gcc
Expand Down
64 changes: 64 additions & 0 deletions .github/workflows/contribs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: contribs
on: [push, pull_request]
jobs:
ci-cmake:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: Ubuntu all contribs
os: ubuntu-latest
cmake-args: -DZLIB_BUILD_ADA=ON -DZLIB_BUILD_BLAST=ON -DZLIB_BUILD_IOSTREAM3=ON -DZLIB_BUIL_MINIZIP=ON -DZLIB_BUILD_PUFF=ON -DZLIB_WITH_INFBACK9=ON -DZLIB_WITH_CRC32VX=ON -DZLIB_WITH_GVMAT64=ON
src_dir: .

- name: Ubuntu ADA
os: ubuntu-latest
src_dir: contrib/ada
install_zlib: yes

- name: Ubuntu BLAST
os: ubuntu-latest
src_dir: contrib/blast
install_zlib: yes

- name: Ubuntu IOSTREAM
os: ubuntu-latest
src_dir: contrib/iostream3
install_zlib: yes

- name: Ubuntu MINIZIP
os: ubuntu-latest
src_dir: contrib/minizip
install_zlib: yes

- name: Ubuntu PUFF
os: ubuntu-latest
src_dir: contrib/puff
install_zlib: yes

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Install packages
run: |
sudo apt install gnat libbz2-dev

- name: Install zlib
if: ${{ matrix.install_zlib == 'yes' }}
run: |
cmake -S . -B ../build-zlib -DCMAKE_BUILD_TYPE=Release
cmake --build ../build-zlib --config Release
sudo cmake --install ../build-zlib

- name: Generate project files
run: cmake -S ${{ matrix.src_dir }} -B ../build ${{ matrix.cmake-args }} -DCMAKE_BUILD_TYPE=Release

- name: Compile source code
run: cmake --build ../build --config Release

- name: Run test cases
run: ctest -C Release --output-on-failure --max-width 120
working-directory: ../build
2 changes: 1 addition & 1 deletion README-cmake.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ or
find_package(minizip CONFIG COMPONENTS shared static REQUIRED)

As it's possible to only build the shared or the static lib, you can make sure that everything you need
is found. If no COMPONENTS are requested, everything that is found will satisfy your request. If the
is found. If no COMPONENTS are requested, everything needs to be found to satisfy your request. If the
libraries are optional in you project, you can omit the REQUIRED and check yourself if the targets you
want to link against are created.

Expand Down
1 change: 0 additions & 1 deletion contrib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ function(zlib_add_contrib_lib name description dir)
set(ZLIB_${name}_BUILD_TESTING ${ZLIB_BUILD_TESTING} CACHE BOOL "")
endif(NOT DEFINED ZLIB_${name}_BUILD_TESTING)


if(NOT DEFINED ZLIB_${name}_INSTALL)
set(ZLIB_${name}_INSTALL ${ZLIB_INSTALL} CACHE BOOL "")
endif(NOT DEFINED ZLIB_${name}_INSTALL)
Expand Down
2 changes: 1 addition & 1 deletion contrib/ada/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules")
project(
zlibAda
VERSION 1.0.0
LANGUAGES ADA
LANGUAGES C ADA
DESCRIPTION "A library for creating zipfiles based in zlib"
HOMEPAGE_URL "https://www.zlib.net")

Expand Down
2 changes: 1 addition & 1 deletion contrib/blast/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ if(NOT ZLIB_BLAST_BUILD_SHARED OR NOT ZLIB_BLAST_BUILD_STATIC)
endif(NOT ZLIB_BLAST_BUILD_SHARED OR NOT ZLIB_BLAST_BUILD_STATIC)

#
# findpackage_no_components_test
# findpackage_wrong_components_test
#
add_test(
NAME zlib_blast_find_package_wrong_components_configure
Expand Down
4 changes: 2 additions & 2 deletions contrib/blast/test/add_subdirectory_exclude_test.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ project(
LANGUAGES C
VERSION @blast_VERSION@)

option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
option(ZLIB_BLAST_BUILD_TESTING "" @ZLIB_BLAST_BUILD_TESTING@)

add_subdirectory(@blast_SOURCE_DIR@
Expand Down
4 changes: 2 additions & 2 deletions contrib/blast/test/add_subdirectory_test.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ project(
LANGUAGES C
VERSION @blast_VERSION@)

option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)
option(ZLIB_BLAST_BUILD_TESTING "" @ZLIB_BLAST_BUILD_TESTING@)

add_subdirectory(@blast_SOURCE_DIR@ ${CMAKE_CURRENT_BINARY_DIR}/blast)
Expand Down
4 changes: 2 additions & 2 deletions contrib/blast/test/find_package_no_components_test.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ project(
LANGUAGES C
VERSION @blast_VERSION@)

option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)

find_package(blast REQUIRED CONFIG)

Expand Down
4 changes: 2 additions & 2 deletions contrib/blast/test/find_package_test.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ project(
LANGUAGES C
VERSION @blast_VERSION@)

option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)

set(BLAST_SRCS
@blast_SOURCE_DIR@/blast-test.c)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ project(
LANGUAGES C
VERSION @blast_VERSION@)

option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@)
option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@)

find_package(blast REQUIRED COMPONENTS wrong CONFIG)

Expand Down
2 changes: 1 addition & 1 deletion contrib/iostream3/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ else(DEFINED ZLIB_BUILD_IOSTREAM3)

add_test(
NAME zlib_iostream3_install
COMMAND ${CMAKE_COMMAND} --install ${minizip_BINARY_DIR} --prefix
COMMAND ${CMAKE_COMMAND} --install ${iostreamV3_BINARY_DIR} --prefix
${CMAKE_CURRENT_BINARY_DIR}/test_install --config $<CONFIG>
WORKING_DIRECTORY ${iostreamV3_BINARY_DIR})

Expand Down
4 changes: 2 additions & 2 deletions contrib/iostream3/test/add_subdirectory_test.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ project(
LANGUAGES CXX
VERSION @iostreamV3_VERSION@)

option(ZLIB_IOSTREAM3_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
option(ZLIB_IOSTREAM3_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
option(ZLIB_IOSTREAM3_BUILD_SHARED "" @ZLIB_IOSTREAM3_BUILD_SHARED@)
option(ZLIB_IOSTREAM3_BUILD_STATIC "" @ZLIB_IOSTREAM3_BUILD_STATIC@)
option(ZLIB_IOSTREAM3_BUILD_TESTING "" OFF)

add_subdirectory(@iostreamV3_SOURCE_DIR@ ${CMAKE_CURRENT_BINARY_DIR}/iostream3)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ project(
LANGUAGES CXX
VERSION @iostreamV3_VERSION@)

option(ZLIB_IOSTREAM3_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
option(ZLIB_IOSTREAM3_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
option(ZLIB_IOSTREAM3_BUILD_SHARED "" @ZLIB_IOSTREAM3_BUILD_SHARED@)
option(ZLIB_IOSTREAM3_BUILD_STATIC "" @ZLIB_IOSTREAM3_BUILD_STATIC@)

find_package(iostreamv3 REQUIRED CONFIG)

Expand Down
4 changes: 2 additions & 2 deletions contrib/iostream3/test/find_package_test.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ project(
LANGUAGES CXX
VERSION @iostreamV3_VERSION@)

option(ZLIB_IOSTREAM_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
option(ZLIB_IOSTREAM_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
option(ZLIB_IOSTREAM_BUILD_SHARED "" @ZLIB_IOSTREAM_BUILD_SHARED@)
option(ZLIB_IOSTREAM_BUILD_STATIC "" @ZLIB_IOSTREAM_BUILD_STATIC@)

set(IOSTREAM_SRCS
@iostreamV3_SOURCE_DIR@/test.cc)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ project(
LANGUAGES CXX
VERSION @iostreamV3_VERSION@)

option(ZLIB_IOSTREAM_BUILD_SHARED "" @ZLIB_PUFF_BUILD_SHARED@)
option(ZLIB_IOSTREAM_BUILD_STATIC "" @ZLIB_PUFF_BUILD_STATIC@)
option(ZLIB_IOSTREAM_BUILD_SHARED "" @ZLIB_IOSTREAM_BUILD_SHARED@)
option(ZLIB_IOSTREAM_BUILD_STATIC "" @ZLIB_IOSTREAM_BUILD_STATIC@)

find_package(iostreamv3 REQUIRED COMPONENTS wrongCONFIG)

Expand Down
26 changes: 22 additions & 4 deletions contrib/minizip/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,16 @@ set(CPACK_PACKAGE_DESCRIPTION_FILE ${minizip_SOURCE_DIR}/MiniZip64_info.txt)
set(CPACK_RESOURCE_FILE_LICENSE ${minizip_SOURCE_DIR}/../../LICENSE)
set(CPACK_RESOURCE_FILE_README ${minizip_SOURCE_DIR}/MiniZip64_info.txt)

# ============================================================================
# set options if build from zlib
# ============================================================================
if(ZLIB_BUILD_MINIZIP)
set(MINIZIP_BUILD_SHARED ${ZLIB_MINIZIP_BUILD_SHARED} CACHE BOOL "")
set(MINIZIP_BUILD_STATIC ${ZLIB_MINIZIP_BUILD_STATIC} CACHE BOOL "")
set(MINIZIP_BUILD_TESTING ${ZLIB_MINIZIP_INSTALL} CACHE BOOL "")
set(MINIZIP_INSTALL ${ZLIB_MINIZIP_INSTALL} CACHE BOOL "")
endif(ZLIB_BUILD_MINIZIP)

# ============================================================================
# configuration
# ============================================================================
Expand All @@ -44,6 +54,18 @@ if(NOT CPACK_INCLUDED)
include(CPack)
endif(NOT CPACK_INCLUDED)

if(NOT DEFINED ZLIB_BUILD_MINIZIP)
if(MINIZIP_BUILD_SHARED)
list(APPEND REQUIRED_COMPONENTS "shared")
endif(MINIZIP_BUILD_SHARED)

if(MINIZIP_BUILD_STATIC)
list(APPEND REQUIRED_COMPONENTS "static")
endif(MINIZIP_BUILD_STATIC)

find_package(ZLIB REQUIRED COMPONENTS ${REQUIRED_COMPONENTS} CONFIG)
endif(NOT DEFINED ZLIB_BUILD_MINIZIP)

if(MINIZIP_ENABLE_BZIP2)
find_package(BZip2 REQUIRED)
endif(MINIZIP_ENABLE_BZIP2)
Expand Down Expand Up @@ -89,10 +111,6 @@ check_c_source_compiles(

unset(CMAKE_REQUIRED_FLAGS)

if(NOT TARGET ZLIB::ZLIB)
find_package(ZLIB REQUIRED CONFIG)
endif(NOT TARGET ZLIB::ZLIB)

set(LIBMINIZIP_SRCS ioapi.c mztools.c unzip.c zip.c)

set(LIBMINIZIP_HDRS crypt.h ints.h ioapi.h mztools.h unzip.h zip.h)
Expand Down
14 changes: 3 additions & 11 deletions contrib/minizip/minizipConfig.cmake.in
Original file line number Diff line number Diff line change
@@ -1,16 +1,8 @@
@PACKAGE_INIT@

set(_minizip_supported_components "")
set(_MINIZIP_supported_components "shared" "static")
include(CMakeFindDependencyMacro)

if(@MINIZIP_BUILD_SHARED@)
list(APPEND _minizip_supported_components shared)
endif(@MINIZIP_BUILD_SHARED@)

if(@MINIZIP_BUILD_STATIC@)
list(APPEND _minizip_supported_components static)
endif(@MINIZIP_BUILD_STATIC@)

if(@MINIZIP_ENABLE_BZIP2@)
find_dependency(BZip2)
endif(@MINIZIP_ENABLE_BZIP2@)
Expand All @@ -29,7 +21,7 @@ if(minizip_FIND_COMPONENTS)
else(minizip_FIND_COMPONENTS)
find_dependency(ZLIB CONFIG)

foreach(_component_config IN LISTS _minizip_supported_components)
foreach(_component_config IN LISTS _MINIZIP_supported_components)
include("${CMAKE_CURRENT_LIST_DIR}/minizip-${_component_config}.cmake")
endforeach(_component_config IN LISTS _minizip_supported_components)
endforeach(_component_config IN LISTS _MINIZIP_supported_components)
endif(minizip_FIND_COMPONENTS)
54 changes: 54 additions & 0 deletions contrib/minizip/test/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,25 @@ else(DEFINED ZLIB_BUILD_MINIZIP)
endif(DEFINED ZLIB_BUILD_MINIZIP)

file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_componentstest)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test)

configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/find_package_test.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/findpackage_test/CMakeLists.txt @ONLY)

configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/find_package_no_components_test.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test/CMakeLists.txt
@ONLY)

configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/find_package_wrong_components_test.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test/CMakeLists.txt
@ONLY)

configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_test.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test/CMakeLists.txt @ONLY)
Expand Down Expand Up @@ -68,6 +80,48 @@ set_tests_properties(
set_tests_properties(minizip_find_package_build PROPERTIES FIXTURES_REQUIRED
mzfp_config)

#
# findpackage_no_components_test
#
add_test(
NAME minizip_find_package_no_components_configure
COMMAND
${CMAKE_COMMAND} ${PLATFORM}
-B${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test_build
-DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
--fresh -G "${CMAKE_GENERATOR}"
-S${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test)

set_tests_properties(
minizip_find_package_no_components_configure PROPERTIES FIXTURES_REQUIRED ${inst_setup})

if(NOT MINIZIP_BUILD_SHARED OR NOT MINIZIP_BUILD_STATIC)
set_tests_properties(
minizip_find_package_no_components_configure PROPERTIES WILL_FAIL TRUE)
endif(NOT MINIZIP_BUILD_SHARED OR NOT MINIZIP_BUILD_STATIC)

#
# findpackage_no_components_test
#
add_test(
NAME minizip_find_package_wrong_components_configure
COMMAND
${CMAKE_COMMAND} ${PLATFORM}
-B${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test_build
-DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
-DCMAKE_C_FLAGS=${CMAKE_C_FLAGS}
-DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG}
--fresh -G "${CMAKE_GENERATOR}"
-S${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test)

set_tests_properties(
minizip_find_package_wrong_components_configure
PROPERTIES
FIXTURES_REQUIRED ${inst_setup}
WILL_FAIL TRUE)

#
# add_subdirectory_test
#
Expand Down
Loading