2016-10-22 04:45:44 +08:00
|
|
|
cmake_minimum_required(VERSION 3.0)
|
|
|
|
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
|
|
|
|
project(zziplib C)
|
|
|
|
|
|
|
|
find_package(zlib)
|
|
|
|
|
|
|
|
include_directories(${ZLIB_INCLUDE_DIRS})
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
|
|
|
|
if(MSVC)
|
2019-05-01 07:54:33 +08:00
|
|
|
set(CMAKE_DEBUG_POSTFIX "d")
|
|
|
|
add_definitions(-D_CRT_SECURE_NO_DEPRECATE)
|
|
|
|
add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE)
|
|
|
|
endif()
|
|
|
|
|
|
|
|
if(UNIX)
|
|
|
|
message(STATUS "Running ${SHELL_EXECUTABLE} ./configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/")
|
|
|
|
add_custom_target(
|
|
|
|
zziplib_autotools
|
|
|
|
${SHELL_EXECUTABLE} ./configure --prefix=${CMAKE_CURRENT_SOURCE_DIR}/
|
|
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
|
|
)
|
|
|
|
message(STATUS "Autotools should have finished their job")
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/x86_64-pc-linux-gnu/zzip)
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/x86_64-pc-linux-gnu)
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/x86_64-apple-darwin18.2.0/zzip)
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/x86_64-apple-darwin18.2.0)
|
2016-10-22 04:45:44 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
option(BUILD_SHARED_LIBS "Build shared libraries" ON)
|
|
|
|
|
|
|
|
# List the header files
|
|
|
|
set(HEADERS zzip/__debug.h
|
|
|
|
zzip/__dirent.h
|
|
|
|
zzip/__fnmatch.h
|
|
|
|
zzip/__hints.h
|
|
|
|
zzip/__mmap.h
|
|
|
|
zzip/_msvc.h
|
|
|
|
zzip/autoconf.h
|
|
|
|
zzip/conf.h
|
|
|
|
zzip/fetch.h
|
|
|
|
zzip/file.h
|
|
|
|
zzip/format.h
|
|
|
|
zzip/fseeko.h
|
|
|
|
zzip/info.h
|
|
|
|
zzip/lib.h
|
|
|
|
zzip/memdisk.h
|
|
|
|
zzip/mmapped.h
|
|
|
|
zzip/plugin.h
|
|
|
|
zzip/stdint.h
|
|
|
|
zzip/types.h
|
|
|
|
zzip/write.h
|
|
|
|
zzip/zzip.h
|
|
|
|
)
|
2019-05-01 07:54:33 +08:00
|
|
|
if(UNIX)
|
|
|
|
file(GLOB OTHER_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/x86_64-pc-linux-gnu/zzip/*.h)
|
|
|
|
list(APPEND HEADERS ${OTHER_HEADERS})
|
|
|
|
file(GLOB OTHER_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/x86_64-apple-darwin18.2.0/zzip/*.h)
|
|
|
|
list(APPEND HEADERS ${OTHER_HEADERS})
|
|
|
|
else()
|
|
|
|
list(APPEND HEADERS zzip/_msvc.h)
|
|
|
|
endif()
|
2016-10-22 04:45:44 +08:00
|
|
|
|
|
|
|
# List the source files
|
|
|
|
set(SRCS zzip/dir.c
|
|
|
|
zzip/err.c
|
|
|
|
zzip/fetch.c
|
|
|
|
zzip/file.c
|
|
|
|
zzip/info.c
|
|
|
|
zzip/plugin.c
|
|
|
|
zzip/stat.c
|
|
|
|
zzip/zip.c
|
|
|
|
)
|
|
|
|
|
|
|
|
add_library(zziplib ${SRCS} ${HEADERS})
|
2019-05-01 07:54:33 +08:00
|
|
|
if(UNIX)
|
|
|
|
add_dependencies(zziplib zziplib_autotools)
|
|
|
|
endif()
|
2016-10-22 04:45:44 +08:00
|
|
|
|
2017-10-12 22:52:48 +08:00
|
|
|
if(BUILD_SHARED_LIBS)
|
2019-05-01 07:54:33 +08:00
|
|
|
target_compile_definitions(zziplib PRIVATE -DZZIPLIB_EXPORTS)
|
2016-10-22 04:45:44 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
target_link_libraries(zziplib ${ZLIB_LIBRARIES})
|
|
|
|
|
|
|
|
install(TARGETS zziplib
|
|
|
|
COMPONENT runtime
|
|
|
|
RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT bin
|
|
|
|
LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT shlib
|
|
|
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT lib)
|
|
|
|
|
2019-05-01 07:54:33 +08:00
|
|
|
install(FILES ${HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/zzip)
|