Merge branch 'master' of github.com:unicorn-engine/unicorn

This commit is contained in:
Nguyen Anh Quynh 2020-04-30 11:13:42 +08:00
commit 05013b8e47
1 changed files with 54 additions and 1 deletions

View File

@ -82,6 +82,59 @@ if(MSVC)
string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
endif()
else()
# detect host arch.
execute_process(COMMAND ${CMAKE_C_COMPILER} -dM -E -
INPUT_FILE /dev/null
OUTPUT_VARIABLE UC_COMPILER_MACRO)
while(TRUE)
string(FIND ${UC_COMPILER_MACRO} "__x86_64__" UC_RET)
if (${UC_RET} GREATER "0")
set(UNICORN_TARGET_ARCH "i386")
break()
endif()
string(FIND ${UC_COMPILER_MACRO} "__i386__" UC_RET)
if (${UC_RET} GREATER "0")
set(UNICORN_TARGET_ARCH "i386")
break()
endif()
string(FIND ${UC_COMPILER_MACRO} "__arm__" UC_RET)
if (${UC_RET} GREATER "0")
set(UNICORN_TARGET_ARCH "arm")
break()
endif()
string(FIND ${UC_COMPILER_MACRO} "__aarch64__" UC_RET)
if (${UC_RET} GREATER "0")
set(UNICORN_TARGET_ARCH "aarch64")
break()
endif()
string(FIND ${UC_COMPILER_MACRO} "__mips__" UC_RET)
if (${UC_RET} GREATER "0")
set(UNICORN_TARGET_ARCH "mips")
break()
endif()
string(FIND ${UC_COMPILER_MACRO} "__sparc__" UC_RET)
if (${UC_RET} GREATER "0")
set(UNICORN_TARGET_ARCH "sparc")
break()
endif()
string(FIND ${UC_COMPILER_MACRO} "__ia64__" UC_RET)
if (${UC_RET} GREATER "0")
set(UNICORN_TARGET_ARCH "ia64")
break()
endif()
string(FIND ${UC_COMPILER_MACRO} "_ARCH_PPC" UC_RET)
if (${UC_RET} GREATER "0")
set(UNICORN_TARGET_ARCH "ppc")
break()
endif()
string(FIND ${UC_COMPILER_MACRO} "__s390__" UC_RET)
if (${UC_RET} GREATER "0")
set(UNICORN_TARGET_ARCH "s390")
break()
endif()
message(FATAL_ERROR "Unknown host compiler: ${CMAKE_C_COMPILER}.")
endwhile(TRUE)
# check python
find_program(PYTHON_CMD python)
if (NOT PYTHON_CMD)
@ -219,7 +272,7 @@ else()
-c -o ${CMAKE_BINARY_DIR} -b -i ${CMAKE_CURRENT_SOURCE_DIR}/qemu/qapi-schema.json
)
add_compile_options(
-I${CMAKE_CURRENT_SOURCE_DIR}/qemu/tcg/i386
-I${CMAKE_CURRENT_SOURCE_DIR}/qemu/tcg/${UNICORN_TARGET_ARCH}
-D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64
-D_LARGEFILE_SOURCE