42 lines
1.0 KiB
CMake
42 lines
1.0 KiB
CMake
cmake_minimum_required(VERSION 3.4)
|
|
project(bzip2 LANGUAGES C)
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
option(BZ2_BUILD_EXE "Build bzip2 command-line utility" ON)
|
|
|
|
add_library(
|
|
bz2
|
|
${BZ2_SRC_DIR}/blocksort.c
|
|
${BZ2_SRC_DIR}/bzlib.c
|
|
${BZ2_SRC_DIR}/compress.c
|
|
${BZ2_SRC_DIR}/crctable.c
|
|
${BZ2_SRC_DIR}/decompress.c
|
|
${BZ2_SRC_DIR}/huffman.c
|
|
${BZ2_SRC_DIR}/randtable.c
|
|
)
|
|
|
|
target_include_directories(bz2 PUBLIC ${BZ2_SRC_DIR})
|
|
set_target_properties(
|
|
bz2
|
|
PROPERTIES
|
|
PUBLIC_HEADER "${BZ2_SRC_DIR}/bzlib.h"
|
|
SOVERSION ${BZ2_VERSION_MAJOR}
|
|
VERSION ${BZ2_VERSION_STRING}
|
|
WINDOWS_EXPORT_ALL_SYMBOLS ON
|
|
)
|
|
|
|
install(
|
|
TARGETS bz2
|
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
|
)
|
|
|
|
if(BZ2_BUILD_EXE)
|
|
add_executable(bzip2 ${BZ2_SRC_DIR}/bzip2.c)
|
|
target_link_libraries(bzip2 PRIVATE bz2)
|
|
install(TARGETS bzip2 DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
endif()
|