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