From 55adeec69c97467c010b110d27373e02803f806f Mon Sep 17 00:00:00 2001 From: Jack Andersen Date: Fri, 10 Jul 2015 13:44:31 -1000 Subject: [PATCH] windows packaging and CMake adjustments --- AthenaNSIS.bmp | Bin 0 -> 30774 bytes CMakeLists.txt | 39 +++++++++++------- extern/lzo/CMakeLists.txt | 12 ++++-- extern/zlib/CMakeLists.txt | 11 +++-- include/Athena/FileReader.hpp | 3 +- include/Athena/IStreamReader.hpp | 2 +- include/Athena/MemoryReader.hpp | 3 +- include/Athena/MemoryWriter.hpp | 3 +- lib/pkgconfig/libAthena.pc => libAthena.pc.in | 4 +- src/aes.cpp | 14 ++++++- 10 files changed, 63 insertions(+), 28 deletions(-) create mode 100644 AthenaNSIS.bmp rename lib/pkgconfig/libAthena.pc => libAthena.pc.in (81%) diff --git a/AthenaNSIS.bmp b/AthenaNSIS.bmp new file mode 100644 index 0000000000000000000000000000000000000000..dd8a73a22c7a5ed7f0e0c36429223f92f169504c GIT binary patch literal 30774 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 +#include #include +#include "Athena/IStreamReader.hpp" namespace Athena { diff --git a/include/Athena/IStreamReader.hpp b/include/Athena/IStreamReader.hpp index a6b27d8..a896d49 100644 --- a/include/Athena/IStreamReader.hpp +++ b/include/Athena/IStreamReader.hpp @@ -226,7 +226,7 @@ public: * \return atVec2f The value at the current address * \throw IOException when address is out of range */ - inline atVec2f readVec3f() + inline atVec2f readVec2f() { atVec2f val; readUBytesToBuf(&val, 8); diff --git a/include/Athena/MemoryReader.hpp b/include/Athena/MemoryReader.hpp index 3089d74..1fdf46e 100644 --- a/include/Athena/MemoryReader.hpp +++ b/include/Athena/MemoryReader.hpp @@ -1,9 +1,10 @@ #ifndef MEMORYREADER_HPP #define MEMORYREADER_HPP -#include "Athena/IStreamReader.hpp" #include +#include #include +#include "Athena/IStreamReader.hpp" namespace Athena { diff --git a/include/Athena/MemoryWriter.hpp b/include/Athena/MemoryWriter.hpp index 62d6f96..836341c 100644 --- a/include/Athena/MemoryWriter.hpp +++ b/include/Athena/MemoryWriter.hpp @@ -1,9 +1,10 @@ #ifndef MEMORYWRITER_HPP #define MEMORYWRITER_HPP -#include "Athena/IStreamWriter.hpp" #include +#include #include +#include "Athena/IStreamWriter.hpp" namespace Athena { diff --git a/lib/pkgconfig/libAthena.pc b/libAthena.pc.in similarity index 81% rename from lib/pkgconfig/libAthena.pc rename to libAthena.pc.in index b9d8ea2..ec5d727 100644 --- a/lib/pkgconfig/libAthena.pc +++ b/libAthena.pc.in @@ -1,10 +1,10 @@ -prefix=/usr +prefix=@CMAKE_INSTALL_PREFIX@ includedir=${prefix}/include libdir=${prefix}/lib Name: libAthena Description: Basic cross platform IO library -Version: 2.0.0 +Version: @ATHENA_VERSION@ Cflags: -I${includedir}/Athena -std=c++11 Libs: -L${libdir} -lAthenaCore -lAthenaSakura -lAthenaZelda -lAthenaWiiSave Requires: zlib diff --git a/src/aes.cpp b/src/aes.cpp index 8942be5..e7426ed 100644 --- a/src/aes.cpp +++ b/src/aes.cpp @@ -1,7 +1,11 @@ #include "aes.hpp" #include #include +#if _WIN32 +#include +#else #include +#endif namespace Athena { @@ -478,7 +482,7 @@ void SoftwareAES::encrypt(const uint8_t* iv, const uint8_t* inbuf, uint8_t* outb } } -#if __AES__ +#if __AES__ || _MSC_VER >= 1800 #include @@ -598,12 +602,18 @@ public: static int HAS_AES_NI = -1; std::unique_ptr NewAES() { -#if __AES__ +#if __AES__ || _MSC_VER >= 1800 if (HAS_AES_NI == -1) { +#if _MSC_VER + int info[4]; + __cpuid(info, 1); + HAS_AES_NI = ((info[2] & 0x2000000) != 0); +#else unsigned int a,b,c,d; __cpuid(1, a,b,c,d); HAS_AES_NI = ((c & 0x2000000) != 0); +#endif } if (HAS_AES_NI) return std::unique_ptr(new NiAES);