aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/restricted/boost/context/fcontext_impl/ya.make
blob: d0b2bdffa7bd30321ac7789c46e6381ca840a692 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# Generated by devtools/yamaker.

LIBRARY()

WITHOUT_LICENSE_TEXTS()

VERSION(1.87.0)

ORIGINAL_SOURCE(https://github.com/boostorg/context/archive/boost-1.87.0.tar.gz)

LICENSE(BSL-1.0)

PEERDIR(
    contrib/restricted/boost/context/impl_common
)

NO_COMPILER_WARNINGS()

NO_UTIL()

IF (OS_WINDOWS)
    IF (DYNAMIC_BOOST)
        MASMFLAGS(/DBOOST_CONTEXT_EXPORT=EXPORT)
    ELSE()
        MASMFLAGS(/DBOOST_CONTEXT_EXPORT=)
    ENDIF()
ENDIF()

SRCDIR(contrib/restricted/boost/context)

IF (OS_WINDOWS AND ARCH_I386)
    MASMFLAGS(/safeseh)
ENDIF()

IF (ARCH_I386)
    SET(FCONTEXT_ARCH "i386")
ELSEIF (ARCH_X86_64)
    SET(FCONTEXT_ARCH "x86_64")
ELSEIF (ARCH_ARM64)
    SET(FCONTEXT_ARCH "arm64")
ELSEIF (ARCH_ARM)
    SET(FCONTEXT_ARCH "arm")
ENDIF()

IF (OS_WINDOWS)
    SET(FCONTEXT_ABI ms)
ELSEIF (ARCH_ARM64 OR ARCH_ARM)
    SET(FCONTEXT_ABI aapcs)
ELSE(OS_LINUX OR OS_ANDROID)
    SET(FCONTEXT_ABI sysv)
ENDIF()

IF (OS_DARWIN OR OS_IOS)
    SET(FCONTEXT_FMT macho)
    SET(FCONTEXT_SUF gas.S)
ELSEIF (OS_LINUX OR OS_ANDROID)
    SET(FCONTEXT_FMT elf)
    SET(FCONTEXT_SUF gas.S)
ELSEIF (OS_WINDOWS AND ARCH_ARM64)
    SET(FCONTEXT_FMT pe)
    SET(FCONTEXT_SUF asmasm.masm)
ELSEIF (OS_WINDOWS)
    SET(FCONTEXT_FMT pe)
    SET(FCONTEXT_SUF masm.masm)
ENDIF()

SRCS(
    src/asm/make_${FCONTEXT_ARCH}_${FCONTEXT_ABI}_${FCONTEXT_FMT}_${FCONTEXT_SUF}
    src/asm/jump_${FCONTEXT_ARCH}_${FCONTEXT_ABI}_${FCONTEXT_FMT}_${FCONTEXT_SUF}
    src/asm/ontop_${FCONTEXT_ARCH}_${FCONTEXT_ABI}_${FCONTEXT_FMT}_${FCONTEXT_SUF}
    src/fcontext.cpp
)

END()