forked from OSchip/llvm-project
Cleanup Android build and provide better diagnostics
No longer need to set ANDROID if COMPILER_RT_TEST_TARGET_TRIPLE is arm-linux-androideabi. No need to set ANDROID_COMMON_FLAGS. These flags are already in CMAKE_CXX_FLAGS which are used in try_compile(). llvm-svn: 210053
This commit is contained in:
parent
d1a2c2d905
commit
0f7f731966
|
@ -136,6 +136,12 @@ set(COMPILER_RT_TEST_TARGET_TRIPLE ${TARGET_TRIPLE} CACHE STRING
|
||||||
"Default triple for cross-compiled executables")
|
"Default triple for cross-compiled executables")
|
||||||
string(REPLACE "-" ";" TARGET_TRIPLE_LIST ${COMPILER_RT_TEST_TARGET_TRIPLE})
|
string(REPLACE "-" ";" TARGET_TRIPLE_LIST ${COMPILER_RT_TEST_TARGET_TRIPLE})
|
||||||
list(GET TARGET_TRIPLE_LIST 0 COMPILER_RT_TEST_TARGET_ARCH)
|
list(GET TARGET_TRIPLE_LIST 0 COMPILER_RT_TEST_TARGET_ARCH)
|
||||||
|
list(GET TARGET_TRIPLE_LIST 1 COMPILER_RT_TEST_TARGET_OS)
|
||||||
|
list(GET TARGET_TRIPLE_LIST 2 COMPILER_RT_TEST_TARGET_ABI)
|
||||||
|
|
||||||
|
if ("${COMPILER_RT_TEST_TARGET_ABI}" STREQUAL "androideabi")
|
||||||
|
set(ANDROID 1)
|
||||||
|
endif()
|
||||||
|
|
||||||
string(TOLOWER ${CMAKE_SYSTEM_NAME} COMPILER_RT_OS_DIR)
|
string(TOLOWER ${CMAKE_SYSTEM_NAME} COMPILER_RT_OS_DIR)
|
||||||
set(COMPILER_RT_LIBRARY_OUTPUT_DIR
|
set(COMPILER_RT_LIBRARY_OUTPUT_DIR
|
||||||
|
@ -199,29 +205,32 @@ macro(test_target_arch arch)
|
||||||
set(TARGET_${arch}_CFLAGS ${ARGN})
|
set(TARGET_${arch}_CFLAGS ${ARGN})
|
||||||
try_compile(CAN_TARGET_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_SOURCE}
|
try_compile(CAN_TARGET_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_SOURCE}
|
||||||
COMPILE_DEFINITIONS "${TARGET_${arch}_CFLAGS}"
|
COMPILE_DEFINITIONS "${TARGET_${arch}_CFLAGS}"
|
||||||
|
OUTPUT_VARIABLE TARGET_${arch}_OUTPUT
|
||||||
CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS:STRING=${TARGET_${arch}_CFLAGS}")
|
CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS:STRING=${TARGET_${arch}_CFLAGS}")
|
||||||
if(${CAN_TARGET_${arch}})
|
if(${CAN_TARGET_${arch}})
|
||||||
list(APPEND COMPILER_RT_SUPPORTED_ARCH ${arch})
|
list(APPEND COMPILER_RT_SUPPORTED_ARCH ${arch})
|
||||||
|
elseif("${COMPILER_RT_TEST_TARGET_ARCH}" MATCHES "${arch}" OR
|
||||||
|
"${arch}" STREQUAL "arm_android")
|
||||||
|
# Bail out if we cannot target the architecture we plan to test.
|
||||||
|
message(FATAL_ERROR "Cannot compile for ${arch}:\n${TARGET_${arch}_OUTPUT}")
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
if(ANDROID_COMMON_FLAGS)
|
if("${LLVM_NATIVE_ARCH}" STREQUAL "X86")
|
||||||
test_target_arch(arm_android "${ANDROID_COMMON_FLAGS}")
|
if (NOT MSVC)
|
||||||
else()
|
test_target_arch(x86_64 ${TARGET_64_BIT_CFLAGS})
|
||||||
if("${LLVM_NATIVE_ARCH}" STREQUAL "X86")
|
|
||||||
if (NOT MSVC)
|
|
||||||
test_target_arch(x86_64 ${TARGET_64_BIT_CFLAGS})
|
|
||||||
endif()
|
|
||||||
test_target_arch(i386 ${TARGET_32_BIT_CFLAGS})
|
|
||||||
elseif("${LLVM_NATIVE_ARCH}" STREQUAL "PowerPC")
|
|
||||||
test_target_arch(powerpc64 ${TARGET_64_BIT_CFLAGS})
|
|
||||||
endif()
|
endif()
|
||||||
|
test_target_arch(i386 ${TARGET_32_BIT_CFLAGS})
|
||||||
|
elseif("${LLVM_NATIVE_ARCH}" STREQUAL "PowerPC")
|
||||||
|
test_target_arch(powerpc64 ${TARGET_64_BIT_CFLAGS})
|
||||||
|
endif()
|
||||||
|
|
||||||
# Build ARM libraries if we are configured to test on ARM
|
# Build ARM libraries if we are configured to test on ARM
|
||||||
if("${COMPILER_RT_TEST_TARGET_ARCH}" MATCHES "arm|aarch64")
|
if(ANDROID)
|
||||||
test_target_arch(arm "-march=armv7-a")
|
test_target_arch(arm_android "")
|
||||||
test_target_arch(aarch64 "-march=armv8-a")
|
elseif("${COMPILER_RT_TEST_TARGET_ARCH}" MATCHES "arm|aarch64")
|
||||||
endif()
|
test_target_arch(arm "-march=armv7-a")
|
||||||
|
test_target_arch(aarch64 "-march=armv8-a")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# We support running instrumented tests when we're not cross compiling
|
# We support running instrumented tests when we're not cross compiling
|
||||||
|
|
Loading…
Reference in New Issue