cmake_minimum_required(VERSION 2.6)

set(PROJECT ltreu-firm-update)

project(${PROJECT} C)
set(VERSION 1.0.3)

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)
    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)



set(SOURCES main.c)

#если есть системная реализация getopt - используем ее, иначе используем свою
set(GETOPT_SRC_DIR getopt)
include(${GETOPT_SRC_DIR}/getopt.cmake)


include_directories(${LTRAPI_INCLUDE_DIR} ${PROJECT_SOURCE_DIR})
link_directories(${LTRAPI_LIBRARIES_DIR})

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

target_link_libraries(${PROJECT} ltr030api ltrapi)

if(${CMAKE_SYSTEM_NAME} STREQUAL "QNX" AND CMAKE_CROSSCOMPILING)
    install(TARGETS ${PROJECT} RUNTIME  DESTINATION /${CMAKE_SYSTEM_PROCESSOR}/${CMAKE_INSTALL_PREFIX}/bin)
else()
    install(TARGETS ${PROJECT} DESTINATION bin)
endif()

install(DIRECTORY firmware DESTINATION /usr/share/${PROJECT})
install(PROGRAMS ltr030-firm-update-all.sh DESTINATION bin)
install(PROGRAMS ltr031-firm-update-all.sh DESTINATION bin)

#цели для сборки пакетов
if(LTR_CMAKE_PACKAGES)
    set(PACKAGE_NAME     ${PROJECT})
    set(PACKAGE_VERSION  ${VERSION})
    include(${LTR_CMAKE_PACKAGES})
endif(LTR_CMAKE_PACKAGES)

