diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b1cd841c3..e7a350667c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -403,8 +403,10 @@ else() endif() find_package(Snappy) -if(NOT SNAPPY_FOUND) - add_subdirectory(ext/snappy) +if(SNAPPY_FOUND) + add_definitions(-DSHARED_SNAPPY) +else() + add_subdirectory(ext/snappy) endif() add_subdirectory(ext/udis86) @@ -583,6 +585,7 @@ endif() find_package(ZLIB) if(ZLIB_FOUND) include_directories(${ZLIB_INCLUDE_DIR}) + add_definitions(-DSHARED_ZLIB) else() add_library(zlib STATIC ext/zlib/adler32.c @@ -638,7 +641,9 @@ endif() find_package(LibZip) -if(NOT LIBZIP_FOUND) +if(LIBZIP_FOUND) + add_definitions(-DSHARED_LIBZIP) +else() add_library(libzip STATIC ext/native/ext/libzip/zip.h ext/native/ext/libzip/mkstemp.c diff --git a/Common/ChunkFile.h b/Common/ChunkFile.h index 6544567eb4..2ea39c6e48 100644 --- a/Common/ChunkFile.h +++ b/Common/ChunkFile.h @@ -40,7 +40,11 @@ #include "Common.h" #include "FileUtil.h" +#ifdef SHARED_SNAPPY +#include +#else #include "../ext/snappy/snappy-c.h" +#endif #if defined(MACGNUSTD) namespace std { diff --git a/Core/HLE/sceAdler.cpp b/Core/HLE/sceAdler.cpp index 7bb4794b0f..2379a17cf0 100644 --- a/Core/HLE/sceAdler.cpp +++ b/Core/HLE/sceAdler.cpp @@ -15,7 +15,11 @@ // Official git repository and contact information can be found at // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. +#ifdef SHARED_ZLIB +#include +#else #include "../ext/zlib/zlib.h" +#endif #include "sceAdler.h" #include "Common/Log.h" diff --git a/Core/Util/GameManager.cpp b/Core/Util/GameManager.cpp index d726e2343b..f0e3904063 100644 --- a/Core/Util/GameManager.cpp +++ b/Core/Util/GameManager.cpp @@ -20,7 +20,11 @@ #include #include "file/file_util.h" +#ifdef SHARED_LIBZIP +#include +#else #include "ext/libzip/zip.h" +#endif #include "thread/thread.h" #include "util/text/utf8.h" diff --git a/Qt/Core.pro b/Qt/Core.pro index d7c45ad6cc..f7818145a3 100644 --- a/Qt/Core.pro +++ b/Qt/Core.pro @@ -6,7 +6,9 @@ CONFIG += staticlib include(Settings.pri) INCLUDEPATH += $$P/ $$P/ext/native $$P/Core/MIPS $$P/ext/xbrz -!contains(DEFINES, USING_GLES2): INCLUDEPATH += $$P/ext/native/ext/glew +!exists( /usr/include/GL/glew.h ) { + !contains(DEFINES, USING_GLES2): INCLUDEPATH += $$P/ext/native/ext/glew +} arm { SOURCES += $$P/Core/MIPS/ARM/*.cpp #CoreARM diff --git a/Qt/GPU.pro b/Qt/GPU.pro index cc6af94dcc..a68107c009 100644 --- a/Qt/GPU.pro +++ b/Qt/GPU.pro @@ -7,7 +7,9 @@ CONFIG += staticlib include(Settings.pri) INCLUDEPATH += $$P/ $$P/ext/native -!contains(DEFINES, USING_GLES2): INCLUDEPATH += $$P/ext/native/ext/glew +!exists( /usr/include/GL/glew.h ) { + !contains(DEFINES, USING_GLES2): INCLUDEPATH += $$P/ext/native/ext/glew +} win32 { SOURCES += $$P/Windows/OpenGLBase.cpp diff --git a/Qt/Native.pro b/Qt/Native.pro index 9b853990fa..bbb4995846 100644 --- a/Qt/Native.pro +++ b/Qt/Native.pro @@ -11,10 +11,12 @@ linux-g++:system($$QMAKE_CXX --version | grep "4.6."): DEFINES+=override INCLUDEPATH += $$P/ext/native -!contains(DEFINES,USING_GLES2) { - SOURCES += $$P/ext/native/ext/glew/glew.c - HEADERS += $$P/ext/native/ext/glew/GL/*.h - INCLUDEPATH += $$P/ext/native/ext/glew +!exists( /usr/include/GL/glew.h ) { + !contains(DEFINES,USING_GLES2) { + SOURCES += $$P/ext/native/ext/glew/glew.c + HEADERS += $$P/ext/native/ext/glew/GL/*.h + INCLUDEPATH += $$P/ext/native/ext/glew + } } # RG_ETC1 @@ -41,10 +43,11 @@ HEADERS += $$P/ext/native/ext/stb_vorbis/stb_vorbis.h INCLUDEPATH += $$P/ext/native/ext/stb_vorbis # Snappy - -SOURCES += $$P/ext/snappy/*.cpp -HEADERS += $$P/ext/snappy/*.h -INCLUDEPATH += $$P/ext/snappy +!exists( /usr/include/snappy-c.h ) { + SOURCES += $$P/ext/snappy/*.cpp + HEADERS += $$P/ext/snappy/*.h + INCLUDEPATH += $$P/ext/snappy +} # udis86 @@ -67,8 +70,10 @@ win32|contains(QT_CONFIG, no-zlib) { } # Libzip -SOURCES += $$P/ext/native/ext/libzip/*.c -HEADERS += $$P/ext/native/ext/libzip/*.h +!exists( /usr/include/zip.h ) { + SOURCES += $$P/ext/native/ext/libzip/*.c + HEADERS += $$P/ext/native/ext/libzip/*.h +} # Native diff --git a/Qt/PPSSPP.pro b/Qt/PPSSPP.pro index 2f0d0cf088..32bb2ffab0 100644 --- a/Qt/PPSSPP.pro +++ b/Qt/PPSSPP.pro @@ -49,6 +49,18 @@ macx|equals(PLATFORM_NAME, "linux") { } } +exists( /usr/include/GL/glew.h ) { + LIBS += -lGLEW +} + +exists( /usr/include/snappy-c.h ) { + LIBS += -lsnappy +} + +exists( /usr/include/zip.h ) { + LIBS += -lzip +} + unix:contains(QT_CONFIG, system-zlib) { LIBS += -lz } @@ -77,7 +89,11 @@ SOURCES += $$P/UI/*.cpp \ arm:android: SOURCES += $$P/android/jni/ArmEmitterTest.cpp HEADERS += $$P/UI/*.h -INCLUDEPATH += $$P $$P/Common $$P/ext/native $$P/ext/native/ext $$P/ext/native/ext/glew +exists( /usr/include/GL/glew.h ) { + INCLUDEPATH += $$P $$P/Common $$P/ext/native $$P/ext/native/ext +} else { + INCLUDEPATH += $$P $$P/Common $$P/ext/native $$P/ext/native/ext $$P/ext/native/ext/glew +} mobile_platform { !no_assets: RESOURCES += $$P/Qt/assets.qrc diff --git a/Qt/Settings.pri b/Qt/Settings.pri index 8b67d4c576..63cd628992 100644 --- a/Qt/Settings.pri +++ b/Qt/Settings.pri @@ -1,6 +1,18 @@ VERSION = 1.0.1.0 DEFINES += USING_QT_UI USE_FFMPEG +exists( /usr/include/snappy-c.h ) { + DEFINES += SHARED_SNAPPY +} + +unix:contains(QT_CONFIG, system-zlib) { + DEFINES += SHARED_ZLIB +} + +exists( /usr/include/zip.h ) { + DEFINES += SHARED_LIBZIP +} + # Global specific win32:CONFIG(release, debug|release): CONFIG_DIR = $$join(OUT_PWD,,,/release) else:win32:CONFIG(debug, debug|release): CONFIG_DIR = $$join(OUT_PWD,,,/debug)