diff --git a/.gitmodules b/.gitmodules
index 9b5f0cb968..7143d91ef0 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -19,3 +19,6 @@
[submodule "rsx_program_decompiler"]
path = rsx_program_decompiler
url = https://github.com/RPCS3/rsx_program_decompiler
+[submodule "GSL"]
+ path = GSL
+ url = https://github.com/Microsoft/GSL.git
diff --git a/.travis.yml b/.travis.yml
index 49bf22c063..ea5fab1fdc 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -37,7 +37,7 @@ before_install:
sudo apt-get install libwxgtk3.0-dev;
fi;
- if [ "$TRAVIS_OS_NAME" = "linux" ] && [ "$CXX" = "g++" ]; then
- export CXX="g++-4.9" CC="gcc-4.9" CXXFLAGS="-Wno-format-security";
+ export CXX="g++-5" CC="gcc-5" CXXFLAGS="-Wno-format-security";
export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01';
elif [ "$TRAVIS_OS_NAME" = "linux" ]; then
export CXX="clang++-3.6" CC="clang-3.6";
@@ -51,7 +51,7 @@ before_install:
fi;
before_script:
- - git submodule update --init asmjit ffmpeg rsx_program_decompiler
+ - git submodule update --init asmjit ffmpeg rsx_program_decompiler GSL
- mkdir build
- cd build
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then cmake ..; else cmake .. -DLLVM_DIR=/usr/local/opt/llvm36/lib/llvm-3.6/share/llvm/cmake; fi
@@ -78,7 +78,8 @@ addons:
- llvm-3.6
- llvm-3.6-dev
- libedit-dev
- - g++-4.9
+ - g++-5
+ - gcc-5
- clang-3.6
- libstdc++-4.8-dev
- lib32stdc++6
diff --git a/GSL b/GSL
new file mode 160000
index 0000000000..fc5fce4f4f
--- /dev/null
+++ b/GSL
@@ -0,0 +1 @@
+Subproject commit fc5fce4f4f8d64fbda523d1b0d55115f5ca68774
diff --git a/README.md b/README.md
index d2a317d893..8d5fd1036d 100644
--- a/README.md
+++ b/README.md
@@ -25,7 +25,7 @@ __Windows__
* [Python](https://www.python.org/downloads/) (optional, required only for LLVM build; add to PATH)
__Linux__
-* GCC 4.9.0+ or Clang 3.5.0+
+* GCC 5.1+ or Clang 3.5.0+
* Debian & Ubuntu: `sudo apt-get install libopenal-dev libwxgtk3.0-dev build-essential libglew-dev`
* Arch: `sudo pacman -S glew openal wxgtk cmake llvm`
diff --git a/appveyor.yml b/appveyor.yml
index 4be75cb05f..cd3df67e00 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -14,7 +14,7 @@ branches:
before_build:
# until git for win 2.5 release with commit checkout
- - git submodule update --init ffmpeg asmjit minidx9 rsx_program_decompiler
+ - git submodule update --init ffmpeg asmjit minidx9 rsx_program_decompiler GSL
- 7z x wxWidgets.7z -aos -oC:\rpcs3\wxWidgets > null
- if %configuration%==Release (cmake -G "Visual Studio 14 Win64")
else (7z x llvmlibs.7z -aos -oC:\rpcs3 > null && cmake -G "Visual Studio 14 Win64" -DLLVM_DIR=C:/rpcs3/llvm_build/share/llvm/cmake)
diff --git a/rpcs3-tests/rpcs3-tests.vcxproj b/rpcs3-tests/rpcs3-tests.vcxproj
index fec10f2c07..1e94514aa5 100644
--- a/rpcs3-tests/rpcs3-tests.vcxproj
+++ b/rpcs3-tests/rpcs3-tests.vcxproj
@@ -47,12 +47,12 @@
true
$(SolutionDir)bin\
- .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;.\OpenAL\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx9\Include;..\minidx12\Include
+ .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;.\OpenAL\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx9\Include;..\minidx12\Include;..\GSL\include
true
$(SolutionDir)bin\
- .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;.\OpenAL\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx9\Include;..\minidx12\Include
+ .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;.\OpenAL\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx9\Include;..\minidx12\Include;..\GSL\include
diff --git a/rpcs3/CMakeLists.txt b/rpcs3/CMakeLists.txt
index ef900b489d..616d99268d 100644
--- a/rpcs3/CMakeLists.txt
+++ b/rpcs3/CMakeLists.txt
@@ -112,6 +112,7 @@ ${LLVM_INCLUDE_DIRS}
"${RPCS3_SRC_DIR}/.."
"${RPCS3_SRC_DIR}/../asmjit/src/asmjit"
"${RPCS3_SRC_DIR}/../glm"
+"${RPCS3_SRC_DIR}/../GSL/include"
"${RPCS3_SRC_DIR}/../rsx_program_decompiler/rsx_decompiler"
"${RPCS3_SRC_DIR}/../rsx_program_decompiler/shader_code"
)
diff --git a/rpcs3/stdafx.h b/rpcs3/stdafx.h
index ecf3a3c1a5..088bc9fc2d 100644
--- a/rpcs3/stdafx.h
+++ b/rpcs3/stdafx.h
@@ -46,6 +46,7 @@
#include
#include
#include
+#include
using namespace std::string_literals;
using namespace std::chrono_literals;
diff --git a/rpcs3_default.props b/rpcs3_default.props
index e15c2e89c0..1bad9556b8 100644
--- a/rpcs3_default.props
+++ b/rpcs3_default.props
@@ -6,7 +6,7 @@
true
- .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx12\Include;..\glm
+ .\;..\;..\asmjit\src\asmjit;..\wxWidgets\include\msvc;..\wxWidgets\include;..\ffmpeg\WindowsInclude;..\ffmpeg\Windows\x86_64\Include;$(VC_IncludePath);$(WindowsSDK_IncludePath);..\llvm\include;..\llvm_build\include;$(UniversalCRT_IncludePath);..\minidx12\Include;..\glm;..\GSL\include
Level3
false
true