set(ASM_FAILURE_MSG "${ASM_FAILURE_MSG} the stack frame for certain calls. If the compiler does not do this, then unknown device")
set(ASM_FAILURE_MSG "${ASM_FAILURE_MSG} extensions will suffer from a corrupted stack.")
if(WIN32)
- if(MINGW)
- find_program(JWASM_FOUND jwasm)
+ option(USE_MASM "Use MASM" ON)
+ if(USE_MASM AND MINGW)
+ find_program(JWASM_FOUND NAMES jwasm)
if (JWASM_FOUND)
set(CMAKE_ASM_MASM_COMPILER ${JWASM_FOUND})
execute_process(COMMAND ${CMAKE_C_COMPILER} -dumpmachine OUTPUT_VARIABLE COMPILER_VERSION_OUTPUT)
endif()
endif()
endif()
- if (NOT MSVC)
- set(USE_MASM OFF)
- endif ()
- option(USE_MASM "Use MASM" ON)
if (USE_MASM)
- enable_language(ASM_MASM)
- endif ()
- if(CMAKE_ASM_MASM_COMPILER_WORKS OR JWASM_FOUND)
+ enable_language(ASM_MASM)
+ endif()
+ if(CMAKE_ASM_MASM_COMPILER_WORKS)
if(MINGW)
set(CMAKE_ASM_MASM_FLAGS ${CMAKE_ASM_MASM_FLAGS} ${JWASM_FLAGS})
elseif(NOT CMAKE_CL_64 AND NOT JWASM_FOUND)
add_executable(asm_offset asm_offset.c)
target_link_libraries(asm_offset PRIVATE loader_specific_options)
- # If not cross compiling, run asm_offset to generage gen_defines.asm
- if (NOT CMAKE_CROSSCOMPILING)
+ # If am emulator is provided (Like Wine), or running on native, run asm_offset to generate gen_defines.asm
+ if (CMAKE_CROSSCOMPILING_EMULATOR OR NOT CMAKE_CROSSCOMPILING)
add_custom_command(OUTPUT gen_defines.asm DEPENDS asm_offset COMMAND asm_offset MASM)
else()
# Forces compiler to write the intermediate asm file, needed so that we can get sizeof/offset of info out of it.
set(RC_FILE_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/loader.rc)
endif()
- if (MSVC)
- set(LOADER_UNKNOWN_CHAIN_LIBRARY $<TARGET_OBJECTS:loader-unknown-chain>)
- else()
- set(LOADER_UNKNOWN_CHAIN_LIBRARY "")
- endif()
+ set(LOADER_UNKNOWN_CHAIN_LIBRARY $<$<TARGET_EXISTS:loader-unknown-chain>:$<TARGET_OBJECTS:loader-unknown-chain>>)
add_library(vulkan
SHARED