cmake_minimum_required(VERSION 2.6)

set(PROJECT rle)

project(${PROJECT} C)
set(PROJECT_VERSION 1.0.1)

add_definitions(-DPROJECT_VERSION="${PROJECT_VERSION}")

if(CMAKE_COMPILER_IS_GNUCC)
    set(WARNOPTS
        -Werror=implicit-int -Werror=implicit-function-declaration -Werror=strict-prototypes -Werror=return-type
        -Wall -Wextra
        -Wformat-security -Winit-self -Wstrict-aliasing -Wfloat-equal
        -Wundef -Wshadow -Wunsafe-loop-optimizations -Wpointer-arith -Wcast-align
        -Wwrite-strings  -Wsign-compare -Wlogical-op -Waggregate-return -Winline
        -Wno-unused-parameter -Wno-unused-variable -Wno-aggregate-return)
    add_definitions(${WARNOPTS})
endif(CMAKE_COMPILER_IS_GNUCC)

if(MSVC)
    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:CONSOLE,5.01")

    add_definitions(-D_CRT_SECURE_NO_WARNINGS)
    foreach(flag_var
            CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE
            CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO)
       if(${flag_var} MATCHES "/MD")
          string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
       endif(${flag_var} MATCHES "/MD")
    endforeach(flag_var)
endif(MSVC)

if(NOT PRJ_INSTALL_DATA)
    if(WIN32)
        set(PRJ_INSTALL_DATA    data)
    else(WIN32)
        set(PRJ_INSTALL_DATA    share/lxfw-update)
    endif(WIN32)
endif(NOT PRJ_INSTALL_DATA)

# не добавлять пути rpath в elf
#set(CMAKE_SKIP_BUILD_RPATH  TRUE)

set(SOURCES
    src/main.c
    src/rle.c
   )

set(HEADERS
    src/rle.h
    )

find_file(HAVE_STDINT stdint.h PATH_SUFFIXES )
if(HAVE_STDINT)
    message(STATUS "stdint.h - found : ${HAVE_STDINT}")
else(HAVE_STDINT)
    message(STATUS "stdint.h - not found. use pstdint.h")
    set(HEADERS ${HEADERS} src/stdint/stdint.h)
    include_directories(src/stdint)
endif(HAVE_STDINT)



include_directories(${PROJECT_SOURCE_DIR}/src)

add_executable(${PROJECT} ${HEADERS} ${SOURCES})


target_link_libraries(${PROJECT} ${LIBS})



install(TARGETS ${PROJECT} DESTINATION ${CMAKE_INSTALL_BINDIR})


#цели для сборки debian-пакетов
if(UNIX AND CMAKE_EXT_INCLUDE_DIR)
    set(PACKAGE_NAME     ${PROJECT})
    set(PACKAGE_VERSION  ${PROJECT_VERSION})

    include(${CMAKE_EXT_INCLUDE_DIR}/packages/packages.cmake)
endif(UNIX AND CMAKE_EXT_INCLUDE_DIR)
