cmake_minimum_required(VERSION 3.5)

project(CryptoApiSamples)

include(../common.cmake)

set(CMAKE_BINARY_DIR "${CMAKE_CURRENT_SOURCE_DIR}/out")

add_compile_options(/W4 /WX /wd4090)

function(CSP_sample target sources project)
    add_executable(${target} "${sources}")
    target_include_directories(${target} PRIVATE "${project}/include")
    target_link_libraries(${target} Crypt32)

    set_target_properties(
        ${target}
        PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${project}/${OUT_DIR}
                   FOLDER ${project}
                   VS_DEBUGGER_WORKING_DIRECTORY $(OutDir))

    if(TARGET ${project})
        add_dependencies(${project} ${target})
    endif()
endfunction()

safe_glob(sources "Cert2Cont/*.[ch]")
csp_sample(Cert2Cont "${sources}" Cert2Cont)

foreach(project CryptoProCSP RutokenCSP)
    add_internal_target(${project})

    safe_glob(sample_sources "${project}/*.c")
    foreach(sample_source ${sample_sources})
        get_filename_wse(target ${sample_source})
        string(REGEX REPLACE ".c$" "" target ${target})

        csp_sample(${target} ${sample_source} ${project})
    endforeach()
endforeach()
