From 1a8dac33a27a5b4980b6af8fb4c811671a23cc09 Mon Sep 17 00:00:00 2001 From: zabulus Date: Thu, 7 Apr 2016 13:50:09 +0300 Subject: [PATCH 1/2] Fix MSVC2015 (win64) CMakeLists.txt issues #99 --- CMakeLists.txt | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 17a67e4e..96292d46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,7 +9,6 @@ set(cryptopp_VERSION_PATCH 3) include(GNUInstallDirs) include(TestBigEndian) include(CheckCXXSymbolExists) - #============================================================================ # Settable options #============================================================================ @@ -48,7 +47,7 @@ if(DISABLE_AESNI) add_definitions(-DCRYPTOPP_DISABLE_AESNI) endif() if(NOT CRYPTOPP_DATA_DIR STREQUAL "") - add_definitions(-DCRYPTOPP_DATA_DIR=${CRYPTOPP_DATA_DIR}) + add_definitions(-DCRYPTOPP_DATA_DIR="${CRYPTOPP_DATA_DIR}") endif() #============================================================================ @@ -78,10 +77,26 @@ set(cryptopp_SOURCES ${cryptopp_SOURCES} ) -if(MINGW) +if(MINGW OR WIN32) list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/winpipes.cpp) endif() +if(MSVC AND NOT DISABLE_ASM) + if(CMAKE_CL_64) + list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/x64dll.asm) + list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/x64masm.asm) + set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/x64dll.asm PROPERTIES COMPILE_FLAGS "/D_M_X64") + set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/x64masm.asm PROPERTIES COMPILE_FLAGS "/D_M_X64") + set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/rdrand.asm PROPERTIES COMPILE_FLAGS "/D_M_X64") + else() + set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/x64dll.asm PROPERTIES COMPILE_FLAGS "/D_M_X86") + set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/x64masm.asm PROPERTIES COMPILE_FLAGS "/D_M_X86") + set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/rdrand.asm PROPERTIES COMPILE_FLAGS "/D_M_X86") + endif() + list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/rdrand.asm) + enable_language(ASM_MASM) +endif() + #============================================================================ # Compile targets #============================================================================ @@ -92,8 +107,8 @@ if(CMAKE_SIZEOF_VOID_P EQUAL 8) set_target_properties(cryptopp-object PROPERTIES POSITION_INDEPENDENT_CODE TRUE) endif() -add_library(cryptopp-static STATIC $) -add_library(cryptopp-shared SHARED $) +add_library(cryptopp-static STATIC $ ) +add_library(cryptopp-shared SHARED $ ) target_include_directories(cryptopp-shared PUBLIC $ $) target_include_directories(cryptopp-static PUBLIC $ $) From 4f42f4f6ec3699412a0bfe97fdd029ede8f8a238 Mon Sep 17 00:00:00 2001 From: zabulus Date: Thu, 7 Apr 2016 14:10:52 +0300 Subject: [PATCH 2/2] Fix MSVC2015 (win64) CMakeLists.txt issues #99 Fix x86 build --- CMakeLists.txt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 96292d46..7fcfd44f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -9,6 +9,7 @@ set(cryptopp_VERSION_PATCH 3) include(GNUInstallDirs) include(TestBigEndian) include(CheckCXXSymbolExists) + #============================================================================ # Settable options #============================================================================ @@ -89,9 +90,9 @@ if(MSVC AND NOT DISABLE_ASM) set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/x64masm.asm PROPERTIES COMPILE_FLAGS "/D_M_X64") set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/rdrand.asm PROPERTIES COMPILE_FLAGS "/D_M_X64") else() - set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/x64dll.asm PROPERTIES COMPILE_FLAGS "/D_M_X86") - set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/x64masm.asm PROPERTIES COMPILE_FLAGS "/D_M_X86") - set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/rdrand.asm PROPERTIES COMPILE_FLAGS "/D_M_X86") + set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/x64dll.asm PROPERTIES COMPILE_FLAGS "/D_M_X86 /safeseh") + set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/x64masm.asm PROPERTIES COMPILE_FLAGS "/D_M_X86 /safeseh") + set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/rdrand.asm PROPERTIES COMPILE_FLAGS "/D_M_X86 /safeseh") endif() list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/rdrand.asm) enable_language(ASM_MASM) @@ -107,8 +108,8 @@ if(CMAKE_SIZEOF_VOID_P EQUAL 8) set_target_properties(cryptopp-object PROPERTIES POSITION_INDEPENDENT_CODE TRUE) endif() -add_library(cryptopp-static STATIC $ ) -add_library(cryptopp-shared SHARED $ ) +add_library(cryptopp-static STATIC $) +add_library(cryptopp-shared SHARED $) target_include_directories(cryptopp-shared PUBLIC $ $) target_include_directories(cryptopp-static PUBLIC $ $)