aboutsummaryrefslogblamecommitdiffstats
path: root/contrib/libs/libc_compat/ya.make
blob: b92184c165ae35ef7ce4ce3ed5ee87805981f1a1 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12


                    






                                             
 
                      
 
         
 
            
                   
         
                
     
       


                                                                                                    


                 
     












                                                           





                         
                                      
                 

       




                      
               

                                                       
         
                      

                 


                             
       














                                                              
                                                                                






















                                                          
OWNER(g:cpp-contrib)

LIBRARY()

LICENSE(
    BSD-1-Clause AND
    BSD-2-Clause AND
    BSD-3-Clause AND
    ISC
)

LICENSE_TEXTS(.yandex_meta/licenses.list.txt)

NO_COMPILER_WARNINGS()

NO_UTIL()

NO_RUNTIME()

IF (NOT OS_WINDOWS)
    SRCS(
        string.c
    )
ENDIF()

# Android libc function appearance is documented here:
# https://android.googlesource.com/platform/bionic/+/master/docs/status.md
#
# NB: nested IF's are needed due to the lack of lazy evaluation of logical statements: DEVTOOLS-7837
IF (OS_ANDROID)
    SRCS(
        strlcat.c
        strlcpy.c
    )
    IF (ANDROID_API < 28)
        SRCS(
            glob.c
            reallocarray.c
        )
    ENDIF()
    IF (ANDROID_API < 24)
        SRCS(
            ifaddrs.c
        )
        ADDINCL(
            GLOBAL contrib/libs/libc_compat/include/ifaddrs
        )
    ENDIF()
    IF (ANDROID_API < 21)
        SRCS(
            stpcpy.c
        )
    ENDIF()
ENDIF()

IF (OS_WINDOWS OR OS_DARWIN OR OS_IOS)
    SRCS(
        memrchr.c
    )
ENDIF()

IF (OS_DARWIN)
    SRCS(
        reallocarray.c
    )
ENDIF()

IF (OS_WINDOWS)
    ADDINCL(
        GLOBAL contrib/libs/libc_compat/include/windows
    )
    SRCS(
        reallocarray.c
        stpcpy.c
        strlcat.c
        strlcpy.c
        strcasestr.c
        strsep.c
        src/windows/sys/uio.c
    )
ENDIF()

IF (OS_LINUX)
    ADDINCL(
        GLOBAL contrib/libs/libc_compat/include/readpassphrase
    )
    SRCS(
        readpassphrase.c
    )
ENDIF()

IF (OS_LINUX AND NOT MUSL)
    IF (OS_SDK == "ubuntu-12")
        ADDINCL(
            # uchar.h was introduced in glibc=2.16
            GLOBAL contrib/libs/libc_compat/include/uchar
        )
    ENDIF()
    IF (OS_SDK == "ubuntu-12" OR OS_SDK == "ubuntu-14" OR OS_SDK == "ubuntu-16")
        ADDINCL(
            GLOBAL contrib/libs/libc_compat/include/random
        )
        SRCS(
            # getrandom was added in glibc=2.25
            getrandom.c
            # memfd_create was added in glibc=2.27
            memfd_create.c
        )
    ENDIF()
    IF (OS_SDK != "ubuntu-20")
        SRCS(
            # reallocarray was added in glibc=2.29
            reallocarray.c
        )
    ENDIF()
    SRCS(
        # glibc does not offer strlcat / strlcpy yet
        strlcat.c
        strlcpy.c
    )
ENDIF()

END()