mirror of
https://github.com/etlegacy/Update-Installer.git
synced 2025-02-01 20:10:42 +00:00
addc3b253d
Under Debian, the libbz2.so SONAME is libbz2.so.1.0, so ld links to this version of libbz2. Debian has symlinks from libbz2.so.1 and libbz2.so.1.0 to libbz2.so.1.0.x. RedHat however does not have the libbz2.so.1.0 symlink so linking fails at runtime. This commit fixes the problem by linking to libbz2 statically on Linux. This does not bloat the updater library too much as libbz2 is only 70K (measured on Ubuntu 11.04).
56 lines
1.1 KiB
CMake
56 lines
1.1 KiB
CMake
project(minizip)
|
|
|
|
cmake_minimum_required(VERSION 2.6)
|
|
|
|
if (UNIX)
|
|
find_package(ZLIB REQUIRED)
|
|
endif()
|
|
|
|
set (SOURCES
|
|
ioapi.c
|
|
unzip.c
|
|
zip.c
|
|
)
|
|
|
|
set (HEADERS
|
|
ioapi.h
|
|
unzip.h
|
|
zip.h
|
|
)
|
|
|
|
if (APPLE)
|
|
# Mac OS X does not have fopen64()
|
|
# and several related functions as the standard fopen()
|
|
# calls are 64bit
|
|
add_definitions("-DUSE_FILE32API")
|
|
endif()
|
|
|
|
add_definitions("-DHAVE_BZIP2")
|
|
|
|
add_library(minizip
|
|
${SOURCES}
|
|
${HEADERS}
|
|
)
|
|
|
|
if (UNIX)
|
|
# on Mac, link to libbz2 dynamically, on Linux
|
|
# we link statically to libbz2 so that an updater binary
|
|
# build on Debian (where the packaged libbz2 has a SONAME of "libbz2.so.1.0"
|
|
# works on Fedora/openSUSE (where no libbz2.so.1.0 symlink exists)
|
|
#
|
|
# see http://stackoverflow.com/questions/1835489/linking-an-application-to-libbz2-so-1-rather-than-libbz2-so-1-0
|
|
#
|
|
set(BZ2_LIB_NAME bz2)
|
|
if (NOT APPLE)
|
|
set(BZ2_LIB_NAME bz2.a)
|
|
endif()
|
|
|
|
target_link_libraries(minizip z ${BZ2_LIB_NAME})
|
|
else()
|
|
target_link_libraries(minizip
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/../zlib/prebuilt/zlib_static.lib"
|
|
"${CMAKE_CURRENT_SOURCE_DIR}/../bzip2/libbz2_static.lib"
|
|
)
|
|
endif()
|
|
|
|
|