add host detection in CMakeLists.txt (#1244)
* fix finding python path which only has python3. * add host detection. * add ia64, ppc, s390 host detections.
This commit is contained in:
@ -82,6 +82,59 @@ if(MSVC)
|
|||||||
string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
|
string(REPLACE "/MD" "/MT" CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
|
||||||
endif()
|
endif()
|
||||||
else()
|
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
|
# check python
|
||||||
find_program(PYTHON_CMD python)
|
find_program(PYTHON_CMD python)
|
||||||
if (NOT PYTHON_CMD)
|
if (NOT PYTHON_CMD)
|
||||||
@ -219,7 +272,7 @@ else()
|
|||||||
-c -o ${CMAKE_BINARY_DIR} -b -i ${CMAKE_CURRENT_SOURCE_DIR}/qemu/qapi-schema.json
|
-c -o ${CMAKE_BINARY_DIR} -b -i ${CMAKE_CURRENT_SOURCE_DIR}/qemu/qapi-schema.json
|
||||||
)
|
)
|
||||||
add_compile_options(
|
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_GNU_SOURCE
|
||||||
-D_FILE_OFFSET_BITS=64
|
-D_FILE_OFFSET_BITS=64
|
||||||
-D_LARGEFILE_SOURCE
|
-D_LARGEFILE_SOURCE
|
||||||
|
Reference in New Issue
Block a user