set(SECUREC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../securec)

set(securec_src
    "${SECUREC_DIR}/src/fscanf_s.c"
    "${SECUREC_DIR}/src/fwscanf_s.c"
    "${SECUREC_DIR}/src/gets_s.c"
    "${SECUREC_DIR}/src/memcpy_s.c"
    "${SECUREC_DIR}/src/memmove_s.c"
    "${SECUREC_DIR}/src/memset_s.c"
    "${SECUREC_DIR}/src/scanf_s.c"
    "${SECUREC_DIR}/src/securecutil.c"
    "${SECUREC_DIR}/src/secureinput_a.c"
    "${SECUREC_DIR}/src/secureinput_w.c"
    "${SECUREC_DIR}/src/secureprintoutput_a.c"
    "${SECUREC_DIR}/src/secureprintoutput_w.c"
    "${SECUREC_DIR}/src/snprintf_s.c"
    "${SECUREC_DIR}/src/sprintf_s.c"
    "${SECUREC_DIR}/src/sscanf_s.c"
    "${SECUREC_DIR}/src/strcat_s.c"
    "${SECUREC_DIR}/src/strcpy_s.c"
    "${SECUREC_DIR}/src/strncpy_s.c"
    "${SECUREC_DIR}/src/strncat_s.c"
    "${SECUREC_DIR}/src/strtok_s.c"
    "${SECUREC_DIR}/src/swprintf_s.c"
    "${SECUREC_DIR}/src/swscanf_s.c"
    "${SECUREC_DIR}/src/vfscanf_s.c"
    "${SECUREC_DIR}/src/vfwscanf_s.c"
    "${SECUREC_DIR}/src/vscanf_s.c"
    "${SECUREC_DIR}/src/vsnprintf_s.c"
    "${SECUREC_DIR}/src/vsprintf_s.c"
    "${SECUREC_DIR}/src/vsscanf_s.c"
    "${SECUREC_DIR}/src/vswprintf_s.c"
    "${SECUREC_DIR}/src/vswscanf_s.c"
    "${SECUREC_DIR}/src/vwscanf_s.c"
    "${SECUREC_DIR}/src/wcscat_s.c"
    "${SECUREC_DIR}/src/wcscpy_s.c"
    "${SECUREC_DIR}/src/wcsncat_s.c"
    "${SECUREC_DIR}/src/wcsncpy_s.c"
    "${SECUREC_DIR}/src/wcstok_s.c"
    "${SECUREC_DIR}/src/wmemcpy_s.c"
    "${SECUREC_DIR}/src/wmemmove_s.c"
    "${SECUREC_DIR}/src/wscanf_s.c"
)
set(securec_inc
    ${SECUREC_DIR}/include
)
add_library(c_sec SHARED
    ${securec_src}
)
include_directories(c_sec
    ${securec_inc}
)
target_compile_options(c_sec PRIVATE
    -fPIC
    -fstack-protector-all
    -fno-common
    -fno-strict-aliasing
    -Wfloat-equal
    -Wextra
)
target_link_options(c_sec PRIVATE
    -Wl,-z,relro,-z,now,-z,noexecstack
    -s
)