mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 11:28:07 +00:00
Add OpenH264 support
Update Cisco codec version First Rework on download/extract codec file Ensure to stop download context before sending end signals Replace qt.conf with qt.conf.in to have custom setting that depends of packaging or not
This commit is contained in:
parent
ce5a1091d3
commit
f15872768d
10 changed files with 90 additions and 61 deletions
|
|
@ -17,12 +17,15 @@
|
|||
- TelKeypad supports A, B, C and D keys.
|
||||
- TelKeypad supports keyboard.
|
||||
- OpenH264 codec can be download in the application.
|
||||
- Use native BZip2 instead of Minizip to extract codec on Mac and Linux
|
||||
- New icons
|
||||
- Disable screensaver on fullscreen video call.
|
||||
- Add caller/callee on saved files.
|
||||
- Supports totally french, english, portuguese, russian, turkish, ukrainian.
|
||||
- App Nap avoiding for MacOs
|
||||
- Simplify building process
|
||||
- Enable High DPI Displays support
|
||||
- NSIS (Windows), DMG (MacOsX) and Appimage (Linux) deployments
|
||||
|
||||
### Fixes
|
||||
|
||||
|
|
@ -31,6 +34,8 @@
|
|||
- Do not use `:` separator when a file is saved on Windows.
|
||||
- Avoid mark as read on selected chat room if window is not active.
|
||||
- Search box in main page will not reset its text when clicking on it
|
||||
- Crash on account authentifications
|
||||
- Apple permissions
|
||||
|
||||
### Removed
|
||||
|
||||
|
|
|
|||
|
|
@ -86,6 +86,8 @@ option(ENABLE_TOOLS "Enable tools of SDK" NO)
|
|||
option(ENABLE_STRICT "Build with strict compilator flags e.g. -Wall -Werror" NO)
|
||||
option(ENABLE_FFMPEG "Build mediastreamer2 with ffmpeg video support." YES)
|
||||
option(ENABLE_BUILD_VERBOSE "Enable the build generation to be more verbose" NO)
|
||||
option(ENABLE_OPENH264 "Enable the use of OpenH264 codec" YES)
|
||||
option(ENABLE_NON_FREE_CODECS "Enable the use of non free codecs" YES)
|
||||
|
||||
if(WIN32 OR APPLE)
|
||||
else()
|
||||
|
|
@ -103,7 +105,9 @@ list(APPEND APP_OPTIONS "-DENABLE_TOOLS=${ENABLE_TOOLS}")
|
|||
list(APPEND APP_OPTIONS "-DENABLE_STRICT=${ENABLE_STRICT}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_FFMPEG=${ENABLE_FFMPEG}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_BUILD_VERBOSE=${ENABLE_BUILD_VERBOSE}")
|
||||
|
||||
list(APPEND APP_OPTIONS "-DENABLE_OPENH264=${ENABLE_OPENH264}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_NON_FREE_CODECS=${ENABLE_NON_FREE_CODECS}")
|
||||
|
||||
if(ENABLE_V4L)
|
||||
list(APPEND APP_OPTIONS "-DENABLE_V4L=${ENABLE_V4L}")
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -49,8 +49,8 @@ For Desktop : you will need `Qt5` (_5.9 or newer_). `C++11` support is required!
|
|||
|
||||
2. You have to set the environment variable `Qt5_DIR` to point to the path containing the cmake folders of Qt5, and the `PATH` to the Qt5 `bin`. Example:
|
||||
|
||||
Qt5_DIR="~/Qt/5.9/gcc_64/lib/cmake"
|
||||
PATH="~/Qt/5.9/gcc_64/bin/:$PATH"
|
||||
Qt5_DIR="~/Qt/5.12.5/gcc_64/lib/cmake"
|
||||
PATH="~/Qt/5.12.5/gcc_64/bin/:$PATH"
|
||||
|
||||
Note: If you have `qtchooser` set in your `PATH`, the best use is :
|
||||
|
||||
|
|
@ -132,11 +132,6 @@ Dependencies from 4.1 version of Desktop:
|
|||
apt-get install libqt53dcore5:amd64 libqt53dextras5:amd64 libqt53dinput5:amd64 libqt53dlogic5:amd64 libqt53dquick5:amd64 libqt53dquickextras5:amd64 libqt53dquickinput5:amd64 libqt53dquickrender5:amd64 libqt53drender5:amd64 libqt5concurrent5:amd64 libqt5core5a:amd64 libqt5dbus5:amd64 libqt5designer5:amd64 libqt5designercomponents5:amd64 libqt5gui5:amd64 libqt5help5:amd64 libqt5multimedia5:amd64 libqt5multimedia5-plugins:amd64 libqt5multimediawidgets5:amd64 libqt5network5:amd64 libqt5opengl5:amd64 libqt5opengl5-dev:amd64 libqt5positioning5:amd64 libqt5printsupport5:amd64 libqt5qml5:amd64 libqt5quick5:amd64 libqt5quickcontrols2-5:amd64 libqt5quickparticles5:amd64 libqt5quicktemplates2-5:amd64 libqt5quicktest5:amd64 libqt5quickwidgets5:amd64 libqt5script5:amd64 libqt5scripttools5:amd64 libqt5sensors5:amd64 libqt5serialport5:amd64 libqt5sql5:amd64 libqt5sql5-sqlite:amd64 libqt5svg5:amd64 libqt5svg5-dev:amd64 libqt5test5:amd64 libqt5webchannel5:amd64 libqt5webengine-data libqt5webenginecore5:amd64 libqt5webenginewidgets5:amd64 libqt5webkit5:amd64 libqt5widgets5:amd64 libqt5x11extras5:amd64 libqt5xml5:amd64 libqt5xmlpatterns5:amd64 qt5-default:amd64 qt5-doc qt5-gtk-platformtheme:amd64 qt5-qmake:amd64 qt5-qmltooling-plugins:amd64
|
||||
|
||||
|
||||
## Known bugs and issues
|
||||
|
||||
* __4K (High DPI Displays)__ If you encounter troubles with high DPI displays on Windows, please to see this link: https://bugreports.qt.io/browse/QTBUG-53022
|
||||
|
||||
|
||||
## Updating your build
|
||||
|
||||
You need to update the project:
|
||||
|
|
|
|||
|
|
@ -1,6 +0,0 @@
|
|||
[Platforms]
|
||||
WindowsArguments = dpiawareness=1
|
||||
[Paths]
|
||||
Plugins = PlugIns
|
||||
Imports = Resources/qml
|
||||
Qml2Imports = Resources/qml
|
||||
3
linphone-app/assets/qt.conf.in
Normal file
3
linphone-app/assets/qt.conf.in
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[Platforms]
|
||||
WindowsArguments = dpiawareness=1
|
||||
@APP_QT_CONF_PATH@
|
||||
|
|
@ -103,15 +103,21 @@ if (WIN32)
|
|||
if (NOT DEPLOYQT_PROGRAM)
|
||||
message(FATAL_ERROR "Could not find the windeployqt program. Make sure it is in the PATH.")
|
||||
endif ()
|
||||
file(GLOB LIB_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/*.dll")
|
||||
file(GLOB LIB_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/*.dll")
|
||||
install(FILES ${LIB_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/")
|
||||
file(GLOB LIB_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/*.dll")
|
||||
if( ENABLE_OPENH264)# Remove openH264 lib from the installation. this codec will be download by user
|
||||
foreach(item ${LIB_FILES})
|
||||
get_filename_component(LIBRARY_FILENAME ${item} NAME)
|
||||
if("${LIBRARY_FILENAME}" MATCHES "^openh264.*.dll$")
|
||||
list(REMOVE_ITEM LIB_FILES ${item})
|
||||
endif()
|
||||
endforeach(item)
|
||||
endif()
|
||||
install(FILES ${LIB_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/")
|
||||
file(GLOB EXE_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/*.exe")
|
||||
install(FILES ${EXE_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/")
|
||||
if (EXISTS "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer")
|
||||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer" DESTINATION "${CMAKE_INSTALL_LIBDIR}" USE_SOURCE_PERMISSIONS)
|
||||
endif ()
|
||||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer" DESTINATION "${CMAKE_INSTALL_LIBDIR}" USE_SOURCE_PERMISSIONS)
|
||||
file(GLOB GRAMMAR_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Belr/grammars/*")
|
||||
install(FILES ${GRAMMAR_FILES} DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/" )
|
||||
install(FILES "${MINIZIP_PREFIX}/${CMAKE_INSTALL_BINDIR}/minizip.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
|
|
@ -119,7 +125,9 @@ if (WIN32)
|
|||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS)
|
||||
install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Linphone/rootca.pem" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}/")
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/linphonerc-factory" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}")
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/qt.conf" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
set(APP_QT_CONF_PATH "")
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../assets/qt.conf.in" "${CMAKE_CURRENT_BINARY_DIR}/../../qt.conf" @ONLY)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../qt.conf" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/assistant" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}" USE_SOURCE_PERMISSIONS)
|
||||
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.exe" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install( CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/${EXECUTABLE_NAME}.exe\" -qmldir=${LINPHONE_QML_DIR} --compiler-runtime)")# -verbose=2)" COMPONENT binary_application)
|
||||
|
|
@ -132,24 +140,34 @@ elseif (APPLE)
|
|||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/Info.plist.in" "${CMAKE_CURRENT_BINARY_DIR}/../../Info.plist" @ONLY)
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/entitlements.xml.in" "${CMAKE_CURRENT_BINARY_DIR}/../../entitlements.xml" @ONLY)
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/linphone.icns" "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.icns" COPYONLY)
|
||||
if(ENABLE_APP_PACKAGING)
|
||||
set(APP_QT_CONF_PATH "[Paths]\nPlugins = PlugIns\nImports = Resources/qml\nQml2Imports = Resources/qml")
|
||||
else()
|
||||
set(APP_QT_CONF_PATH "")
|
||||
endif()
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../assets/qt.conf.in" "${CMAKE_CURRENT_BINARY_DIR}/../../qt.conf" @ONLY)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../qt.conf" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../Info.plist" DESTINATION "${APPLICATION_NAME}.app/Contents")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.icns" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources")
|
||||
install( CODE "execute_process(COMMAND rsync -a \"${LINPHONE_OUTPUT_DIR}/Frameworks\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/\" )") #Use rsync to bypass symlinks override issues of frameworks
|
||||
install(PROGRAMS "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}" DESTINATION "${APPLICATION_NAME}.app/Contents/MacOS")
|
||||
file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/lib*.dylib")
|
||||
foreach (LIBRARY ${SHARED_LIBRARIES})
|
||||
install(FILES "${LIBRARY}" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks")
|
||||
endforeach ()
|
||||
if (EXISTS "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer")
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_LIBDIR}" USE_SOURCE_PERMISSIONS)
|
||||
endif ()
|
||||
if( ENABLE_OPENH264 )# Remove openH264 lib from the installation. this codec will be download by user
|
||||
foreach(item ${SHARED_LIBRARIES})
|
||||
get_filename_component(LIBRARY_FILENAME ${item} NAME)
|
||||
if("${LIBRARY_FILENAME}" MATCHES "^libopenh264.*.dylib$")
|
||||
list(REMOVE_ITEM SHARED_LIBRARIES ${item})
|
||||
endif()
|
||||
endforeach(item)
|
||||
endif()
|
||||
install(FILES ${SHARED_LIBRARIES} DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks")
|
||||
file(GLOB GRAMMAR_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Belr/grammars/*")
|
||||
install(FILES ${GRAMMAR_FILES} DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/")
|
||||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS OPTIONAL)
|
||||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS)
|
||||
install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Linphone/rootca.pem" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}")
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/linphonerc-factory" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}")
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/qt.conf" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/")
|
||||
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/assistant" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}" USE_SOURCE_PERMISSIONS)
|
||||
file(GLOB SHARED_LIBRARIES "${CMAKE_CURRENT_BINARY_DIR}/../../${APPLICATION_NAME}.app/Contents/Frameworks/lib*.dylib")
|
||||
|
||||
|
|
@ -184,26 +202,45 @@ else()# Not Windows and Apple
|
|||
execute_process(COMMAND install_name_tool -addrpath "$ORIGIN/../lib64" "${LIBRARY}")
|
||||
endforeach ()
|
||||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/" DESTINATION "${CMAKE_INSTALL_BINDIR}" USE_SOURCE_PERMISSIONS)
|
||||
#Just in case. This is useless because we have to use CMAKE_INSTALL_LIBDIR
|
||||
#Just in case. This is useless because we have to use CMAKE_INSTALL_LIBDIR
|
||||
if( EXISTS "${LINPHONE_OUTPUT_DIR}/lib/")
|
||||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/lib/" DESTINATION "lib" USE_SOURCE_PERMISSIONS)
|
||||
file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/lib/*.so*")
|
||||
if( ENABLE_OPENH264 )# Remove openH264 lib from the installation. this codec will be download by user
|
||||
foreach(item ${SHARED_LIBRARIES})
|
||||
get_filename_component(LIBRARY_FILENAME ${item} NAME)
|
||||
if("${LIBRARY_FILENAME}" MATCHES "^libopenh264.*$")
|
||||
list(REMOVE_ITEM SHARED_LIBRARIES ${item})
|
||||
endif()
|
||||
endforeach(item)
|
||||
endif()
|
||||
install(FILES ${SHARED_LIBRARIES} DESTINATION "lib")
|
||||
endif()
|
||||
if( EXISTS "${LINPHONE_OUTPUT_DIR}/lib64/")
|
||||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/lib64/" DESTINATION "lib64" USE_SOURCE_PERMISSIONS)
|
||||
file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/lib64/*.so*")
|
||||
if( ENABLE_OPENH264 )# Remove openH264 lib from the installation. this codec will be download by user
|
||||
foreach(item ${SHARED_LIBRARIES})
|
||||
get_filename_component(LIBRARY_FILENAME ${item} NAME)
|
||||
if("${LIBRARY_FILENAME}" MATCHES "^libopenh264.*$")
|
||||
list(REMOVE_ITEM SHARED_LIBRARIES ${item})
|
||||
endif()
|
||||
endforeach(item)
|
||||
endif()
|
||||
install(FILES ${SHARED_LIBRARIES} DESTINATION "lib64")
|
||||
endif()
|
||||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS)
|
||||
if(ENABLE_BUILD_VERBOSE)
|
||||
message("INSTALLATION : ${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/" )
|
||||
endif()
|
||||
if (EXISTS "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer")
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer" DESTINATION "${CMAKE_INSTALL_LIBDIR}" USE_SOURCE_PERMISSIONS)
|
||||
endif ()
|
||||
# Install desktop/icon files.
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../assets/linphone.desktop.cmake" "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.desktop" @ONLY)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.desktop" DESTINATION "${CMAKE_INSTALL_DATADIR}/applications")
|
||||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer" DESTINATION "${CMAKE_INSTALL_LIBDIR}" USE_SOURCE_PERMISSIONS)
|
||||
# Install desktop/icon files.
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../assets/linphone.desktop.cmake" "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.desktop" @ONLY)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.desktop" DESTINATION "${CMAKE_INSTALL_DATADIR}/applications")
|
||||
set(APP_QT_CONF_PATH "")
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../assets/qt.conf.in" "${CMAKE_CURRENT_BINARY_DIR}/../../qt.conf" @ONLY)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../qt.conf" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/images/linphone_logo.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/scalable/apps/" RENAME "${EXECUTABLE_NAME}.svg")
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/linphonerc-factory" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}")
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/qt.conf" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/assistant" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}" USE_SOURCE_PERMISSIONS)
|
||||
set(ICON_DIRS 16x16 22x22 24x24 32x32 64x64 128x128 256x256)
|
||||
foreach (DIR ${ICON_DIRS})
|
||||
|
|
|
|||
|
|
@ -56,7 +56,7 @@ void SingleApplicationPrivate::startSecondary () {
|
|||
}
|
||||
|
||||
void SingleApplicationPrivate::terminate (int signum) {
|
||||
Q_UNUSED(signum);
|
||||
Q_UNUSED(signum)
|
||||
SingleApplication::instance()->quit();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "utils/Utils.hpp"
|
||||
|
||||
#include "VideoCodecsModel.hpp"
|
||||
#include <linphone/linphonecore.h>
|
||||
|
||||
// =============================================================================
|
||||
|
||||
|
|
@ -47,17 +48,17 @@ namespace {
|
|||
constexpr char LibraryExtension[] = "so";
|
||||
constexpr char H264InstallName[] = "libopenh264.so";
|
||||
#ifdef Q_PROCESSOR_X86_64
|
||||
constexpr char PluginUrlH264[] = "http://ciscobinary.openh264.org/libopenh264-1.8.0-linux64.4.so.bz2";
|
||||
constexpr char PluginUrlH264[] = "http://ciscobinary.openh264.org/libopenh264-2.1.0-linux64.5.so.bz2";
|
||||
#else
|
||||
constexpr char PluginUrlH264[] = "http://ciscobinary.openh264.org/libopenh264-1.8.0-linux32.4.so.bz2";
|
||||
constexpr char PluginUrlH264[] = "http://ciscobinary.openh264.org/libopenh264-2.1-0-linux32.5.so.bz2";
|
||||
#endif // ifdef Q_PROCESSOR_X86_64
|
||||
#elif defined(Q_OS_WIN)
|
||||
constexpr char LibraryExtension[] = "dll";
|
||||
constexpr char H264InstallName[] = "openh264.dll";
|
||||
#ifdef Q_OS_WIN64
|
||||
constexpr char PluginUrlH264[] = "http://ciscobinary.openh264.org/openh264-1.8.0-win64.dll.bz2";
|
||||
constexpr char PluginUrlH264[] = "http://ciscobinary.openh264.org/openh264-2.1.0-win64.dll.bz2";
|
||||
#else
|
||||
constexpr char PluginUrlH264[] = "http://ciscobinary.openh264.org/openh264-1.8.0-win32.dll.bz2";
|
||||
constexpr char PluginUrlH264[] = "http://ciscobinary.openh264.org/openh264-2.1.0-win32.dll.bz2";
|
||||
#endif // ifdef Q_OS_WIN64
|
||||
#endif // ifdef Q_OS_LINUX
|
||||
}
|
||||
|
|
@ -111,7 +112,7 @@ static bool downloadUpdatableCodec (
|
|||
qWarning() << QStringLiteral("Unable to write codec version in: `%1`.").arg(versionFilePath);
|
||||
return;
|
||||
}
|
||||
if (versionFile.write(Utils::appStringToCoreString(downloadUrl).c_str(), downloadUrl.length()) == -1) {
|
||||
if (versionFile.write(Utils::appStringToCoreString(downloadUrl).c_str(), downloadUrl.length()) == -1) {
|
||||
fileExtractor->remove();
|
||||
versionFile.close();
|
||||
versionFile.remove();
|
||||
|
|
@ -174,10 +175,10 @@ void VideoCodecsModel::load () {
|
|||
QDirIterator it(getCodecsFolder());
|
||||
while (it.hasNext()) {
|
||||
QFileInfo info(it.next());
|
||||
if (info.suffix() == LibraryExtension) {
|
||||
const QString filename(info.fileName());
|
||||
const QString filename(info.fileName());
|
||||
if ( QLibrary::isLibrary(filename) ) {
|
||||
qInfo() << QStringLiteral("Loading `%1` symbols...").arg(filename);
|
||||
if (!QLibrary(info.filePath()).load())
|
||||
if (!QLibrary(info.filePath()).load()) //lib.load())
|
||||
qWarning() << QStringLiteral("Failed to load `%1` symbols.").arg(filename);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -133,14 +133,14 @@ void FileDownloader::handleDownloadFinished() {
|
|||
if (isHttpRedirect(mNetworkReply)) {
|
||||
qWarning() << QStringLiteral("Request was redirected.");
|
||||
mDestinationFile.remove();
|
||||
cleanDownloadEnd();
|
||||
emit downloadFailed();
|
||||
} else {
|
||||
qInfo() << QStringLiteral("Download of %1 finished.").arg(mUrl.toString());
|
||||
mDestinationFile.close();
|
||||
cleanDownloadEnd();
|
||||
emit downloadFinished(mDestinationFile.fileName());
|
||||
}
|
||||
|
||||
cleanDownloadEnd();
|
||||
}
|
||||
|
||||
void FileDownloader::handleError (QNetworkReply::NetworkError code) {
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ DialogPlus {
|
|||
|
||||
property alias downloadUrl: fileDownloader.url
|
||||
property alias installFolder: fileDownloader.downloadFolder
|
||||
property bool extract: false
|
||||
property string installName // Right install name.
|
||||
property string mime // Human readable name.
|
||||
|
||||
|
|
@ -30,14 +29,9 @@ DialogPlus {
|
|||
}
|
||||
|
||||
function _endInstall (exitStatus) {
|
||||
if (dialog.extract) {
|
||||
fileDownloader.remove()
|
||||
}
|
||||
|
||||
if (exitStatus === 1) {
|
||||
Utils.write(installFolder + mime + '.txt', downloadUrl)
|
||||
}
|
||||
|
||||
dialog._exitStatus = exitStatus
|
||||
dialog._installing = false
|
||||
}
|
||||
|
|
@ -132,12 +126,8 @@ DialogPlus {
|
|||
onDownloadFailed: dialog._endInstall(0)
|
||||
onDownloadFinished: {
|
||||
fileExtractor.file = filePath
|
||||
if (dialog.extract) {
|
||||
progressBar.target = fileExtractor
|
||||
fileExtractor.extract()
|
||||
} else {
|
||||
dialog._endInstall(1)
|
||||
}
|
||||
progressBar.target = fileExtractor
|
||||
fileExtractor.extract()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -147,8 +137,8 @@ DialogPlus {
|
|||
extractFolder: dialog.installFolder
|
||||
extractName: dialog.installName
|
||||
|
||||
onExtractFailed: dialog._endInstall(0)
|
||||
onExtractFinished: dialog._endInstall(1)
|
||||
onExtractFailed: {fileDownloader.remove(); dialog._endInstall(0)}
|
||||
onExtractFinished: {fileDownloader.remove(); dialog._endInstall(1)}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue