summaryrefslogtreecommitdiff
path: root/externals
diff options
context:
space:
mode:
Diffstat (limited to 'externals')
-rw-r--r--externals/CMakeLists.txt3
m---------externals/boost0
-rw-r--r--externals/cryptopp/CMakeLists.txt161
m---------externals/cryptopp/cryptopp0
m---------externals/dynarmic0
-rw-r--r--externals/microprofile/microprofile.h2
-rw-r--r--externals/microprofile/microprofileui.h2
m---------externals/nihstro0
8 files changed, 166 insertions, 2 deletions
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
index 7e4b05ffc..309e98464 100644
--- a/externals/CMakeLists.txt
+++ b/externals/CMakeLists.txt
@@ -6,3 +6,6 @@ if (ARCHITECTURE_x86_64)
6 target_compile_options(xbyak INTERFACE -fno-operator-names) 6 target_compile_options(xbyak INTERFACE -fno-operator-names)
7 endif() 7 endif()
8endif() 8endif()
9
10add_subdirectory(cryptopp)
11
diff --git a/externals/boost b/externals/boost
Subproject f005c955f8147a29667aa0b65257abc3dd520b0 Subproject 351972396392c97a659b9a02f34ce9269293d21
diff --git a/externals/cryptopp/CMakeLists.txt b/externals/cryptopp/CMakeLists.txt
new file mode 100644
index 000000000..653af1e4b
--- /dev/null
+++ b/externals/cryptopp/CMakeLists.txt
@@ -0,0 +1,161 @@
1# The CMakeLists.txt shipped with cryptopp pollutes our option list and installation list,
2# so we made our own one. This is basically a trimmed down version of the shipped CMakeLists.txt
3# The differences are:
4# - removed support for legacy CMake versions
5# - removed support for 32-bit
6# - removed -march=native flag
7# - removed rdrand module.asm as a workaround for an issue (see below)
8# - added prefix "CRYPTOPP_" to all option names
9# - disabled testing
10# - disabled installation
11# - disabled documentation
12# - configured to build a static library only
13
14include(TestBigEndian)
15include(CheckCXXCompilerFlag)
16
17#============================================================================
18# Settable options
19#============================================================================
20
21option(CRYPTOPP_DISABLE_ASM "Disable ASM" OFF)
22option(CRYPTOPP_DISABLE_SSSE3 "Disable SSSE3" OFF)
23option(CRYPTOPP_DISABLE_AESNI "Disable AES-NI" OFF)
24option(CRYPTOPP_DISABLE_CXXFLAGS_OPTIMIZATIONS "Disable CXXFLAGS optimizations" OFF)
25
26#============================================================================
27# Internal compiler options
28#============================================================================
29
30# Only set when cross-compiling, http://www.vtk.org/Wiki/CMake_Cross_Compiling
31if (NOT (CMAKE_SYSTEM_VERSION AND CMAKE_SYSTEM_PROCESSOR))
32 set(CRYPTOPP_CROSS_COMPILE 1)
33else()
34 set(CRYPTOPP_CROSS_COMPILE 0)
35endif()
36
37# Don't use RPATH's. The resulting binary could fail a security audit.
38if (NOT CMAKE_VERSION VERSION_LESS 2.8.12)
39 set(CMAKE_MACOSX_RPATH 0)
40endif()
41
42if(CMAKE_CXX_COMPILER_ID MATCHES "Intel")
43 add_definitions(-wd68 -wd186 -wd279 -wd327 -wd161 -wd3180)
44endif()
45
46# Endianness
47TEST_BIG_ENDIAN(IS_BIG_ENDIAN)
48if(IS_BIG_ENDIAN)
49 add_definitions(-DIS_BIG_ENDIAN)
50endif()
51
52if(CRYPTOPP_DISABLE_ASM)
53 add_definitions(-DCRYPTOPP_DISABLE_ASM)
54endif()
55if(CRYPTOPP_DISABLE_SSSE3)
56 add_definitions(-DCRYPTOPP_DISABLE_SSSE3)
57endif()
58if(CRYPTOPP_DISABLE_AESNI)
59 add_definitions(-DCRYPTOPP_DISABLE_AESNI)
60endif()
61
62# We need the output 'uname -s' for Unix and Linux system detection
63if (NOT CRYPTOPP_CROSS_COMPILE)
64 set (UNAME_CMD "uname")
65 set (UNAME_ARG "-s")
66 execute_process(COMMAND ${UNAME_CMD} ${UNAME_ARG}
67 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
68 RESULT_VARIABLE UNAME_RESULT
69 OUTPUT_VARIABLE UNAME_SYSTEM)
70 string(REGEX REPLACE "\n$" "" UNAME_SYSTEM "${UNAME_SYSTEM}")
71endif()
72
73# We need the output 'uname -m' for Unix and Linux platform detection
74if (NOT CRYPTOPP_CROSS_COMPILE)
75 set (UNAME_CMD "uname")
76 set (UNAME_ARG "-m")
77 execute_process(COMMAND ${UNAME_CMD} ${UNAME_ARG}
78 WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
79 RESULT_VARIABLE UNAME_RESULT
80 OUTPUT_VARIABLE UNAME_MACHINE)
81 string(REGEX REPLACE "\n$" "" UNAME_MACHINE "${UNAME_MACHINE}")
82endif()
83
84if(WINDOWS_STORE OR WINDOWS_PHONE)
85 if("${CMAKE_SYSTEM_VERSION}" MATCHES "10\\.0.*")
86 SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D\"_WIN32_WINNT=0x0A00\"" )
87 endif()
88 SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /FI\"winapifamily.h\"" )
89endif()
90
91# Enable PIC for all targets except Windows and 32-bit x86.
92# Avoid on 32-bit x86 due to register pressures.
93if ((NOT CRYPTOPP_CROSS_COMPILE) AND (NOT (WINDOWS OR WINDOWS_STORE OR WINDOWS_PHONE)))
94 # Use Regex; match i386, i486, i586 and i686
95 if (NOT (${UNAME_MACHINE} MATCHES "i.86"))
96 SET(CMAKE_POSITION_INDEPENDENT_CODE 1)
97 endif()
98endif()
99
100# Link is driven through the compiler, but CXXFLAGS are not used. Also see
101# http://public.kitware.com/pipermail/cmake/2003-June/003967.html
102if (NOT (WINDOWS OR WINDOWS_STORE OR WINDOWS_PHONE))
103 SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_FLAGS}")
104endif()
105
106#============================================================================
107# Sources & headers
108#============================================================================
109
110# Library headers
111file(GLOB cryptopp_HEADERS cryptopp/*.h)
112
113# Library sources. You can use the GNUmakefile to generate the list: `make sources`.
114file(GLOB cryptopp_SOURCES cryptopp/*.cpp)
115list(REMOVE_ITEM cryptopp_SOURCES
116 # These are removed in the original CMakeLists.txt
117 ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/pch.cpp
118 ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/simple.cpp
119 ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/winpipes.cpp
120 ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/cryptlib_bds.cpp
121 ${cryptopp_SOURCES_TEST}
122 )
123
124if(MINGW OR WIN32)
125 list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/winpipes.cpp)
126endif()
127
128if(MSVC AND NOT CRYPTOPP_DISABLE_ASM)
129 if(${CMAKE_GENERATOR} MATCHES ".*ARM")
130 message(STATUS "Disabling ASM because ARM is specified as target platform.")
131 else()
132 # Note that we removed rdrand.asm. This is a workaround for the issue that rdrand.asm cannnot compiled properly
133 # on MSVC. Because there is also a rdrand.S file in the submodule, CMake will specify the target path for
134 # rdrand.asm as "/crytopp.dir/{Debug|Release}/cryptopp/rdrand.asm.obj". The additional target folder "cryptopp"
135 # is specified because the file rdrand.asm is in the source folder "cryptopp". But MSVC assembler can't build
136 # target file to an non-existing folder("cryptopp").
137 list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/x64dll.asm)
138 list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/x64masm.asm)
139 # list(APPEND cryptopp_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/rdrand.asm)
140 set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/x64dll.asm PROPERTIES COMPILE_FLAGS "/D_M_X64")
141 set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/x64masm.asm PROPERTIES COMPILE_FLAGS "/D_M_X64")
142 # set_source_files_properties(${CMAKE_CURRENT_SOURCE_DIR}/cryptopp/rdrand.asm PROPERTIES COMPILE_FLAGS "/D_M_X64")
143 enable_language(ASM_MASM)
144 endif()
145endif()
146
147#============================================================================
148# Compile targets
149#============================================================================
150add_library(cryptopp STATIC ${cryptopp_SOURCES})
151
152#============================================================================
153# Third-party libraries
154#============================================================================
155
156if(WIN32)
157 target_link_libraries(cryptopp ws2_32)
158endif()
159
160find_package(Threads)
161target_link_libraries(cryptopp ${CMAKE_THREAD_LIBS_INIT})
diff --git a/externals/cryptopp/cryptopp b/externals/cryptopp/cryptopp
new file mode 160000
Subproject 841c37e34765487a2968357369ab74db8b10a62
diff --git a/externals/dynarmic b/externals/dynarmic
Subproject 36082087ded632079b16d24137fdd0c450ce82e Subproject 358cf7c32205a5114964865c86a8455daf81073
diff --git a/externals/microprofile/microprofile.h b/externals/microprofile/microprofile.h
index f45c9ba82..384863ccc 100644
--- a/externals/microprofile/microprofile.h
+++ b/externals/microprofile/microprofile.h
@@ -201,7 +201,7 @@ typedef uint64_t ThreadIdType;
201int64_t MicroProfileGetTick(); 201int64_t MicroProfileGetTick();
202#define MP_TICK() MicroProfileGetTick() 202#define MP_TICK() MicroProfileGetTick()
203#define MP_BREAK() __debugbreak() 203#define MP_BREAK() __debugbreak()
204#define MP_THREAD_LOCAL __declspec(thread) 204#define MP_THREAD_LOCAL thread_local
205#define MP_STRCASECMP _stricmp 205#define MP_STRCASECMP _stricmp
206#define MP_GETCURRENTTHREADID() GetCurrentThreadId() 206#define MP_GETCURRENTTHREADID() GetCurrentThreadId()
207typedef uint32_t ThreadIdType; 207typedef uint32_t ThreadIdType;
diff --git a/externals/microprofile/microprofileui.h b/externals/microprofile/microprofileui.h
index 66a73abc5..09223b33f 100644
--- a/externals/microprofile/microprofileui.h
+++ b/externals/microprofile/microprofileui.h
@@ -1231,7 +1231,7 @@ void MicroProfileDrawDetailedBars(uint32_t nWidth, uint32_t nHeight, int nBaseY,
1231 char ThreadName[MicroProfileThreadLog::THREAD_MAX_LEN + 16]; 1231 char ThreadName[MicroProfileThreadLog::THREAD_MAX_LEN + 16];
1232 const char* cLocal = MicroProfileIsLocalThread(nThreadId) ? "*": " "; 1232 const char* cLocal = MicroProfileIsLocalThread(nThreadId) ? "*": " ";
1233 1233
1234#if defined(WIN32) 1234#if defined(_WIN32)
1235 // nThreadId is 32-bit on Windows 1235 // nThreadId is 32-bit on Windows
1236 int nStrLen = snprintf(ThreadName, sizeof(ThreadName)-1, "%04x: %s%s", nThreadId, cLocal, i < nNumThreadsBase ? &S.Pool[i]->ThreadName[0] : MICROPROFILE_THREAD_NAME_FROM_ID(nThreadId) ); 1236 int nStrLen = snprintf(ThreadName, sizeof(ThreadName)-1, "%04x: %s%s", nThreadId, cLocal, i < nNumThreadsBase ? &S.Pool[i]->ThreadName[0] : MICROPROFILE_THREAD_NAME_FROM_ID(nThreadId) );
1237#else 1237#else
diff --git a/externals/nihstro b/externals/nihstro
Subproject 26a0a04a458df2b9ba6e39608bee183d8a0a00e Subproject 7e24743af21a7c2e3cef21ef174ae4269d0cfda