cmake_minimum_required(VERSION 3.0) project(bzip2 C) if(CMAKE_BUILD_TYPE STREQUAL Debug) add_definitions(-DBZ_DEBUG) # enable extra assertions endif() set(LIBBZ2_SOURCES blocksort.c huffman.c crctable.c randtable.c compress.c decompress.c bzlib.c) add_library(libbz2 ${LIBBZ2_SOURCES}) set_target_properties(libbz2 PROPERTIES ARCHIVE_OUTPUT_NAME bz2 # required for FindBzip2 to work DEBUG_POSTFIX d) if(BUILD_SHARED_LIBS) target_compile_definitions(libbz2 PRIVATE -DBZ_BUILD_DLL) endif() if(MSVC) add_definitions(-D_CRT_SECURE_NO_WARNINGS) add_definitions(-D_CRT_SECURE_NO_DEPRECATE) add_definitions(-D_CRT_NONSTDC_NO_DEPRECATE) endif() install(TARGETS libbz2 RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib) if(NOT BZIP2_SKIP_TOOLS) add_executable(bzip2 bzip2.c ${LIBBZ2_SOURCES}) add_executable(bzip2recover bzip2recover.c ${LIBBZ2_SOURCES}) install(TARGETS bzip2 bzip2recover DESTINATION tools/bzip2) endif() if(NOT BZIP2_SKIP_HEADERS) install(FILES bzlib.h DESTINATION include) endif()