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

if( WIN32 )
    set( USE_NATIVE_CERTSTORE true CACHE BOOL "Use native certstore" )
endif()
set( USE_TSL $ENV{USE_TSL} CACHE BOOL "Use TSL trust lists EXPERIMENTAL!!!" )
set( CERTS_LOCATION "" CACHE STRING "Set Certs folder path if empty tires use native certstore/keychain" )
set( LIBDIGIDOC_LINKED true CACHE BOOL "Link with libdigidoc" )
set( INSTALL_DOC false CACHE BOOL "Install documentation" )
set( TSA_URL $ENV{TSA_URL} CACHE STRING "Default TSA url" )
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()

include(VersionInfo)
include(GNUInstallDirs)

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

if( CERTS_LOCATION )
    set( CERTS_PATH ${CERTS_LOCATION} )
else()
    if( UNIX AND NOT APPLE )
        set( CERTS_PATH "${CMAKE_INSTALL_FULL_DATADIR}/esteid/certs" )
    endif()
    if( NOT USE_NATIVE_CERTSTORE AND APPLE )
        set( CERTS_PATH "esteid/certs" )
    endif()
    if( NOT USE_NATIVE_CERTSTORE AND WIN32 )
        set( CERTS_PATH "certs" )
    endif()
endif()

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_DATADIR}/doc/libdigidocpp )
    endif()
    install( DIRECTORY doc/ DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/libdigidocpp PATTERN ".svn" EXCLUDE )
endif()

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

add_subdirectory(src)
add_subdirectory(test)
