diff options
Diffstat (limited to 'libs/luajit-cmake/Modules/DetectFPUApi.cmake')
-rwxr-xr-x | libs/luajit-cmake/Modules/DetectFPUApi.cmake | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/libs/luajit-cmake/Modules/DetectFPUApi.cmake b/libs/luajit-cmake/Modules/DetectFPUApi.cmake new file mode 100755 index 0000000..0aa2528 --- /dev/null +++ b/libs/luajit-cmake/Modules/DetectFPUApi.cmake @@ -0,0 +1,68 @@ + +##===- DetectArchitecture.cmake -------------------------------------------===## +# +# Performs a try_compile to determine the architecture of the target. +# +##===----------------------------------------------------------------------===## + +get_filename_component(__check_fpu_mode_dir "${CMAKE_CURRENT_LIST_FILE}" PATH) + +macro(detect_fpu_mode variable) + try_compile(HAVE_${variable} + ${CMAKE_BINARY_DIR} + ${__check_fpu_mode_dir}/DetectFpuAbi.c + OUTPUT_VARIABLE OUTPUT + COPY_FILE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/DetectFpuAbi.bin) + + if(HAVE_${variable}) + file(STRINGS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/DetectFpuAbi.bin + DETECT_FPU_STRING LIMIT_COUNT 1 REGEX "FPU IS") + if(DETECT_FPU_STRING) + string(REGEX MATCH "[^ ]*$" DETECT_FPU_MATCH ${DETECT_FPU_STRING}) + if(DETECT_FPU_MATCH) + message(STATUS "Check target fpu: ${DETECT_FPU_STRING}") + set(${variable} ${DETECT_FPU_MATCH}) + else() + message(SEND_ERROR "Could not detect target fpu mode!") + endif() + else() + message(SEND_ERROR "Could not detect fpu mode!") + endif() + else() + message(STATUS "Determine the fpu mode - failed") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining the fpu mode failed with the following output:\n${OUTPUT}") + set(${variable}) + endif() + +endmacro(detect_fpu_mode) + +macro(detect_fpu_abi variable) + try_compile(HAVE_${variable} + ${CMAKE_BINARY_DIR} + ${__check_fpu_mode_dir}/DetectFpuAbi.c + OUTPUT_VARIABLE OUTPUT + COPY_FILE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/DetectFpuAbi.bin) + + if(HAVE_${variable}) + file(STRINGS ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/DetectFpuAbi.bin + DETECT_FPU_ABI_STRING LIMIT_COUNT 1 REGEX "FPU ABI IS") + if(DETECT_FPU_ABI_STRING) + string(REGEX MATCH "[^ ]*$" DETECT_FPU_ABI_MATCH ${DETECT_FPU_ABI_STRING}) + if(DETECT_FPU_ABI_MATCH) + message(STATUS "Check target fpu abi: ${DETECT_FPU_ABI_STRING}") + set(${variable} ${DETECT_FPU_ABI_MATCH}) + else() + message(SEND_ERROR "Could not detect target fpu abi!") + endif() + else() + message(SEND_ERROR "Could not detect fpu abi!") + endif() + else() + message(STATUS "Determine the fpu abi - failed") + file(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining the fpu abi failed with the following output:\n${OUTPUT}") + set(${variable}) + endif() + +endmacro(detect_fpu_abi) |