Update options and explanations on error application path

This commit is contained in:
Julien Wadel 2020-02-12 12:02:33 +01:00
parent 741e9ff641
commit b4cbbf96ed
2 changed files with 45 additions and 30 deletions

View file

@ -58,36 +58,37 @@ set(ASSETS_DIR "assets")
option(ENABLE_UPDATE_CHECK "Enable update check." NO)
option(ENABLE_UNIT_TESTS "Enable unit test of SDK." NO )
option(ENABLE_TOOLS "Enable tools of SDK" NO)
#option(ENABLE_GPL_THIRD_PARTIES "" YES)
#option(ENABLE_NON_FREE_CODECS "Allow inclusion of non-free codecs in the build." YES)
#option(ENABLE_AMRNB "" YES)
#option(ENABLE_AMRWB "" YES)
#option(ENABLE_BV16 "Build mediastreamer2 with the BV16 codec." YES)
#option(ENABLE_G729 "Build mediastreamer2 with the G726 codec." YES)
##option(ENABLE_G729B_CNG "Build mediastreamer2 with G729 annex B cng." NO)
#option(ENABLE_GSM "Build mediastreamer2 with the GSM codec." YES)
#option(ENABLE_ILBC "" YES)
#option(ENABLE_ISAC "" YES)
#option(ENABLE_SILK "" YES)
##option(ENABLE_SPEEX "" YES)
#option(ENABLE_SPEEX_CODEC "Build mediastreamer2 with the SPEEX codec." YES)
#option(ENABLE_SPEEX_DSP "Build mediastreamer2 with the SPEEX DSP support." YES)
#option(ENABLE_H263 "" YES)
#option(ENABLE_H263P "" YES)
#option(ENABLE_MPEG4 "" YES)
#option(ENABLE_OPENH264 "Embedded OpenH264" YES)
#option(ENABLE_VPX "Build mediastreamer2 with VPX codec." YES)
#option(ENABLE_MKV "Enable support of MKV files reading and writing." YES)
#if(WIN32 OR APPLE)
#option(ENABLE_FFMPEG "Build mediastreamer2 with ffmpeg video support." YES)
#option(ENABLE_OPUS "Build mediastreamer2 with the OPUS codec." YES)
#else()##Opus crash on Linux. The version for 4.3 is old. We have to use a switch in configuration to select the newest version for desktop.
# option(ENABLE_OPUS "Build mediastreamer2 with the OPUS codec." YES)
#option(ENABLE_FFMPEG "Build mediastreamer2 with ffmpeg video support." NO)
#endif()
option(ENABLE_GPL_THIRD_PARTIES "" YES)
option(ENABLE_NON_FREE_CODECS "Allow inclusion of non-free codecs in the build." YES)
option(ENABLE_AMRNB "" YES)
option(ENABLE_AMRWB "" YES)
option(ENABLE_BV16 "Build mediastreamer2 with the BV16 codec." YES)
option(ENABLE_G729 "Build mediastreamer2 with the G726 codec." YES)
option(ENABLE_G729B_CNG "Build mediastreamer2 with G729 annex B cng." NO)
option(ENABLE_GSM "Build mediastreamer2 with the GSM codec." YES)
option(ENABLE_ILBC "" YES)
option(ENABLE_ISAC "" YES)
option(ENABLE_SILK "" YES)
option(ENABLE_SPEEX "" YES)
option(ENABLE_SPEEX_CODEC "Build mediastreamer2 with the SPEEX codec." YES)
option(ENABLE_SPEEX_DSP "Build mediastreamer2 with the SPEEX DSP support." YES)
option(ENABLE_H263 "" YES)
option(ENABLE_H263P "" YES)
option(ENABLE_LIME_X3DH "Enable lime X3DH support." YES)
option(ENABLE_MPEG4 "" YES)
option(ENABLE_OPENH264 "Embedded OpenH264" YES)
option(ENABLE_VPX "Build mediastreamer2 with VPX codec." YES)
option(ENABLE_V4L "Ability to capture and display video using libv4l2 or libv4l." YES)
option(ENABLE_MKV "Enable support of MKV files reading and writing." YES)
option(ENABLE_FFMPEG "Build mediastreamer2 with ffmpeg video support." YES)
if(WIN32 OR APPLE)
option(ENABLE_OPUS "Build mediastreamer2 with the OPUS codec." YES)
else()##Opus crash on Linux. The version for 4.3 is old. We have to use a switch in configuration to select the newest version for desktop.
option(ENABLE_OPUS "Build mediastreamer2 with the OPUS codec." NO)
endif()
option(ENABLE_RELATIVE_PREFIX "Set Internal packages relative to the binary" YES)
include(GNUInstallDirs)
include(CheckCXXCompilerFlag)

View file

@ -42,7 +42,7 @@ namespace {
constexpr char PathCaptures[] = "/" EXECUTABLE_NAME "/captures/";
constexpr char PathCodecs[] = "/codecs/";
constexpr char PathLogs[] = "/logs/";
constexpr char PathPlugins[] = "/plugins/";
//constexpr char PathPlugins[] = "/plugins/"; // Unused
constexpr char PathThumbnails[] = "/thumbnails/";
constexpr char PathUserCertificates[] = "/usr-crt/";
@ -103,6 +103,17 @@ static inline string getWritableFilePath (const QString &filename) {
}
// -----------------------------------------------------------------------------
// On Windows or Linux, the folders of the application are :
// bin/linphone
// lib/
// lib64/
// share/
// But in some cases, it can be :
// /linphone
// lib/
// lib64/
// share/
static inline QDir getAppPackageDir () {
QDir dir(QCoreApplication::applicationDirPath());
@ -113,8 +124,11 @@ static inline QDir getAppPackageDir () {
dir.mkdir("Resources");
dir.cd("Resources");
}
} else
} else if( !dir.exists("lib") && !dir.exists("lib64")){// Check if these folders are in the current path
dir.cdUp();
if(!dir.exists("lib") && !dir.exists("lib64"))
qWarning() << QObject::tr("The application's location is not correct: You have to put your 'bin/' folder next to 'lib/' folder.");
}
return dir;
}