cmake_minimum_required(VERSION 2.6)

set(LPCIE_SDK_VERSION 1.1.37)

option(BUILD_ALL                    "Build all tools" OFF)
option(BUILD_TOOLS_LXFW_UPDATE      "Build lpcie-firm-update tool" OFF)
option(BUILD_TOOLS_LXFW_PREPARE     "Build lxfirm-prepare tool" OFF)
option(BUILD_TOOLS_RLE     			"Build rle tool" OFF)
option(BUILD_EXAMPLES               "Build C examples for x502api" OFF)
option(BUILD_TESTS                  "Build test tools for L502/E502" OFF)
option(LCARD_SDK_MAKE_INSTALLER     "Build windows installer" OFF)

set(X502API_DIR         ${CMAKE_CURRENT_SOURCE_DIR}/api/x502api)
set(X502API_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/api/x502api/include)

add_compile_options("$<$<C_COMPILER_ID:MSVC>:/execution-charset:.1251>")
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/source-charset:utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/execution-charset:.1251>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/source-charset:utf-8>")


if(MSVC)
    set(DOXY_XMLTOTEX_EXECUTABLE ${CMAKE_CURRENT_BINARY_DIR}/tools/doxyXmlToLatex/Release/doxyXmlToLatex)
else(MSVC)
    set(DOXY_XMLTOTEX_EXECUTABLE ${CMAKE_CURRENT_BINARY_DIR}/tools/doxyXmlToLatex/doxyXmlToLatex)
endif(MSVC)

set(CMAKE_EXT_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
set(LPCIE_DOCGEN_DIR      ${CMAKE_EXT_INCLUDE_DIR}/docgen)
set(DOC_DOXY_STY_FILE     ${LPCIE_DOCGEN_DIR}/doxygen.sty ${LPCIE_DOCGEN_DIR}/lcard.sty)
set(CMAKE_USE_LATEX_FILE  ${LPCIE_DOCGEN_DIR}/UseLATEX.cmake)

set(PROJECT lpcie_sdk C)
project(${PROJECT})

if(NOT OSC_PROJECT)
    set(OSC_PROJECT  home:l-card)
endif(NOT OSC_PROJECT)


set(LPCIE_SDK_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(LPCIE_SDK_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})


if(WIN32)
    if ( MSVC )
        set(BUILD_OUT_PREFIX "Release")
    endif ( MSVC )
    include(win_installer/winpaths.cmake)
endif(WIN32)

add_subdirectory(api)
add_subdirectory(drivers/pci)
add_subdirectory(tools)

add_subdirectory(firmware/l502-bf)

if(WIN32)
    include(win_installer/rules.cmake)
endif(WIN32)

