de7a5dde创建于 2025年12月31日历史提交
set(SECUREC_PATH ${SECUREC_INC_DIR}/../)

set(securec_src
    "${SECUREC_PATH}/src/vsprintf_s.c"
    "${SECUREC_PATH}/src/wmemmove_s.c"
    "${SECUREC_PATH}/src/strncat_s.c"
    "${SECUREC_PATH}/src/vsnprintf_s.c"
    "${SECUREC_PATH}/src/sprintf_s.c"
    "${SECUREC_PATH}/src/fwscanf_s.c"
    "${SECUREC_PATH}/src/scanf_s.c"
    "${SECUREC_PATH}/src/strcat_s.c"
    "${SECUREC_PATH}/src/sscanf_s.c"
    "${SECUREC_PATH}/src/secureprintoutput_w.c"
    "${SECUREC_PATH}/src/wmemcpy_s.c"
    "${SECUREC_PATH}/src/wcsncat_s.c"
    "${SECUREC_PATH}/src/secureprintoutput_a.c"
    "${SECUREC_PATH}/src/secureinput_w.c"
    "${SECUREC_PATH}/src/memcpy_s.c"
    "${SECUREC_PATH}/src/fscanf_s.c"
    "${SECUREC_PATH}/src/vswscanf_s.c"
    "${SECUREC_PATH}/src/secureinput_a.c"
    "${SECUREC_PATH}/src/memmove_s.c"
    "${SECUREC_PATH}/src/swscanf_s.c"
    "${SECUREC_PATH}/src/snprintf_s.c"
    "${SECUREC_PATH}/src/vscanf_s.c"
    "${SECUREC_PATH}/src/vswprintf_s.c"
    "${SECUREC_PATH}/src/wcscpy_s.c"
    "${SECUREC_PATH}/src/vfwscanf_s.c"
    "${SECUREC_PATH}/src/memset_s.c"
    "${SECUREC_PATH}/src/wscanf_s.c"
    "${SECUREC_PATH}/src/vwscanf_s.c"
    "${SECUREC_PATH}/src/strtok_s.c"
    "${SECUREC_PATH}/src/wcsncpy_s.c"
    "${SECUREC_PATH}/src/vfscanf_s.c"
    "${SECUREC_PATH}/src/vsscanf_s.c"
    "${SECUREC_PATH}/src/wcstok_s.c"
    "${SECUREC_PATH}/src/securecutil.c"
    "${SECUREC_PATH}/src/gets_s.c"
    "${SECUREC_PATH}/src/swprintf_s.c"
    "${SECUREC_PATH}/src/strcpy_s.c"
    "${SECUREC_PATH}/src/wcscat_s.c"
    "${SECUREC_PATH}/src/strncpy_s.c"
)

add_library(c_sec SHARED
    ${securec_src}
)

target_include_directories(c_sec PRIVATE ${SECUREC_INC_DIR})

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
)