xref: /reactos/sdk/lib/crt/except/except.cmake (revision 9c5efed7)
1
2if(ARCH STREQUAL "i386")
3    list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE
4        except/i386/chkstk_asm.s
5    )
6    list(APPEND CRT_EXCEPT_ASM_SOURCE
7        except/i386/__CxxFrameHandler3.s
8        except/i386/chkesp.s
9        except/i386/prolog.s
10    )
11    list(APPEND CRT_EXCEPT_SOURCE
12        except/i386/CxxHandleV8Frame.c
13    )
14    if(MSVC)
15        list(APPEND CRT_EXCEPT_ASM_SOURCE
16            except/i386/cpp.s
17            except/i386/cpp_alias.s)
18    endif()
19elseif(ARCH STREQUAL "amd64")
20    list(APPEND LIBCNTPR_EXCEPT_SOURCE
21        except/amd64/ehandler.c
22    )
23    list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE
24        except/amd64/chkstk_ms.s
25        except/amd64/seh.s
26    )
27    list(APPEND CRT_EXCEPT_ASM_SOURCE
28        except/amd64/seh.s
29    )
30    if(MSVC)
31        list(APPEND CRT_EXCEPT_ASM_SOURCE
32            except/amd64/cpp.s
33            except/amd64/cpp_alias.s)
34    endif()
35elseif(ARCH STREQUAL "arm")
36    list(APPEND LIBCNTPR_EXCEPT_SOURCE
37        except/arm/ehandler.c
38    )
39    list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE
40        except/arm/__jump_unwind.s
41        except/arm/_abnormal_termination.s
42        except/arm/_except_handler2.s
43        except/arm/_except_handler3.s
44        except/arm/_global_unwind2.s
45        except/arm/_local_unwind2.s
46        except/arm/chkstk_asm.s
47    )
48    list(APPEND CRT_EXCEPT_ASM_SOURCE
49        except/arm/_abnormal_termination.s
50        except/arm/_except_handler2.s
51        except/arm/_except_handler3.s
52        except/arm/_global_unwind2.s
53        except/arm/_local_unwind2.s
54        except/arm/chkstk_asm.s
55    )
56    if(MSVC)
57        list(APPEND CRT_EXCEPT_ASM_SOURCE
58            except/arm/cpp.s
59            except/arm/cpp_alias.s)
60    endif()
61endif()
62
63list(APPEND CRT_EXCEPT_SOURCE
64    ${LIBCNTPR_EXCEPT_SOURCE}
65    except/stack.c
66)
67
68if(ARCH STREQUAL "i386")
69    list(APPEND CHKSTK_ASM_SOURCE except/i386/chkstk_asm.s)
70elseif(ARCH STREQUAL "amd64")
71    list(APPEND CHKSTK_ASM_SOURCE except/amd64/chkstk_ms.s)
72elseif(ARCH STREQUAL "arm")
73    list(APPEND CHKSTK_ASM_SOURCE except/arm/chkstk_asm.s)
74elseif(ARCH STREQUAL "arm64")
75    list(APPEND CHKSTK_ASM_SOURCE except/arm64/chkstk_asm.s)
76endif()
77
78add_asm_files(chkstk_lib_asm ${CHKSTK_ASM_SOURCE})
79add_library(chkstk ${CHKSTK_SOURCE} ${chkstk_lib_asm})
80set_target_properties(chkstk PROPERTIES LINKER_LANGUAGE "C")
81add_dependencies(chkstk asm)
82