cmake_minimum_required(VERSION 3.5)

project(PkicoreSamples)

include(../../../common.cmake)

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

if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD")
    string(APPEND CMAKE_CXX_FLAGS " -static-libgcc -static-libstdc++")
endif()

if(APPLE)
    string(APPEND CMAKE_EXE_LINKER_FLAGS " -Wl,-rpath,@executable_path")
elseif(NOT MSVC)
    string(APPEND CMAKE_EXE_LINKER_FLAGS " -Wl,-rpath,$ORIGIN")
endif()

if(MSVC)
    set(CXXFLAGS /W4 /WX /wd4505)
else()
    set(CXXFLAGS -Wall -Wextra -Wno-unused-function -Wno-extern-c-compat)
endif()
add_compile_options(${CXXFLAGS})

safe_glob(sample_sources "${CMAKE_CURRENT_SOURCE_DIR}/sources/*.cpp")
foreach(sample_source ${sample_sources})
    get_filename_wse(target ${sample_source})
    add_executable(${target} ${sample_source})

    target_rutoken_dependencies(${target} PKICORE PKCS11)
    target_include_directories(${target} PRIVATE "sources/include")
    set_target_properties(${target} PROPERTIES CXX_STANDARD 14 VS_DEBUGGER_WORKING_DIRECTORY $(OutDir))
endforeach()
