summaryrefslogtreecommitdiffstats
path: root/installerfw.pri
diff options
context:
space:
mode:
Diffstat (limited to 'installerfw.pri')
-rw-r--r--installerfw.pri102
1 files changed, 89 insertions, 13 deletions
diff --git a/installerfw.pri b/installerfw.pri
index e38bb5108..e2ae12f11 100644
--- a/installerfw.pri
+++ b/installerfw.pri
@@ -3,13 +3,14 @@
}
IFW_PRI_INCLUDED = 1
-IFW_VERSION_STR = 4.1.0
-IFW_VERSION = 0x040100
-IFW_VERSION_WIN32 = 4,1,0,0
+IFW_VERSION_STR = 5.0.0
+IFW_VERSION = 0x050000
+IFW_VERSION_WIN32 = 5,0,0,0
IFW_VERSION_STR_WIN32 = $$IFW_VERSION_STR\0
IFW_REPOSITORY_FORMAT_VERSION = 1.0.0
+IFW_CACHE_FORMAT_VERSION = 1.2.0
IFW_NEWLINE = $$escape_expand(\\n\\t)
isEmpty(IFW_DISABLE_TRANSLATIONS): IFW_DISABLE_TRANSLATIONS = $$(IFW_DISABLE_TRANSLATIONS)
@@ -17,6 +18,17 @@ isEqual(IFW_DISABLE_TRANSLATIONS, 1) {
DEFINES += IFW_DISABLE_TRANSLATIONS
}
+# Still default to LZMA SDK if nothing is defined by user
+!contains(CONFIG, libarchive|lzmasdk): CONFIG += lzmasdk
+
+CONFIG(lzmasdk) {
+ LZMA_WARNING_MSG = "LZMA SDK as an archive handler in IFW is deprecated. Consider" \
+ "switching to libarchive by appending 'libarchive' to your 'CONFIG' variable." \
+ "This requires linking against additional external libraries, see the" \
+ "'INSTALL' file for more details."
+ !build_pass:warning($$LZMA_WARNING_MSG)
+}
+
defineTest(minQtVersion) {
maj = $$1
min = $$2
@@ -86,16 +98,32 @@ win32 {
LCONVERT = $${LCONVERT}.exe
QMAKE_BINARY = $${QMAKE_BINARY}.exe
}
+
+#6.6.0 rcc has been moved to libexec in linux/mac and the RCC variable no longer
+#points to correct location
+!exists($$RCC) {
+ RCC = $$toNativeSeparators($$cleanPath($$[QT_INSTALL_LIBEXECS]/rcc))
+}
+!exists($$RCC) {
+ warning("Resource compiler '$$RCC' not found.")
+}
win32-g++*:QMAKE_CXXFLAGS += -Wno-attributes
macx:QMAKE_CXXFLAGS += -fvisibility=hidden -fvisibility-inlines-hidden
INCLUDEPATH += \
- $$IFW_SOURCE_TREE/src/libs/7zip \
$$IFW_SOURCE_TREE/src/libs/kdtools \
$$IFW_SOURCE_TREE/src/libs/ifwtools \
$$IFW_SOURCE_TREE/src/libs/installer
-win32:INCLUDEPATH += $$IFW_SOURCE_TREE/src/libs/7zip/win/CPP
-unix:INCLUDEPATH += $$IFW_SOURCE_TREE/src/libs/7zip/unix/CPP
+
+CONFIG(libarchive): INCLUDEPATH += $$IFW_SOURCE_TREE/src/libs/3rdparty/libarchive
+
+CONFIG(lzmasdk) {
+ INCLUDEPATH += $$IFW_SOURCE_TREE/src/libs/3rdparty/7zip
+ win32:INCLUDEPATH += $$IFW_SOURCE_TREE/src/libs/3rdparty/7zip/win/CPP \
+ $$IFW_SOURCE_TREE/src/libs/3rdparty/7zip/win/C
+ unix:INCLUDEPATH += $$IFW_SOURCE_TREE/src/libs/3rdparty/7zip/unix/CPP \
+ $$IFW_SOURCE_TREE/src/libs/3rdparty/7zip/unix/C
+}
LIBS += -L$$IFW_LIB_PATH
# The order is important. The linker needs to parse archives in reversed dependency order.
@@ -118,10 +146,17 @@ macx:LIBS += -framework Carbon -framework Security
QT += uitools core-private
CONFIG(static, static|shared) {
- win32:QT += winextras
+ win32:lessThan(QT_MAJOR_VERSION, 6):QT += winextras
QT += concurrent network qml xml
+ greaterThan(QT_MAJOR_VERSION, 5):QT += core5compat
}
-CONFIG += depend_includepath no_private_qt_headers_warning c++11
+CONFIG += depend_includepath no_private_qt_headers_warning
+versionAtLeast(QT_MAJOR_VERSION, 6) {
+ CONFIG+=c++17
+} else {
+ CONFIG+=c++11
+}
+
win32:CONFIG += console
exists(".git") {
@@ -139,13 +174,54 @@ DEFINES += NOMINMAX QT_NO_CAST_FROM_ASCII QT_STRICT_ITERATORS QT_USE_QSTRINGBUIL
IFW_VERSION=$$IFW_VERSION \
IFW_VERSION_STR_WIN32=$$IFW_VERSION_STR_WIN32 \
IFW_VERSION_WIN32=$$IFW_VERSION_WIN32
-DEFINES += IFW_REPOSITORY_FORMAT_VERSION=$$IFW_REPOSITORY_FORMAT_VERSION
+DEFINES += IFW_REPOSITORY_FORMAT_VERSION=$$IFW_REPOSITORY_FORMAT_VERSION \
+ IFW_CACHE_FORMAT_VERSION=$$IFW_CACHE_FORMAT_VERSION
-LIBS += -l7z
win32-g++*: LIBS += -lmpr -luuid
equals(TEMPLATE, app) {
- msvc:POST_TARGETDEPS += $$IFW_LIB_PATH/installer.lib $$IFW_LIB_PATH/7z.lib
- win32-g++*:POST_TARGETDEPS += $$IFW_LIB_PATH/libinstaller.a $$IFW_LIB_PATH/lib7z.a
- unix:POST_TARGETDEPS += $$IFW_LIB_PATH/libinstaller.a $$IFW_LIB_PATH/lib7z.a
+ msvc:POST_TARGETDEPS += $$IFW_LIB_PATH/installer.lib
+ win32-g++*:POST_TARGETDEPS += $$IFW_LIB_PATH/libinstaller.a
+ unix:POST_TARGETDEPS += $$IFW_LIB_PATH/libinstaller.a
+}
+
+CONFIG(libarchive):equals(TEMPLATE, app) {
+ LIBS += -llibarchive
+ !isEmpty(IFW_ZLIB_LIBRARY) {
+ LIBS += $$IFW_ZLIB_LIBRARY
+ } else:!contains(QT_MODULES, zlib) {
+ unix:LIBS += -lz
+ win32:LIBS += -lzlib
+ }
+ !isEmpty(IFW_BZIP2_LIBRARY) {
+ LIBS += $$IFW_BZIP2_LIBRARY
+ } else {
+ unix:LIBS += -lbz2
+ win32:LIBS += -llibbz2
+ }
+ !isEmpty(IFW_LZMA_LIBRARY) {
+ LIBS += $$IFW_LZMA_LIBRARY
+ } else {
+ unix:LIBS += -llzma
+ win32:LIBS += -lliblzma
+ }
+ macos {
+ !isEmpty(IFW_ICONV_LIBRARY) {
+ LIBS += $$IFW_ICONV_LIBRARY
+ } else {
+ LIBS += -liconv
+ }
+ }
+
+ msvc:POST_TARGETDEPS += $$IFW_LIB_PATH/libarchive.lib
+ win32-g++*:POST_TARGETDEPS += $$IFW_LIB_PATH/liblibarchive.a
+ unix:POST_TARGETDEPS += $$IFW_LIB_PATH/liblibarchive.a
+}
+
+CONFIG(lzmasdk):equals(TEMPLATE, app) {
+ LIBS += -l7z
+
+ msvc:POST_TARGETDEPS += $$IFW_LIB_PATH/7z.lib
+ win32-g++*:POST_TARGETDEPS += $$IFW_LIB_PATH/lib7z.a
+ unix:POST_TARGETDEPS += $$IFW_LIB_PATH/lib7z.a
}