diff options
| author | Lenny Komow <lenny@lunarg.com> | 2017-06-29 15:40:12 -0600 |
|---|---|---|
| committer | Lenny Komow <lenny@lunarg.com> | 2017-06-30 16:26:51 -0600 |
| commit | b279fcce9ff2b71193702dae66d464d8068d96ab (patch) | |
| tree | 000a1135b4b2aaed2e91dc0738a3901a62b60496 | |
| parent | 12e59077d55930f6af0a2e41c64578755d94f203 (diff) | |
| download | usermoji-b279fcce9ff2b71193702dae66d464d8068d96ab.tar.xz | |
build: Fix build on non-x86 Linux systems
Change-Id: I5a35e1bb5f1f9bf9b773588e1a20c24da78ddc35
| -rw-r--r-- | loader/CMakeLists.txt | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt index e5a3c802..0e87e217 100644 --- a/loader/CMakeLists.txt +++ b/loader/CMakeLists.txt @@ -106,17 +106,20 @@ if (WIN32) endif() else() enable_language(ASM-ATT) - if (CMAKE_ASM-ATT_COMPILER_WORKS) - set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} phys_dev_chain_gas.asm) + set(CMAKE_ASM-ATT_FLAGS "${CMAKE_ASM-ATT_FLAGS} $ENV{ASFLAGS}") + set(CMAKE_ASM-ATT_FLAGS "${CMAKE_ASM-ATT_FLAGS} -I\"${CMAKE_CURRENT_BINARY_DIR}\"") - set(CMAKE_ASM-ATT_FLAGS "${CMAKE_ASM-ATT_FLAGS} $ENV{ASFLAGS}") - set(CMAKE_ASM-ATT_FLAGS "${CMAKE_ASM-ATT_FLAGS} -I\"${CMAKE_CURRENT_BINARY_DIR}\"") + file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/asm_test.asm ".intel_syntax noprefix\n.text\n.global sample\nsample:\nmov ecx, [eax + 16]\n") + try_compile(ASSEMBLER_WORKS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/asm_test.asm) + file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/asm_test.asm) + if (ASSEMBLER_WORKS) + set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} phys_dev_chain_gas.asm) add_executable(asm_offset asm_offset.c) add_dependencies(asm_offset generate_helper_files loader_gen_files) add_custom_command(OUTPUT gen_defines.asm DEPENDS asm_offset COMMAND asm_offset GAS) add_custom_target(loader_asm_gen_files DEPENDS gen_defines.asm) else() - message(WARNING "Could not find working GAS assembler\n${ASM_FAILURE_MSG}") + message(WARNING "Could not find working x86 GAS assembler\n${ASM_FAILURE_MSG}") set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} phys_dev_chain.c) add_custom_target(loader_asm_gen_files) endif() |
