Update CryptoPP to fix g++ build on C++20

This commit is contained in:
Pengfei Zhu
2022-07-01 18:03:52 +08:00
parent 455e9a13ce
commit f66d3cd0fd
3 changed files with 22 additions and 29 deletions
+1 -2
View File
@@ -11,8 +11,7 @@ include(DownloadExternals)
include(CMakeDependentOption) include(CMakeDependentOption)
if (POLICY CMP0076) if (POLICY CMP0076)
# TODO: set this to NEW cmake_policy(SET CMP0076 NEW)
cmake_policy(SET CMP0076 OLD)
endif() endif()
project(threeSD) project(threeSD)
+20 -26
View File
@@ -35,11 +35,6 @@ else()
set(CRYPTOPP_CROSS_COMPILE 0) set(CRYPTOPP_CROSS_COMPILE 0)
endif() endif()
# Don't use RPATH's. The resulting binary could fail a security audit.
if (NOT CMAKE_VERSION VERSION_LESS 2.8.12)
set(CMAKE_MACOSX_RPATH 0)
endif()
if(CMAKE_CXX_COMPILER_ID MATCHES "Intel") if(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
add_definitions(-wd68 -wd186 -wd279 -wd327 -wd161 -wd3180) add_definitions(-wd68 -wd186 -wd279 -wd327 -wd161 -wd3180)
endif() endif()
@@ -129,12 +124,13 @@ set(cryptopp_SOURCES
cryptopp/integer.cpp cryptopp/integer.cpp
cryptopp/algparam.cpp cryptopp/algparam.cpp
cryptopp/allocate.cpp
cryptopp/asn.cpp cryptopp/asn.cpp
cryptopp/authenc.cpp cryptopp/authenc.cpp
cryptopp/base64.cpp cryptopp/base64.cpp
cryptopp/basecode.cpp cryptopp/basecode.cpp
cryptopp/ccm.cpp cryptopp/ccm.cpp
cryptopp/crc-simd.cpp cryptopp/crc_simd.cpp
cryptopp/des.cpp cryptopp/des.cpp
cryptopp/dessp.cpp cryptopp/dessp.cpp
cryptopp/dll.cpp cryptopp/dll.cpp
@@ -143,8 +139,9 @@ set(cryptopp_SOURCES
cryptopp/files.cpp cryptopp/files.cpp
cryptopp/filters.cpp cryptopp/filters.cpp
cryptopp/fips140.cpp cryptopp/fips140.cpp
cryptopp/gcm-simd.cpp cryptopp/gcm_simd.cpp
cryptopp/gf2n.cpp cryptopp/gf2n.cpp
cryptopp/gf2n_simd.cpp
cryptopp/gfpcrypt.cpp cryptopp/gfpcrypt.cpp
cryptopp/hex.cpp cryptopp/hex.cpp
cryptopp/hmac.cpp cryptopp/hmac.cpp
@@ -155,7 +152,7 @@ set(cryptopp_SOURCES
cryptopp/modes.cpp cryptopp/modes.cpp
cryptopp/mqueue.cpp cryptopp/mqueue.cpp
cryptopp/nbtheory.cpp cryptopp/nbtheory.cpp
cryptopp/neon-simd.cpp cryptopp/neon_simd.cpp
cryptopp/oaep.cpp cryptopp/oaep.cpp
cryptopp/osrng.cpp cryptopp/osrng.cpp
cryptopp/pkcspad.cpp cryptopp/pkcspad.cpp
@@ -163,19 +160,15 @@ set(cryptopp_SOURCES
cryptopp/queue.cpp cryptopp/queue.cpp
cryptopp/randpool.cpp cryptopp/randpool.cpp
cryptopp/rdtables.cpp cryptopp/rdtables.cpp
cryptopp/rijndael-simd.cpp cryptopp/rijndael_simd.cpp
cryptopp/rijndael.cpp cryptopp/rijndael.cpp
cryptopp/rng.cpp cryptopp/rng.cpp
cryptopp/rsa.cpp cryptopp/rsa.cpp
cryptopp/sha-simd.cpp cryptopp/sha_simd.cpp
cryptopp/sha.cpp cryptopp/sha.cpp
cryptopp/sse-simd.cpp cryptopp/sse_simd.cpp
) )
if (MINGW OR WIN32)
list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/winpipes.cpp)
endif ()
if(MSVC AND NOT CRYPTOPP_DISABLE_ASM) if(MSVC AND NOT CRYPTOPP_DISABLE_ASM)
if(${CMAKE_GENERATOR} MATCHES ".*ARM") if(${CMAKE_GENERATOR} MATCHES ".*ARM")
message(STATUS "Disabling ASM because ARM is specified as target platform.") message(STATUS "Disabling ASM because ARM is specified as target platform.")
@@ -206,31 +199,35 @@ if ((CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "GN
check_cxx_compiler_flag(-march=armv8-a+crc CRYPTOPP_HAS_ARMV8_CRC32) check_cxx_compiler_flag(-march=armv8-a+crc CRYPTOPP_HAS_ARMV8_CRC32)
check_cxx_compiler_flag(-march=armv8-a+crypto CRYPTOPP_HAS_ARMV8_CRYPTO) check_cxx_compiler_flag(-march=armv8-a+crypto CRYPTOPP_HAS_ARMV8_CRYPTO)
if (CRYPTOPP_HAS_MSSE2) if (CRYPTOPP_HAS_MSSE2)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/sse-simd.cpp PROPERTIES COMPILE_FLAGS "-msse2") set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/sse_simd.cpp PROPERTIES COMPILE_FLAGS "-msse2")
endif() endif()
if (CRYPTOPP_HAS_MSSSE3 AND CRYPTOPP_HAS_MAES AND CRYPTOPP_HAS_PCLMUL) if (CRYPTOPP_HAS_MSSSE3 AND CRYPTOPP_HAS_MAES AND CRYPTOPP_HAS_PCLMUL)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/gcm-simd.cpp set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/gcm_simd.cpp
PROPERTIES COMPILE_FLAGS "-mssse3 -maes -mpclmul") PROPERTIES COMPILE_FLAGS "-mssse3 -maes -mpclmul")
endif() endif()
if (CRYPTOPP_HAS_MSSE41 AND CRYPTOPP_HAS_MAES) if (CRYPTOPP_HAS_MSSE41 AND CRYPTOPP_HAS_MAES)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/rijndael-simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.1 -maes") set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/rijndael_simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.1 -maes")
endif() endif()
if (CRYPTOPP_HAS_MSSE42) if (CRYPTOPP_HAS_MSSE42)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/crc-simd.cpp set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/crc_simd.cpp
PROPERTIES COMPILE_FLAGS "-msse4.2") PROPERTIES COMPILE_FLAGS "-msse4.2")
endif() endif()
if (CRYPTOPP_HAS_MSSE42 AND CRYPTOPP_HAS_MSHA) if (CRYPTOPP_HAS_MSSE42 AND CRYPTOPP_HAS_MSHA)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/sha-simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.2 -msha") set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/sha_simd.cpp PROPERTIES COMPILE_FLAGS "-msse4.2 -msha")
endif() endif()
if (CRYPTOPP_HAS_ARMV8_CRC32) if (CRYPTOPP_HAS_ARMV8_CRC32)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/crc-simd.cpp set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/crc_simd.cpp
PROPERTIES COMPILE_FLAGS "-march=armv8-a+crc") PROPERTIES COMPILE_FLAGS "-march=armv8-a+crc")
endif() endif()
if (CRYPTOPP_HAS_ARMV8_CRYPTO) if (CRYPTOPP_HAS_ARMV8_CRYPTO)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/rijndael-simd.cpp set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/rijndael_simd.cpp
${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/sha-simd.cpp ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/sha_simd.cpp
PROPERTIES COMPILE_FLAGS "-march=armv8-a+crypto") PROPERTIES COMPILE_FLAGS "-march=armv8-a+crypto")
endif() endif()
if (CRYPTOPP_HAS_PCLMUL)
set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/gf2n_simd.cpp
PROPERTIES COMPILE_FLAGS "-mpclmul")
endif()
endif() endif()
#============================================================================ #============================================================================
@@ -243,9 +240,6 @@ target_include_directories(cryptopp INTERFACE .)
# Third-party libraries # Third-party libraries
#============================================================================ #============================================================================
find_package(Threads)
target_link_libraries(cryptopp PRIVATE ${CMAKE_THREAD_LIBS_INIT})
if(ANDROID) if(ANDROID)
include(AndroidNdkModules) include(AndroidNdkModules)
android_ndk_import_module_cpufeatures() android_ndk_import_module_cpufeatures()