Allow zlib through find_package

This commit is contained in:
Jeremy 2023-10-04 19:47:14 -04:00
parent cd4fa0dd0c
commit 1ee7f68850
No known key found for this signature in database
GPG Key ID: 19AA8270105E8EB4

View File

@ -217,74 +217,83 @@ check_c_source_compiles([=[
}]=] HAVE_STDAFX_H) }]=] HAVE_STDAFX_H)
#message(STATUS "Checking have windows stdafx.h... ${HAVE_STDAFX_H}") #message(STATUS "Checking have windows stdafx.h... ${HAVE_STDAFX_H}")
set(CMAKE_REQUIRED_LIBRARIES z) option(CMAKE_DWARF_FINDPACKAGE_Z "" OFF)
check_c_source_compiles( [=[
#include "zlib.h"
int main()
{
Bytef dest[100];
uLongf destlen = 100;
Bytef *src = 0;
uLong srclen = 3;
int res = uncompress(dest,&destlen,src,srclen);
if (res == Z_OK) {
/* ALL IS WELL */
}
return 0;
} ]=] HAVE_ZLIB )
check_c_source_compiles( [=[
#include "zlib.h"
int main()
{
Bytef dest[100];
uLongf destlen = 100;
Bytef *src = 0;
uLong srclen = 3;
int res = uncompress(dest,&destlen,src,srclen);
if (res == Z_OK) {
/* ALL IS WELL */
}
return 0;
} ]=] HAVE_ZLIB_H )
set(CMAKE_REQUIRED_LIBRARIES)
if (HAVE_ZLIB)
# For linking in libz
set(DW_FZLIB "z")
endif()
set(CMAKE_REQUIRED_LIBRARIES zstd ) mark_as_advanced(CMAKE_DWARF_FINDPACKAGE_Z)
check_c_source_compiles( [=[
#include "zstd.h" if(NOT CMAKE_DWARF_FINDPACKAGE_Z)
int main() set(CMAKE_REQUIRED_LIBRARIES z)
{ check_c_source_compiles( [=[
char * dest[100]; #include "zlib.h"
size_t destlen = 100; int main()
char *src = 0; {
size_t srclen = 3; Bytef dest[100];
size_t res = ZSTD_decompress(dest,destlen,src,srclen); uLongf destlen = 100;
if (res == destlen) { Bytef *src = 0;
/* ALL IS WELL */ uLong srclen = 3;
} int res = uncompress(dest,&destlen,src,srclen);
return 0; if (res == Z_OK) {
} ]=] HAVE_ZSTD ) /* ALL IS WELL */
check_c_source_compiles( [=[ }
#include "zstd.h" return 0;
int main() } ]=] HAVE_ZLIB )
{ check_c_source_compiles( [=[
char * dest[100]; #include "zlib.h"
size_t destlen = 100; int main()
char *src = 0; {
size_t srclen = 3; Bytef dest[100];
size_t res = ZSTD_decompress(dest,destlen,src,srclen); uLongf destlen = 100;
if (res == destlen) { Bytef *src = 0;
/* ALL IS WELL */ uLong srclen = 3;
} int res = uncompress(dest,&destlen,src,srclen);
return 0; if (res == Z_OK) {
} ]=] HAVE_ZSTD_H ) /* ALL IS WELL */
set(CMAKE_REQUIRED_LIBRARIES) }
if (HAVE_ZSTD) return 0;
# For linking in libzstd } ]=] HAVE_ZLIB_H )
set(DW_FZSTD "zstd") set(CMAKE_REQUIRED_LIBRARIES)
if (HAVE_ZLIB)
# For linking in libz
set(DW_FZLIB "z")
endif()
set(CMAKE_REQUIRED_LIBRARIES zstd )
check_c_source_compiles( [=[
#include "zstd.h"
int main()
{
char * dest[100];
size_t destlen = 100;
char *src = 0;
size_t srclen = 3;
size_t res = ZSTD_decompress(dest,destlen,src,srclen);
if (res == destlen) {
/* ALL IS WELL */
}
return 0;
} ]=] HAVE_ZSTD )
check_c_source_compiles( [=[
#include "zstd.h"
int main()
{
char * dest[100];
size_t destlen = 100;
char *src = 0;
size_t srclen = 3;
size_t res = ZSTD_decompress(dest,destlen,src,srclen);
if (res == destlen) {
/* ALL IS WELL */
}
return 0;
} ]=] HAVE_ZSTD_H )
set(CMAKE_REQUIRED_LIBRARIES)
if (HAVE_ZSTD)
# For linking in libzstd
set(DW_FZSTD "zstd")
endif()
else()
find_package(z REQUIRED)
set(DW_FZLIB "z")
endif() endif()
check_c_source_compiles([=[ check_c_source_compiles([=[
@ -434,7 +443,7 @@ target_include_directories(
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
) )
target_link_libraries(dwarf PUBLIC ${LIBELF_LIBRARIES} ${DW_FZLIB} ${DW_FZSTD}) target_link_libraries(dwarf PUBLIC ${DW_FZLIB} ${DW_FZSTD})
# TODO: Something will have to be figured out for dynamic linking, but for now there's nothing to install # TODO: Something will have to be figured out for dynamic linking, but for now there's nothing to install
# if(NOT CMAKE_SKIP_INSTALL_RULES) # if(NOT CMAKE_SKIP_INSTALL_RULES)