cmake_minimum_required(VERSION 2.8)
project(libdigidocpp)

set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
set(CMAKE_FIND_ROOT_PATH ${CMAKE_OSX_SYSROOT})
set(PROJECT_VERSION_PATCH 3)

include(VersionInfo)
include(GNUInstallDirs)

set_ex( TSL_URL "$ENV{TSL_URL}" "https://ec.europa.eu/information_society/policy/esignature/trusted-list/tl-mp.xml" CACHE STRING "TSL trust list primary url" )
set_ex( TSL_CERT1 "$ENV{TSL_CERT1}" "${CMAKE_SOURCE_DIR}/etc/tl-mp1.crt" CACHE FILEPATH "TSL trust list signing cert" )
set_ex( TSL_CERT2 "$ENV{TSL_CERT2}" "${CMAKE_SOURCE_DIR}/etc/tl-mp2.crt" CACHE FILEPATH "TSL trust list signing cert" )
set_ex( TSL_CERT3 "$ENV{TSL_CERT3}" "${CMAKE_SOURCE_DIR}/etc/tl-mp3.crt" CACHE FILEPATH "TSL trust list signing cert" )
set_ex( TSL_CERT4 "$ENV{TSL_CERT4}" "${CMAKE_SOURCE_DIR}/etc/tl-mp4.crt" CACHE FILEPATH "TSL trust list signing cert" )
set_ex( TSA_URL "$ENV{TSA_URL}" "http://tsa.sk.ee" CACHE STRING "Default TSA url" )
set_ex( PDF_URL "$ENV{PDF_URL}" "" CACHE STRING "Default PDF validation url" )
set( LIBDIGIDOC_LINKED true CACHE BOOL "Link with libdigidoc" )
set( INSTALL_DOC false CACHE BOOL "Install documentation" )
set( BUILD_TOOLS true CACHE BOOL "Build digidoc-tool" )
set( BUILD_TYPE "SHARED" CACHE STRING "Build library as SHARED/STATIC" )
set( SIGNCERT "" CACHE STRING "Common name of certificate to used sign binaries, empty skip signing" )
set( INSTCERT "" CACHE STRING "Common name of certificate to used sign packages, empty skip signing" )
if( APPLE )
    set( FRAMEWORK true CACHE BOOL "Build library as Mac OS X Framework" )
    set( USE_KEYCHAIN true CACHE BOOL "Use keychain to store pkcs12 access cert" )
endif()

find_package(Doxygen)
find_package(LibDigiDoc)
find_package(OpenSSL REQUIRED)
find_package(PKCS11)
find_package(Threads)
find_package(XercesC REQUIRED)
find_package(XmlSecurityC REQUIRED)
find_package(XSD 4.0 REQUIRED)
find_package(ZLIB REQUIRED)
find_package(MiniZip QUIET)
find_package(SWIG)

if( INSTALL_DOC )
    if( DOXYGEN_FOUND )
        configure_file( ${CMAKE_SOURCE_DIR}/etc/Doxyfile.in Doxyfile @ONLY )
        add_custom_target( docs ALL
            ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
            COMMENT "Generating API documentation with Doxygen" VERBATIM
        )
        install( DIRECTORY ${CMAKE_BINARY_DIR}/doc/ DESTINATION ${CMAKE_INSTALL_DOCDIR} )
    endif()
    install( DIRECTORY doc/ DESTINATION ${CMAKE_INSTALL_DOCDIR} )
endif()

if( WIN32 )
    add_definitions( -DUNICODE -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS -DWIN32_LEAN_AND_MEAN )
endif()

add_subdirectory(src)
add_subdirectory(test)
add_subdirectory(examples)
