# Generated by devtools/yamaker.

LIBRARY()

VERSION(3.12.2)

ORIGINAL_SOURCE(https://github.com/python/cpython/archive/v3.12.2.tar.gz)

LICENSE(Python-2.0)

PEERDIR(
    contrib/libs/libc_compat
    contrib/tools/python3/src/Modules
    library/cpp/sanitizer/include
)

ADDINCL(
    contrib/tools/python3/src/Include
    contrib/tools/python3/src/Include/internal
    contrib/tools/python3/src/PC
)

NO_COMPILER_WARNINGS()

NO_UTIL()

CFLAGS(
    -DPy_BUILD_CORE
)

IF (CLANG_CL)
    CFLAGS(
        -Wno-invalid-token-paste
    )
ENDIF()

IF (OS_DARWIN)
    LDFLAGS(
        -framework CoreFoundation
        -framework SystemConfiguration
    )
ELSEIF (OS_WINDOWS)
    CFLAGS(
        -DPY3_DLLNAME=L\"python3\"
    )

    LDFLAGS(
        Mincore.lib
        Shlwapi.lib
        Winmm.lib
    )

    # DISABLE(MSVC_INLINE_OPTIMIZED)
ENDIF()

SRCS(
    Objects/abstract.c
    Objects/boolobject.c
    Objects/bytearrayobject.c
    Objects/bytes_methods.c
    Objects/bytesobject.c
    Objects/call.c
    Objects/capsule.c
    Objects/cellobject.c
    Objects/classobject.c
    Objects/codeobject.c
    Objects/complexobject.c
    Objects/descrobject.c
    Objects/dictobject.c
    Objects/enumobject.c
    Objects/exceptions.c
    Objects/fileobject.c
    Objects/floatobject.c
    Objects/frameobject.c
    Objects/funcobject.c
    Objects/genericaliasobject.c
    Objects/genobject.c
    Objects/interpreteridobject.c
    Objects/iterobject.c
    Objects/listobject.c
    Objects/longobject.c
    Objects/memoryobject.c
    Objects/methodobject.c
    Objects/moduleobject.c
    Objects/namespaceobject.c
    Objects/object.c
    Objects/obmalloc.c
    Objects/odictobject.c
    Objects/picklebufobject.c
    Objects/rangeobject.c
    Objects/setobject.c
    Objects/sliceobject.c
    Objects/structseq.c
    Objects/tupleobject.c
    Objects/typeobject.c
    Objects/typevarobject.c
    Objects/unicodectype.c
    Objects/unicodeobject.c
    Objects/unionobject.c
    Objects/weakrefobject.c
    Parser/action_helpers.c
    Parser/myreadline.c
    Parser/parser.c
    Parser/peg_api.c
    Parser/pegen.c
    Parser/pegen_errors.c
    Parser/string_parser.c
    Parser/token.c
    Parser/tokenizer.c
    Python/Python-ast.c
    Python/Python-tokenize.c
    Python/_warnings.c
    Python/asdl.c
    Python/assemble.c
    Python/ast.c
    Python/ast_opt.c
    Python/ast_unparse.c
    Python/bltinmodule.c
    Python/bootstrap_hash.c
    Python/ceval.c
    Python/ceval_gil.c
    Python/codecs.c
    Python/compile.c
    Python/context.c
    Python/deepfreeze/deepfreeze.c
    Python/dtoa.c
    Python/dynamic_annotations.c
    Python/errors.c
    Python/fileutils.c
    Python/flowgraph.c
    Python/formatter_unicode.c
    Python/frame.c
    Python/frozen.c
    Python/future.c
    Python/getargs.c
    Python/getcompiler.c
    Python/getcopyright.c
    Python/getopt.c
    Python/getplatform.c
    Python/getversion.c
    Python/hamt.c
    Python/hashtable.c
    Python/import.c
    Python/importdl.c
    Python/initconfig.c
    Python/instrumentation.c
    Python/intrinsics.c
    Python/legacy_tracing.c
    Python/marshal.c
    Python/modsupport.c
    Python/mysnprintf.c
    Python/mystrtoul.c
    Python/pathconfig.c
    Python/perf_trampoline.c
    Python/preconfig.c
    Python/pyarena.c
    Python/pyctype.c
    Python/pyfpe.c
    Python/pyhash.c
    Python/pylifecycle.c
    Python/pymath.c
    Python/pystate.c
    Python/pystrcmp.c
    Python/pystrhex.c
    Python/pystrtod.c
    Python/pythonrun.c
    Python/pytime.c
    Python/specialize.c
    Python/structmember.c
    Python/suggestions.c
    Python/symtable.c
    Python/sysmodule.c
    Python/thread.c
    Python/traceback.c
    Python/tracemalloc.c
)

IF (OS_WINDOWS)
    SRCS(
        PC/WinMain.c
        PC/invalid_parameter_handler.c
        PC/msvcrtmodule.c
        PC/winreg.c
        PC/winsound.c
        Python/dynload_win.c
    )
ELSE()
    SRCS(
        Python/dynload_shlib.c
    )
ENDIF()

SUPPRESSIONS(
    tsan.supp
)

END()