diff --git a/configure_options.cmake b/configure_options.cmake index 849231c..ceb6539 100644 --- a/configure_options.cmake +++ b/configure_options.cmake @@ -79,6 +79,7 @@ elseif(TARGET_PLATFORM STREQUAL X86_64) elseif(TARGET_PLATFORM MATCHES X86.*) if(MSVC) list(APPEND WIN_ASSEMBLY_LIST src/x86/sysv_intel.S) + set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} /SAFESEH:NO") enable_language(ASM_MASM) else() list(APPEND SOURCES_LIST src/x86/sysv.S) @@ -329,13 +330,17 @@ foreach(ASM_PATH IN LISTS WIN_ASSEMBLY_LIST) set_source_files_properties("${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm" PROPERTIES GENERATED TRUE) - add_custom_command( - COMMAND "${CMAKE_ASM_MASM_COMPILER}" /Fo "${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj" "${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm" - DEPENDS ${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm - OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj - COMMENT "Assembling ${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm") + if(TARGET_PLATFORM MATCHES X86.*) + list(APPEND SOURCES_LIST ${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm) + else() + add_custom_command( + COMMAND "${CMAKE_ASM_MASM_COMPILER}" /Fo "${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj" "${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm" + DEPENDS ${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj + COMMENT "Assembling ${CMAKE_BINARY_DIR}/${ASM_FILENAME}.asm") - set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj PROPERTIES EXTERNAL_OBJECT TRUE) + set_source_files_properties(${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj PROPERTIES EXTERNAL_OBJECT TRUE) - list(APPEND OBJECTS_LIST ${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj) + list(APPEND OBJECTS_LIST ${CMAKE_CURRENT_BINARY_DIR}/${ASM_FILENAME}.obj) + endif() endforeach()