project(bzip2)
cmake_minimum_required(VERSION 2.6)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)

if(WINCE)
    find_package(Wcecompat REQUIRED)
    include_directories(${WCECOMPAT_INCLUDE_DIR})
endif(WINCE)

set(bzip2_lib_SRCS
    blocksort.c
    huffman.c
    crctable.c
    randtable.c
    compress.c
    decompress.c
    bzlib.c
)

set(bzip2_scripts
    bzdiff
    bzgrep
    bzmore
)
set(bzip2_docs
    bzip2.txt
    manual.pdf
)
set(bzip2_html
    manual.html
)

set(CMAKE_DEBUG_POSTFIX "d")
if(MSVC)
  add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
  set(CMAKE_C_FLAGS_RELEASE             "${CMAKE_C_FLAGS_RELEASE} /GL")
  set(CMAKE_CXX_FLAGS_RELEASE           "${CMAKE_CXX_FLAGS_RELEASE} /GL")
  set(CMAKE_EXE_LINKER_FLAGS_RELEASE    "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
  set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
  set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG")
endif(MSVC)

if(BUILD_STATIC)
add_library(bzip2 STATIC ${bzip2_lib_SRCS})
add_definitions(-DBZIP2_STATIC)
else()
add_library(bzip2 SHARED ${bzip2_lib_SRCS})
endif()

if(WIN32)
  set_target_properties(bzip2 PROPERTIES PREFIX "" RUNTIME_OUTPUT_NAME libbzip2)
endif(WIN32)

if(WINCE)
    target_link_libraries(bzip2 ${WCECOMPAT_LIBRARIES})
endif(WINCE)

# bzip2recover
add_executable(bzip2recover bzip2recover.c)
target_link_libraries(bzip2recover bzip2)
# bzip2
# disabled bin for wince because of problems with the file system
if(NOT WINCE)
add_executable(bzip2_bin bzip2.c)
target_link_libraries(bzip2_bin bzip2)
set_target_properties(bzip2_bin PROPERTIES RUNTIME_OUTPUT_NAME bzip2)
endif(NOT WINCE)

file(GLOB man1 ${bzip2_SOURCE_DIR}/*.1)

install_targets(/lib bzip2)
install_targets(/bin bzip2recover)
if(NOT WINCE)
install_targets(/bin bzip2_bin)
endif(NOT WINCE)
if(NOT WIN32)
  install(PROGRAMS ${bzip2_scripts} DESTINATION bin)
endif(NOT WIN32)
install(FILES ${man1}          DESTINATION share/man/man1)
install(FILES ${bzip2_docs}    DESTINATION doc)
install(FILES ${bzip2_html}    DESTINATION doc/html)
install(FILES bzlib.h          DESTINATION include)

# echo EXPORTS > bzip2.def
# nm bzip2.dll | grep ' T _' | sed 's/.* T _//' >> bzip2.def
# pexports bzip2.dll > bzip2.def
# lib /def:bzip2.def /machine:x86
