cmake_minimum_required(VERSION 2.6)

set(PROJECT ltrctl)
set(VERSION 1.0.1)
project(${PROJECT} C)

set(LTRAPI_MIN_VERSION 1.31.1)


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

if(NOT LTRAPI_INCLUDE_DIR)
    set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
    find_package(LTRAPI REQUIRED ltrapi)
    include_directories(${LTRAPI_INCLUDE_DIRS})
    add_definitions(${LTRAPI_DEFINITIONS})
    set(LIBS ${LIBS} ${LTRAPI_LIBRARIES})
else(NOT LTRAPI_INCLUDE_DIR)
    include_directories(${LTRAPI_INCLUDE_DIR})
    link_directories(${LTRAPI_LIBRARIES_DIR})
    set(LIBS ${LIBS} ltrapi)
endif(NOT LTRAPI_INCLUDE_DIR)

if(UNIX)
  set(LIBS ${LIBS} m)
endif(UNIX)

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

target_link_libraries(${PROJECT} ${LIBS})


if(${CMAKE_SYSTEM_NAME} STREQUAL "QNX4")
    target_link_libraries(${PROJECT} socket3r.lib)
endif(${CMAKE_SYSTEM_NAME} STREQUAL "QNX4")


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

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