Linux、macOSを試してみる。
[Qt] Zipファイルを扱う(Windows,VS2017)のときと同じようにQtからお手軽にZIPファイルを扱えるQuaZIPの紹介 - 理ろぐのページを参考に試してみた。
Linux
Linuxは、Ubuntu 18.04.2 LTSを使用した。
quazip-0.7.6フォルダがあるディレクトリで
mkdir build-quazip-linux-x64
cd build-quazip-linux-x64
を実行する。
そしてビルド&インストール。
qmake -r ../quazip-0.7.6/quazip/quazip.pro "PREFIX=../../quazip/linux-x64" LIBS+=-lz
make all
make install
macOS
ターミナルを起動して、Qtのqmakeのあるところにパス(うちは~/Qt/5.12.3/clang_64/bin)を通す。
quazip-0.7.6フォルダがあるディレクトリで
mkdir build-quazip-macos-x64
cd build-quazip-macos-x64
を実行する。
そしてビルド&インストール。
qmake -r ../quazip-0.7.6/quazip/quazip.pro "PREFIX=../../quazip/macos-x64" LIBS+=-lz
make all
make install
quazipフォルダができ、そこにシェアドライブラリやヘッダなんかがインストールされる。
次に参考にしたページにあった"quazip.pri"を見よう見まねでこんな感じにした。
# for quazip
QUAZIP_DIR = $${PWD}/../quazip
mingw:{
equals(QT_ARCH, "x86_64"):{
# 64bit
QUAZIP_DIR = $$QUAZIP_DIR/mingw-x64
}else{
# 32bit
QUAZIP_DIR = $$QUAZIP_DIR/mingw-x86
}
} else: win32:{
equals(QT_ARCH, "x86_64"):{
# 64bit
QUAZIP_DIR = $$QUAZIP_DIR/x64
}else{
# 32bit
QUAZIP_DIR = $$QUAZIP_DIR/x86
}
} else: macos: {
QUAZIP_DIR = $$QUAZIP_DIR/macos-x64
} else: unix: {
equals(QT_ARCH, "x86_64"):{
# 64bit
QUAZIP_DIR = $$QUAZIP_DIR/linux-x64
}else{
# 32bit
QUAZIP_DIR = $$QUAZIP_DIR/linux-x86
}
}
INCLUDEPATH += $$QUAZIP_DIR/include/quazip
CONFIG(debug,debug|release){
mingw: {
LIBS += -L$$QUAZIP_DIR/bin/ -lquazipd
} else:win32:{
LIBS += $$QUAZIP_DIR/bin/quazipd.lib
}
}else{
mingw: {
LIBS += -L$$QUAZIP_DIR/bin/ -lquazip
} else:win32: {
LIBS += $$QUAZIP_DIR/bin/quazip.lib
}
}
unix: LIBS += -L$$QUAZIP_DIR/lib/ -lquazip
# for zlib
win32: INCLUDEPATH += $$[QT_INSTALL_PREFIX]/include/QtZlib
# copy library file
win32:{
CONFIG(debug,debug|release){
QUAZIP_LIB_PATH=$$QUAZIP_DIR/bin/quazipd.dll
APP_BUILD_DIR=$$shadowed($${PWD})/debug
}else{
win32:QUAZIP_LIB_PATH=$$QUAZIP_DIR/bin/quazip.dll
APP_BUILD_DIR=$$shadowed($${PWD})/release
}
QUAZIP_LIB_PATH ~= s|/|\|gi
APP_BUILD_DIR ~= s|/|\|gi
}else:macos:{
QUAZIP_LIB_PATH=$$QUAZIP_DIR/lib/libquazip.*
APP_BUILD_DIR=$$shadowed($${PWD})
}else{
QUAZIP_LIB_PATH=$$QUAZIP_DIR/lib/libquazip.so.*
APP_BUILD_DIR=$$shadowed($${PWD})
}
copyquazip.commands = $(COPY_DIR) $$QUAZIP_LIB_PATH $$APP_BUILD_DIR
QMAKE_EXTRA_TARGETS += copyquazip