Fix broken CMakeList.txt under MinGW (again) (Issue 476)

Sorry about that Anonimal
pull/477/head
Jeffrey Walton 2017-08-28 18:15:32 -04:00
parent 76c4d6e9fa
commit 238154966c
No known key found for this signature in database
GPG Key ID: B36AB348921B1838
1 changed files with 36 additions and 40 deletions

View File

@ -99,13 +99,13 @@ function(CheckCompilerOption option variable)
message(STATUS "Performing Test ${variable}")
execute_process(
COMMAND sh -c "${CMAKE_CXX_COMPILER} ${CMAKE_CXX_FLAGS} ${option} -E -xdumpmacros /dev/null 2>&1"
COMMAND egrep -i -c "illegal value ignored"
COMMAND grep -i -c -E "illegal value ignored"
RESULT_VARIABLE COMMAND_RESULT
OUTPUT_VARIABLE COMMAND_OUTPUT
OUTPUT_STRIP_TRAILING_WHITESPACE)
# No dereference below. Thanks for the warning, CMake (not!).
if (COMMAND_RESULT STREQUAL "1" AND COMMAND_OUTPUT STREQUAL "0")
if (COMMAND_RESULT AND NOT COMMAND_OUTPUT)
set(${variable} 1 PARENT_SCOPE)
message(STATUS "Performing Test ${variable} - Success")
else ()
@ -148,7 +148,7 @@ DumpMachine(CRYPTOPP_ARM "\\<arm\\>")
# Test SunCC for a string like 'CC: Sun C++ 5.13 SunOS_i386'
if (NOT CRYPTOPP_SOLARIS)
execute_process(COMMAND sh -c "${CMAKE_CXX_COMPILER} -V 2>&1"
COMMAND egrep -i -c "SunOS"
COMMAND grep -i -c "SunOS"
OUTPUT_VARIABLE CRYPTOPP_SOLARIS
OUTPUT_STRIP_TRAILING_WHITESPACE)
endif ()
@ -156,7 +156,7 @@ endif ()
# Test GCC for a string like 'i386-pc-solaris2.11'
if (NOT CRYPTOPP_SOLARIS)
execute_process(COMMAND sh -c "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1"
COMMAND egrep -i -c "Solaris"
COMMAND grep -i -c "Solaris"
OUTPUT_VARIABLE CRYPTOPP_SOLARIS
OUTPUT_STRIP_TRAILING_WHITESPACE)
endif ()
@ -166,32 +166,32 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
# SunCC is 32-bit, but it builds both 32 and 64 bit. Use
execute_process(COMMAND sh -c "${CMAKE_CXX_COMPILER} -V 2>&1"
COMMAND egrep -i -c "Sparc"
COMMAND grep -i -c "Sparc"
OUTPUT_VARIABLE CRYPTOPP_SPARC
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND sh -c "${CMAKE_CXX_COMPILER} -V 2>&1"
COMMAND egrep -i -c "i386|i86"
COMMAND grep -i -c -E "i386|i86"
OUTPUT_VARIABLE CRYPTOPP_I386
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND isainfo -k
COMMAND egrep -i -c "i386"
COMMAND grep -i -c "i386"
OUTPUT_VARIABLE KERNEL_I386
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND isainfo -k
COMMAND egrep -i -c "amd64"
COMMAND grep -i -c "amd64"
OUTPUT_VARIABLE KERNEL_AMD64
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND isainfo -k
COMMAND grep -i "Sparc"
COMMAND grep -i -c "Sparc"
OUTPUT_VARIABLE KERNEL_SPARC
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND isainfo -k
COMMAND egrep -i -c "UltraSarc|Sparc64|SparcV9"
COMMAND grep -i -c -E "UltraSarc|Sparc64|SparcV9"
OUTPUT_VARIABLE KERNEL_SPARC64
OUTPUT_STRIP_TRAILING_WHITESPACE)
@ -217,7 +217,7 @@ endif ()
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
execute_process(COMMAND sh -c "${CMAKE_CXX_COMPILER} --version 2>&1"
COMMAND egrep -i -c "macports"
COMMAND grep -i -c "macports"
OUTPUT_VARIABLE MACPORTS
OUTPUT_STRIP_TRAILING_WHITESPACE)
@ -235,7 +235,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# TODO(unassigned): string() REGEX was not cooperating at time of writing. Re-implement as needed.
execute_process(COMMAND echo ${GAS_STRING}
COMMAND egrep -i -c "GNU assembler version (2\\.[1-9][0-9]|[3-9])"
COMMAND grep -i -c -E "GNU assembler version (2\\.[1-9][0-9]|[3-9])"
OUTPUT_VARIABLE GAS210_OR_LATER)
if (GAS210_OR_LATER EQUAL 0)
add_definitions(-DCRYPTOPP_DISABLE_ASM)
@ -243,7 +243,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
endif ()
execute_process(COMMAND echo ${GAS_STRING}
COMMAND egrep -i -c "GNU assembler version (2\\.1[7-9]|2\\.[2-9]|[3-9])"
COMMAND grep -i -c -E "GNU assembler version (2\\.1[7-9]|2\\.[2-9]|[3-9])"
OUTPUT_VARIABLE GAS217_OR_LATER)
if (GAS217_OR_LATER EQUAL 0)
add_definitions(-DCRYPTOPP_DISABLE_SSSE3)
@ -252,7 +252,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# OpenBSD and CentOS 5 needed this one due to ARIA and BLAKE2
execute_process(COMMAND echo ${GAS_STRING}
COMMAND egrep -i -c "GNU assembler version (2\\.1[8-9]|2\\.[2-9]|[3-9])"
COMMAND grep -i -c -E "GNU assembler version (2\\.1[8-9]|2\\.[2-9]|[3-9])"
OUTPUT_VARIABLE GAS218_OR_LATER)
if (GAS218_OR_LATER EQUAL 0)
add_definitions(-DCRYPTOPP_DISABLE_SSE4)
@ -260,7 +260,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
endif ()
execute_process(COMMAND echo ${GAS_STRING}
COMMAND egrep -i -c "GNU assembler version (2\\.19|2\\.[2-9]|[3-9])"
COMMAND grep -i -c -E "GNU assembler version (2\\.19|2\\.[2-9]|[3-9])"
OUTPUT_VARIABLE GAS219_OR_LATER)
if (GAS219_OR_LATER EQUAL 0)
add_definitions(-DCRYPTOPP_DISABLE_AESNI)
@ -269,7 +269,7 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
# Ubuntu 10 and Ubuntu 12 needed this one
execute_process(COMMAND echo ${GAS_STRING}
COMMAND egrep -i -c "GNU assembler version (2\\.2[3-9]|2\\.[3-9]|[3-9])"
COMMAND grep -i -c -E "GNU assembler version (2\\.2[3-9]|2\\.[3-9]|[3-9])"
OUTPUT_VARIABLE GAS223_OR_LATER)
if (GAS223_OR_LATER EQUAL 0)
add_definitions(-DCRYPTOPP_DISABLE_SHA)
@ -293,10 +293,10 @@ if (NOT CRYPTOPP_I386)
endif ()
# Solaris specific
if (CRYPTOPP_SOLARIS EQUAL 1)
if (CRYPTOPP_SOLARIS)
# Determine 32-bit vs 64-bit
if (CRYPTOPP_AMD64 EQUAL 1 OR CRYPTOPP_SPARC64 EQUAL 1)
if (CRYPTOPP_AMD64 OR CRYPTOPP_SPARC64)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
else ()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
@ -387,7 +387,7 @@ endif ()
# New as of Pull Request 461, http://github.com/weidai11/cryptopp/pull/461.
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
if (CRYPTOPP_AMD64 EQUAL 1 OR CRYPTOPP_I386 EQUAL 1 OR CRYPTOPP_X32 EQUAL 1)
if (CRYPTOPP_AMD64 OR CRYPTOPP_I386 OR CRYPTOPP_X32)
CheckCompilerOption("-mssse3" CRYPTOPP_IA32_SSSE3)
CheckCompilerOption("-msse4.2" CRYPTOPP_IA32_SSE4)
@ -403,25 +403,25 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GN
message(WARNING "CRYPTOPP_NATIVE_ARCH enabled, but failed to detect native architecture")
endif ()
if (CRYPTOPP_IA32_SSSE3 EQUAL 1 AND NOT DISABLE_SSSE3)
if (CRYPTOPP_IA32_SSSE3 AND NOT DISABLE_SSSE3)
set_source_files_properties(aria-simd.cpp PROPERTIES COMPILE_FLAGS "-mssse3")
if (CRYPTOPP_IA32_SSE4 EQUAL 1 AND NOT DISABLE_SSE4)
if (CRYPTOPP_IA32_SSE4 AND NOT DISABLE_SSE4)
set_source_files_properties(blake2-simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.2")
set_source_files_properties(crc-simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.2")
if (CRYPTOPP_IA32_CLMUL STREQUAL "1" AND NOT DISABLE_AES)
if (CRYPTOPP_IA32_CLMUL AND NOT DISABLE_AES)
set_source_files_properties(gcm-simd.cpp PROPERTIES COMPILE_FLAGS "-mssse3 -mpclmul")
endif ()
if (CRYPTOPP_IA32_AES STREQUAL "1" AND NOT DISABLE_AES)
if (CRYPTOPP_IA32_AES AND NOT DISABLE_AES)
set_source_files_properties(rijndael-simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.1 -maes")
endif ()
if (CRYPTOPP_IA32_SHA STREQUAL "1" AND NOT DISABLE_SHA)
if (CRYPTOPP_IA32_SHA AND NOT DISABLE_SHA)
set_source_files_properties(sha-simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.2 -msha")
set_source_files_properties(shacal2-simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.2 -msha")
endif ()
endif ()
endif ()
elseif (CRYPTOPP_AARCH32 EQUAL 1 OR CRYPTOPP_AARCH64 EQUAL 1)
elseif (CRYPTOPP_AARCH32 OR CRYPTOPP_AARCH64)
CheckCompilerOption("-march=armv8-a" CRYPTOPP_ARMV8A_BASE)
CheckCompilerOption("-march=armv8-a+crc" CRYPTOPP_ARMV8A_CRC)
@ -435,22 +435,22 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GN
message(WARNING "CRYPTOPP_NATIVE_ARCH enabled, but failed to detect native architecture")
endif ()
if (CRYPTOPP_ARMV8A_BASE EQUAL 1)
if (CRYPTOPP_ARMV8A_BASE)
set_source_files_properties(aria-simd.cpp PROPERTIES COMPILE_FLAGS "-march=armv8-a")
set_source_files_properties(blake2-simd.cpp PROPERTIES COMPILE_FLAGS "-march=armv8-a")
set_source_files_properties(neon-simd.cpp PROPERTIES COMPILE_FLAGS "-march=armv8-a")
endif ()
if (CRYPTOPP_ARMV8A_CRC EQUAL 1)
if (CRYPTOPP_ARMV8A_CRC)
set_source_files_properties(crc-simd.cpp PROPERTIES COMPILE_FLAGS "-march=armv8-a+crc")
endif ()
if (CRYPTOPP_ARMV8A_CRYPTO EQUAL 1)
if (CRYPTOPP_ARMV8A_CRYPTO)
set_source_files_properties(gcm-simd.cpp PROPERTIES COMPILE_FLAGS "-march=armv8-a+crypto")
set_source_files_properties(rijndael-simd.cpp PROPERTIES COMPILE_FLAGS "-march=armv8-a+crypto")
set_source_files_properties(sha-simd.cpp PROPERTIES COMPILE_FLAGS "-march=armv8-a+crypto")
set_source_files_properties(shacal2-simd.cpp PROPERTIES COMPILE_FLAGS "-march=armv8-a+crypto")
endif ()
elseif (CRYPTOPP_ARM EQUAL 1 OR CRYPTOPP_ARMHF EQUAL 1)
elseif (CRYPTOPP_ARM OR CRYPTOPP_ARMHF)
CheckCompilerOption("-march=armv7-a -mfpu=neon" CRYPTOPP_ARMV7A_NEON)
CheckCompilerOption("-march=armv7-a -mfloat-abi=hard" CRYPTOPP_ARMV7A_HARD)
@ -484,7 +484,7 @@ endif ()
# New as of Pull Request 461, http://github.com/weidai11/cryptopp/pull/461.
if (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
if (CRYPTOPP_AMD64 EQUAL 1 OR CRYPTOPP_I386 EQUAL 1 OR CRYPTOPP_X32 EQUAL 1)
if (CRYPTOPP_AMD64 OR CRYPTOPP_I386 OR CRYPTOPP_X32)
CheckCompilerOption("-xarch=ssse3" CRYPTOPP_IA32_SSSE3)
CheckCompilerOption("-xarch=sse4_2" CRYPTOPP_IA32_SSE4)
@ -500,25 +500,25 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
message(WARNING "CRYPTOPP_NATIVE_ARCH enabled, but failed to detect native architecture")
endif ()
if (CRYPTOPP_IA32_SSSE3 STREQUAL "1" AND NOT DISABLE_SSSE3)
if (CRYPTOPP_IA32_SSSE3 AND NOT DISABLE_SSSE3)
set_source_files_properties(aria-simd.cpp PROPERTIES COMPILE_FLAGS "-xarch=ssse3")
if (CRYPTOPP_IA32_SSE4 STREQUAL "1" AND NOT DISABLE_SSE4)
if (CRYPTOPP_IA32_SSE4 AND NOT DISABLE_SSE4)
set_source_files_properties(blake2-simd.cpp PROPERTIES COMPILE_FLAGS "-xarch=sse4_2")
set_source_files_properties(crc-simd.cpp PROPERTIES COMPILE_FLAGS "-xarch=sse4_2")
if (CRYPTOPP_IA32_CLMUL STREQUAL "1" AND NOT DISABLE_AES)
if (CRYPTOPP_IA32_CLMUL AND NOT DISABLE_AES)
set_source_files_properties(gcm-simd.cpp PROPERTIES COMPILE_FLAGS "-xarch=aes")
endif ()
if (CRYPTOPP_IA32_AES STREQUAL "1" AND NOT DISABLE_AES)
if (CRYPTOPP_IA32_AES AND NOT DISABLE_AES)
set_source_files_properties(rijndael-simd.cpp PROPERTIES COMPILE_FLAGS "-xarch=aes")
endif ()
if (CRYPTOPP_IA32_SHA STREQUAL "1" AND NOT DISABLE_SHA)
if (CRYPTOPP_IA32_SHA AND NOT DISABLE_SHA)
set_source_files_properties(sha-simd.cpp PROPERTIES COMPILE_FLAGS "-xarch=sha")
set_source_files_properties(shacal2-simd.cpp PROPERTIES COMPILE_FLAGS "-xarch=sha")
endif ()
endif ()
endif ()
elseif (CRYPTOPP_SPARC EQUAL 1 OR CRYPTOPP_SPARC64 EQUAL 1)
elseif (CRYPTOPP_SPARC OR CRYPTOPP_SPARC64)
# Sparc's need -xmemalign=4i
CheckCompilerOption("-xmemalign=4i" CRYPTOPP_SUN_MEMALIGN)
@ -649,10 +649,6 @@ if (BUILD_TESTING)
add_custom_target(cryptest.exe)
add_dependencies(cryptest.exe cryptest)
endif ()
if (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
set_target_properties(cryptest PROPERTIES LINK_FLAGS "-M cryptest.mapfile")
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/cryptest.mapfile DESTINATION ${PROJECT_BINARY_DIR})
endif ()
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/TestData DESTINATION ${PROJECT_BINARY_DIR})
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/TestVectors DESTINATION ${PROJECT_BINARY_DIR})