CMAKE_MINIMUM_REQUIRED(VERSION 2.8)

PROJECT(APNGASM_CLI)


# Generate version header
SET(APNGASM_CLI_VERSION_MAJOR 3)
SET(APNGASM_CLI_VERSION_MINOR 1)
SET(APNGASM_CLI_VERSION_PATCH 6)
SET(APNGASM_CLI_VERSION "${APNGASM_CLI_VERSION_MAJOR}.${APNGASM_CLI_VERSION_MINOR}.${APNGASM_CLI_VERSION_PATCH}")

CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/src/apngasm-cli-version.h.in ${PROJECT_BINARY_DIR}/src/apngasm-cli-version.h @ONLY)
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/src)

# Generate executable file
ADD_EXECUTABLE(apngasm-cli
    ${PROJECT_SOURCE_DIR}/src/apngasm-cli.cpp
    ${PROJECT_SOURCE_DIR}/src/options.cpp
    ${PROJECT_SOURCE_DIR}/src/cli.cpp
)
SET_TARGET_PROPERTIES(apngasm-cli
	PROPERTIES OUTPUT_NAME apngasm)

# Link libraries
LINK_DIRECTORIES(${PROJECT_BINARY_DIR}/../lib)
INCLUDE_DIRECTORIES(
  ${PROJECT_SOURCE_DIR}/../lib/src
  ${PROJECT_BINARY_DIR}/../lib/src
)
TARGET_LINK_LIBRARIES(apngasm-cli apngasm)

FIND_PACKAGE(ZLIB REQUIRED)
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIRS})
TARGET_LINK_LIBRARIES(apngasm-cli ${ZLIB_LIBRARIES})

IF(APPLE OR WIN32)
  SET(Boost_USE_STATIC_LIBS ON)
ENDIF(APPLE OR WIN32)
FIND_PACKAGE(Boost REQUIRED COMPONENTS program_options regex filesystem system) 
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS}) 
TARGET_LINK_LIBRARIES(apngasm-cli ${Boost_LIBRARIES})

# Installation
INSTALL(TARGETS apngasm-cli DESTINATION "bin")

# Create package command
SET(PACKAGE_DIR ${PROJECT_BINARY_DIR}/package)
GET_PROPERTY(INSTALL_APPS TARGET apngasm-cli PROPERTY LOCATION)

IF(WIN32)
  SET(INSTALL_HEADERS "${PROJECT_SOURCE_DIR}/../lib/src/apngasm.h ${PROJECT_SOURCE_DIR}/../lib/src/apngframe.h ${PROJECT_SOURCE_DIR}/../lib/src/apngasm-conf.h ${PROJECT_BINARY_DIR}/../lib/src/apngasm-version.h")
  GET_PROPERTY(INSTALL_LIBS TARGET apngasm PROPERTY LOCATION)
  STRING(REPLACE "$(Configuration)" "\\\${CMAKE_INSTALL_CONFIG_NAME}" INSTALL_APPS "${INSTALL_APPS}")
  STRING(REPLACE "$(Configuration)" "\\\${CMAKE_INSTALL_CONFIG_NAME}" INSTALL_LIBS "${INSTALL_LIBS}")
ENDIF(WIN32)

INCLUDE(${PROJECT_BINARY_DIR}/../lib/manifest.txt)
CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/package/CMakeLists.txt.in ${PACKAGE_DIR}/CMakeLists.txt @ONLY)

IF(UNIX OR APPLE)
  ADD_CUSTOM_TARGET(
    package-cli
    COMMAND ${CMAKE_COMMAND} .
    COMMAND ${CMAKE_MAKE_PROGRAM} package
    WORKING_DIRECTORY ${PACKAGE_DIR}
  )
  INSTALL(FILES ${PROJECT_SOURCE_DIR}/../docs/man/apngasm.1 DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man1)
ENDIF(UNIX OR APPLE)
