diff --git a/CMakeLists.txt b/CMakeLists.txt index c3d9b7785..02dd65cf9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,15 +72,18 @@ endif() set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}") +set(LINPHONEAPP_APPLICATION_NAME "Linphone6" CACHE STRING "Application name" ) +set(LINPHONEAPP_EXECUTABLE_NAME "linphone6" CACHE STRING "Executable name" ) + if( APPLE ) set(LINPHONEAPP_MACOS_ARCHS "arm64" CACHE STRING "MacOS architectures to build: comma-separated list of values in [arm64, x86_64]") set(LINPHONESDK_BUILD_TYPE "Default")#Using Mac will remove all SDK targets. set(ENABLE_FAT_BINARY "ON") # Disable XCFrameworks as it is not supported. - set(CMAKE_INSTALL_BINDIR "${APPLICATION_NAME}.app/Contents/MacOS") - set(CMAKE_INSTALL_LIBDIR "${APPLICATION_NAME}.app/Contents/Frameworks") - set(CMAKE_INSTALL_INCLUDEDIR "${APPLICATION_NAME}.app/Contents/Resources/include") - set(CMAKE_INSTALL_DATAROOTDIR "${APPLICATION_NAME}.app/Contents/Resources/share") + set(CMAKE_INSTALL_BINDIR "${LINPHONEAPP_APPLICATION_NAME}.app/Contents/MacOS") + set(CMAKE_INSTALL_LIBDIR "${LINPHONEAPP_APPLICATION_NAME}.app/Contents/Frameworks") + set(CMAKE_INSTALL_INCLUDEDIR "${LINPHONEAPP_APPLICATION_NAME}.app/Contents/Resources/include") + set(CMAKE_INSTALL_DATAROOTDIR "${LINPHONEAPP_APPLICATION_NAME}.app/Contents/Resources/share") if( NOT CMAKE_OSX_DEPLOYMENT_TARGET) #set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15")#Qt: 'path' is unavailable: introduced in macOS 10.15 @@ -144,9 +147,6 @@ function(add_cache _OPTION_LIST OPTION DESC VALUE) set(${${_OPTION_LIST}} ${_OPTION_LIST} PARENT_SCOPE) endfunction() -set(LINPHONEAPP_APPLICATION_NAME "Linphone6" CACHE STRING "Application name" ) -set(LINPHONEAPP_EXECUTABLE_NAME "linphone6" CACHE STRING "Executable name" ) - add_option(OPTION_LIST ENABLE_APP_LICENSE "Enable the license in packages." ON) add_option(OPTION_LIST ENABLE_APP_OAUTH2 "Build with OAuth2 support for remote provisioning." OFF) # Experimental. add_option(OPTION_LIST ENABLE_APP_PACKAGING "Enable packaging" OFF) diff --git a/Linphone/CMakeLists.txt b/Linphone/CMakeLists.txt index 03d38a016..b833d655f 100644 --- a/Linphone/CMakeLists.txt +++ b/Linphone/CMakeLists.txt @@ -160,7 +160,9 @@ qt6_add_resources(Linphone "resources" PREFIX "/" FILES ${_LINPHONEAPP_RC_FILES} ################################################################ # TARGETS LINKS ################################################################ - +if(APPLE) + configure_file("${CMAKE_SOURCE_DIR}/cmake/install/macos/Info.plist.in" "${CMAKE_BINARY_DIR}/cmake/install/macos/Info.plist" @ONLY) +endif() set_target_properties(${TARGET_NAME} PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER org.linphone MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} diff --git a/Linphone/model/account/AccountModel.cpp b/Linphone/model/account/AccountModel.cpp index 15b57e50f..865674459 100644 --- a/Linphone/model/account/AccountModel.cpp +++ b/Linphone/model/account/AccountModel.cpp @@ -188,7 +188,8 @@ void AccountModel::setNotificationsAllowed(bool value) { QString AccountModel::getMwiServerAddress() const { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); - return Utils::coreStringToAppString(mMonitor->getParams()->getMwiServerAddress()->asString()); + auto mwiAddress = mMonitor->getParams()->getMwiServerAddress(); + return mwiAddress ? Utils::coreStringToAppString(mwiAddress->asString()): ""; } void AccountModel::setMwiServerAddress(QString value) { diff --git a/Linphone/tool/thread/Thread.cpp b/Linphone/tool/thread/Thread.cpp index c02634a6e..3319c29bd 100644 --- a/Linphone/tool/thread/Thread.cpp +++ b/Linphone/tool/thread/Thread.cpp @@ -26,6 +26,7 @@ Thread::Thread(QObject *parent) : QThread(parent) { } void Thread::run() { + qInfo () << "Thread is running"; mThreadId = new QObject(); setlocale(LC_CTYPE, ".UTF8"); int toExit = false; diff --git a/cmake/GenerateAppMacos.cmake b/cmake/GenerateAppMacos.cmake index 70b72ee6a..a9b7e5fd4 100644 --- a/cmake/GenerateAppMacos.cmake +++ b/cmake/GenerateAppMacos.cmake @@ -25,7 +25,7 @@ include("${LINPHONESDK_DIR}/cmake/LinphoneSdkUtils.cmake") linphone_sdk_convert_comma_separated_list_to_cmake_list("${LINPHONEAPP_MACOS_ARCHS}" _MACOS_ARCHS) list(GET _MACOS_ARCHS 0 _FIRST_ARCH) -set(MAIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/${LINPHONEAPP_NAME}) #OUTPUT/linphone-app/macos +set(MAIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/${LINPHONEAPP_FOLDER}) #OUTPUT/macos ################################ # Create the desktop directory that will contain the merged content of all architectures @@ -113,7 +113,7 @@ foreach(_FILE IN LISTS ${_BINARIES}) endif() endif() endforeach() -execute_process(COMMAND codesign --force --deep --sign - "${MAIN_INSTALL_DIR}/${LINPHONEAPP_EXENAME}.app")#If not code signed, app can crash because of APPLE on "Code Signature Invalid". +execute_process(COMMAND codesign --force --deep --sign - "${MAIN_INSTALL_DIR}/${LINPHONEAPP_APPLICATION_NAME}.app")#If not code signed, app can crash because of APPLE on "Code Signature Invalid". #[[ diff --git a/cmake/TasksMacos.cmake b/cmake/TasksMacos.cmake index 20a81c4e9..7262ccbf6 100644 --- a/cmake/TasksMacos.cmake +++ b/cmake/TasksMacos.cmake @@ -34,12 +34,12 @@ linphone_app_convert_comma_separated_list_to_cmake_list("${LINPHONEAPP_MACOS_ARC #linphone_sdk_convert_comma_separated_list_to_cmake_list("${LINPHONESDK_MACOS_ARCHS}" _MACOS_ARCHS) -set(LINPHONEAPP_NAME ${APPLICATION_NAME}) -set(LINPHONEAPP_EXENAME ${EXECUTABLE_NAME}) +set(LINPHONEAPP_NAME ${LINPHONEAPP_APPLICATION_NAME}) +set(LINPHONEAPP_EXENAME ${LINPHONEAPP_EXECUTABLE_NAME}) set(LINPHONEAPP_PLATFORM "macos") set(SUB_TARGET app_macos) string(TOLOWER "${LINPHONEAPP_PLATFORM}" LINPHONEAPP_PLATFORM_LOWER) -set(_MACOS_INSTALL_RELATIVE_DIR "${LINPHONEAPP_NAME}/${LINPHONEAPP_PLATFORM_LOWER}") # Linphone/macos +set(_MACOS_INSTALL_RELATIVE_DIR "${LINPHONEAPP_PLATFORM_LOWER}") # macos set(_MACOS_INSTALL_DIR "${APPLICATION_OUTPUT_DIR}/${_MACOS_INSTALL_RELATIVE_DIR}") # build/OUTPUT/Linphone/macos # Use APPLICATION_OUTPUT_DIR. CMAKE_INSTALL_PREFIX can be in Linphone.app/Contents @@ -76,8 +76,9 @@ add_custom_target(gen-apps ALL "-DLINPHONESDK_DIR=${PROJECT_SOURCE_DIR}/external/linphone-sdk" "-DLINPHONEAPP_BUILD_DIR=${CMAKE_BINARY_DIR}" "-DLINPHONEAPP_MACOS_ARCHS=${LINPHONEAPP_MACOS_ARCHS}" - "-DLINPHONEAPP_NAME=${_MACOS_INSTALL_RELATIVE_DIR}" - "-DLINPHONEAPP_EXENAME=${LINPHONEAPP_EXENAME}" + "-DLINPHONEAPP_FOLDER=${_MACOS_INSTALL_RELATIVE_DIR}" + "-DLINPHONEAPP_APPLICATION_NAME=${LINPHONEAPP_APPLICATION_NAME}" + "-DLINPHONEAPP_EXECUTABLE_NAME=${LINPHONEAPP_EXECUTABLE_NAME}" "-DLINPHONEAPP_PLATFORM=${LINPHONEAPP_PLATFORM_LOWER}" "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}" "-DCMAKE_INSTALL_LIBDIR=${CMAKE_INSTALL_LIBDIR}" diff --git a/cmake/install/install.cmake b/cmake/install/install.cmake index 8a55c0e84..4c97ff0b9 100644 --- a/cmake/install/install.cmake +++ b/cmake/install/install.cmake @@ -62,7 +62,6 @@ set(LINPHONE_QML_DIR "${CMAKE_SOURCE_DIR}/Linphone/view") set(QT_PATH "${Qt6Core_DIR}/../../..") if(APPLE) - configure_file("${CMAKE_SOURCE_DIR}/cmake/install/macos/Info.plist.in" "${CMAKE_BINARY_DIR}/cmake/install/macos/Info.plist" @ONLY) configure_file("${CMAKE_SOURCE_DIR}/cmake/install/macos/entitlements.xml.in" "${CMAKE_BINARY_DIR}/cmake/install/macos/entitlements.xml" @ONLY) configure_file("${CMAKE_SOURCE_DIR}/cmake/install/macos/linphone.icns" "${CMAKE_BINARY_DIR}/cmake/install/macos/${EXECUTABLE_NAME}.icns" COPYONLY) set(APP_QT_CONF_PATH "[Paths]\nPlugins = PlugIns\nImports = Resources/qml\nQml2Imports = Resources/qml")