CMake: create DumpMachine function for machine targeting (#471)
Also fixes/resolves MinGW build (Issue 466)pull/474/head
parent
a403c32cf2
commit
a6f24d663e
|
|
@ -99,72 +99,34 @@ endif()
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
||||||
# Begin JW hack
|
# Begin JW + anonimal hack
|
||||||
|
|
||||||
# Attempt to determine the machine the compiler is targeting.
|
# Attempt to determine the machine the compiler is targeting.
|
||||||
|
|
||||||
|
# TODO(unassigned): should we avoid these (for cross-platform compatability)?
|
||||||
set(SHELL_CMD sh)
|
set(SHELL_CMD sh)
|
||||||
set(SHELL_ARGS -c)
|
set(SHELL_ARGS -c)
|
||||||
set(GREP_CMD egrep)
|
|
||||||
set(GREP_ARGS -i -c)
|
|
||||||
|
|
||||||
execute_process(COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
function(DumpMachine output pattern)
|
||||||
COMMAND ${GREP_CMD} ${GREP_ARGS} "amd64"
|
execute_process(
|
||||||
OUTPUT_VARIABLE CRYPTOPP_AMD64
|
COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
COMMAND grep -i -c "${pattern}" # grep cmd intentionally not set/expanded, see http://github.com/weidai11/cryptopp/issues/466
|
||||||
|
OUTPUT_VARIABLE ${output}
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
set(${output} "${${output}}" PARENT_SCOPE)
|
||||||
|
endfunction(DumpMachine)
|
||||||
|
|
||||||
execute_process(COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
DumpMachine(CRYPTOPP_AMD64 "amd64")
|
||||||
COMMAND ${GREP_CMD} ${GREP_ARGS} "x86_64"
|
DumpMachine(CRYPTOPP_X86_64 "x86_64")
|
||||||
OUTPUT_VARIABLE CRYPTOPP_X86_64
|
DumpMachine(CRYPTOPP_I386 "i.86")
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
DumpMachine(CRYPTOPP_MINGW32 "mingw32") # http://github.com/weidai11/cryptopp/issues/466
|
||||||
|
DumpMachine(CRYPTOPP_MINGW64 "w64-mingw32") # http://github.com/weidai11/cryptopp/issues/466
|
||||||
execute_process(COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
DumpMachine(CRYPTOPP_X32 "x32")
|
||||||
COMMAND ${GREP_CMD} ${GREP_ARGS} "i.86"
|
DumpMachine(CRYPTOPP_AARCH32 "Aarch32")
|
||||||
OUTPUT_VARIABLE CRYPTOPP_I386
|
DumpMachine(CRYPTOPP_AARCH64 "Aarch64")
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
DumpMachine(CRYPTOPP_ARM "\\<ARM\\>") # http://stackoverflow.com/q/12515462/608639
|
||||||
|
DumpMachine(CRYPTOPP_ARMHF "ARMHF")
|
||||||
# http://github.com/weidai11/cryptopp/issues/466
|
DumpMachine(CRYPTOPP_ARM7L "ARM7L")
|
||||||
execute_process(COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
|
||||||
COMMAND ${GREP_CMD} ${GREP_ARGS} "mingw32"
|
|
||||||
OUTPUT_VARIABLE CRYPTOPP_MINGW32
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
# http://github.com/weidai11/cryptopp/issues/466
|
|
||||||
execute_process(COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
|
||||||
COMMAND ${GREP_CMD} ${GREP_ARGS} "w64-mingw32"
|
|
||||||
OUTPUT_VARIABLE CRYPTOPP_MINGW64
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
execute_process(COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
|
||||||
COMMAND ${GREP_CMD} ${GREP_ARGS} "x32"
|
|
||||||
OUTPUT_VARIABLE CRYPTOPP_X32
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
execute_process(COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
|
||||||
COMMAND ${GREP_CMD} ${GREP_ARGS} "Aarch32"
|
|
||||||
OUTPUT_VARIABLE CRYPTOPP_AARCH32
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
execute_process(COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
|
||||||
COMMAND ${GREP_CMD} ${GREP_ARGS} "Aarch64"
|
|
||||||
OUTPUT_VARIABLE CRYPTOPP_AARCH64
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
# http://stackoverflow.com/q/12515462/608639
|
|
||||||
execute_process(COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
|
||||||
COMMAND ${GREP_CMD} ${GREP_ARGS} "\\<ARM\\>"
|
|
||||||
OUTPUT_VARIABLE CRYPTOPP_ARM
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
execute_process(COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
|
||||||
COMMAND ${GREP_CMD} ${GREP_ARGS} "ARMHF"
|
|
||||||
OUTPUT_VARIABLE CRYPTOPP_ARMHF
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
execute_process(COMMAND ${SHELL_CMD} ${SHELL_ARGS} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
|
|
||||||
COMMAND ${GREP_CMD} ${GREP_ARGS} "ARM7L"
|
|
||||||
OUTPUT_VARIABLE CRYPTOPP_ARM7L
|
|
||||||
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
||||||
|
|
||||||
# Fixup?
|
# Fixup?
|
||||||
if ("${CRYPTOPP_MINGW64}" STREQUAL "1")
|
if ("${CRYPTOPP_MINGW64}" STREQUAL "1")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue