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/chkesp.s 8 except/i386/prolog.s 9 ) 10 if(MSVC) 11 list(APPEND CRT_EXCEPT_ASM_SOURCE 12 except/i386/cpp.s) 13 endif() 14elseif(ARCH STREQUAL "amd64") 15 list(APPEND LIBCNTPR_EXCEPT_SOURCE 16 except/amd64/ehandler.c 17 ) 18 list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE 19 except/amd64/chkstk_ms.s 20 except/amd64/seh.s 21 ) 22 list(APPEND CRT_EXCEPT_ASM_SOURCE 23 except/amd64/seh.s 24 ) 25 if(MSVC) 26 list(APPEND CRT_EXCEPT_ASM_SOURCE 27 except/amd64/cpp.s) 28 endif() 29elseif(ARCH STREQUAL "arm") 30 list(APPEND LIBCNTPR_EXCEPT_SOURCE 31 except/arm/ehandler.c 32 ) 33 list(APPEND LIBCNTPR_EXCEPT_ASM_SOURCE 34 except/arm/__jump_unwind.s 35 except/arm/_abnormal_termination.s 36 except/arm/_except_handler2.s 37 except/arm/_except_handler3.s 38 except/arm/_global_unwind2.s 39 except/arm/_local_unwind2.s 40 except/arm/chkstk_asm.s 41 ) 42 list(APPEND CRT_EXCEPT_ASM_SOURCE 43 except/arm/_abnormal_termination.s 44 except/arm/_except_handler2.s 45 except/arm/_except_handler3.s 46 except/arm/_global_unwind2.s 47 except/arm/_local_unwind2.s 48 except/arm/chkstk_asm.s 49 ) 50 if(MSVC) 51 list(APPEND CRT_EXCEPT_ASM_SOURCE 52 except/arm/cpp.s) 53 endif() 54endif() 55 56list(APPEND CRT_EXCEPT_SOURCE 57 ${LIBCNTPR_EXCEPT_SOURCE} 58 except/stack.c 59) 60 61if(ARCH STREQUAL "i386") 62 list(APPEND CHKSTK_ASM_SOURCE except/i386/chkstk_asm.s) 63elseif(ARCH STREQUAL "amd64") 64 list(APPEND CHKSTK_ASM_SOURCE except/amd64/chkstk_ms.s) 65elseif(ARCH STREQUAL "arm") 66 list(APPEND CHKSTK_ASM_SOURCE except/arm/chkstk_asm.s) 67endif() 68 69add_asm_files(chkstk_lib_asm ${CHKSTK_ASM_SOURCE}) 70add_library(chkstk ${CHKSTK_SOURCE} ${chkstk_lib_asm}) 71set_target_properties(chkstk PROPERTIES LINKER_LANGUAGE "C") 72add_dependencies(chkstk asm) 73