diff --git a/.gitignore b/.gitignore index b5a7a4d0b..eaafa02dc 100644 --- a/.gitignore +++ b/.gitignore @@ -16,6 +16,7 @@ CMakeLists.txt.user build-*-Debug build-*-Default prepare.conf.user +build-desktop/* # Tags ------------------------------------------------------------------------- diff --git a/.gitlab-ci-files/job-linux-desktop.yml b/.gitlab-ci-files/job-linux-desktop.yml index 31cbf8c17..839ce142b 100644 --- a/.gitlab-ci-files/job-linux-desktop.yml +++ b/.gitlab-ci-files/job-linux-desktop.yml @@ -8,6 +8,7 @@ extends: .linux-prepare script: + - cmake --version - export CC=$CC - export CXX=$CXX - mkdir -p build-desktop/OUTPUT @@ -17,27 +18,20 @@ - echo $CMAKE_OPTIONS - echo $CMAKE_SANITIZER_OPTIONS # SDK Building - - mkdir -p linphone-sdk/build-sdk - - cd linphone-sdk/build-sdk - - cmake .. -G "$CMAKE_GENERATOR" -DLINPHONESDK_PLATFORM=Desktop $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS - - cmake --build . --target sdk $LBC_NODEBUG_OPTIONS - - cd ../../submodules/externals/minizip -# Minizip submodule Building - - mkdir -p build-minizip - - cd build-minizip - - cmake .. -G "$CMAKE_GENERATOR" $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS -DCMAKE_INSTALL_PREFIX=OUTPUT -DCMAKE_PREFIX_PATH="../../../linphone-sdk/build-sdk/linphone-sdk/desktop" + - cd build-desktop + - cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_VERBOSE_MAKEFILE=ON -DLINPHONESDK_PLATFORM=Desktop $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS - cmake --build . --target all $LBC_NODEBUG_OPTIONS - - cmake --build . --target install -# Desktop Building - - cd ../../../../build-desktop - - cmake .. -G "$CMAKE_GENERATOR" $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS -DCMAKE_INSTALL_PREFIX=OUTPUT - - cmake --build . --target all -- $ADDITIONAL_BUILD_OPTIONS - - cmake --build . --target install -- $ADDITIONAL_BUILD_OPTIONS +# Minizip install to OUTPUT folder + - cmake .. + - cmake --build . --target minizip $LBC_NODEBUG_OPTIONS + - cmake --build . --target install $LBC_NODEBUG_OPTIONS +# Update CMake installation + - cmake .. -G "$CMAKE_GENERATOR" $DEFAULT_LINUX_CMAKE_OPTIONS $CMAKE_OPTIONS $SCHEDULE_CMAKE_OPTIONS $CMAKE_SANITIZER_OPTIONS + - cmake --build . --target linphone-qt $LBC_NODEBUG_OPTIONS + - cmake --build . --target install artifacts: paths: - build-desktop/OUTPUT - - linphone-sdk/build-sdk/linphone-sdk/desktop - - submodules/externals/minizip/build-minizip/OUTPUT expire_in: 1 week diff --git a/.gitlab-ci-files/job-macosx-desktop.yml b/.gitlab-ci-files/job-macosx-desktop.yml index 3c8054cd0..51553daa5 100644 --- a/.gitlab-ci-files/job-macosx-desktop.yml +++ b/.gitlab-ci-files/job-macosx-desktop.yml @@ -11,38 +11,28 @@ - export PATH=$PATH:/usr/local/opt/qt/bin - if [ -d "build-desktop" ]; then rm -rf build-desktop; fi; - mkdir -p build-desktop/OUTPUT - - cd linphone-sdk + - cd build-desktop #SDK Building - - if [ -d "build-sdk" ]; then rm -rf build-sdk; fi; - - mkdir -p build-sdk - - cd build-sdk - echo $CMAKE_GENERATOR - echo $DEFAULT_MACOS_CMAKE_OPTIONS - echo $CMAKE_OPTIONS - echo $ADDITIONAL_BUILD_OPTIONS - cmake .. -G "$CMAKE_GENERATOR" -DLINPHONESDK_PLATFORM=Desktop $DEFAULT_MACOS_CMAKE_OPTIONS $XCODE_OPTIONS $CMAKE_OPTIONS - - cmake --build . $LBC_NODEBUG_OPTIONS - - cd ../../submodules/externals/minizip -# Minizip submodule Building - - if [ -d "build-minizip" ]; then rm -rf build-minizip; fi; - - mkdir -p build-minizip - - cd build-minizip - - cmake .. -G "$CMAKE_GENERATOR" $DEFAULT_MACOS_CMAKE_OPTIONS $XCODE_OPTIONS $CMAKE_OPTIONS -DCMAKE_INSTALL_PREFIX=OUTPUT -DCMAKE_PREFIX_PATH="../../../linphone-sdk/build-sdk/linphone-sdk/desktop" - cmake --build . --target all $LBC_NODEBUG_OPTIONS - - cmake --build . --target install -# Desktop Building - - cd ../../../../build-desktop - - cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 $DEFAULT_MACOS_CMAKE_OPTIONS $XCODE_OPTIONS $CMAKE_OPTIONS -DCMAKE_INSTALL_PREFIX=OUTPUT -DCMAKE_PREFIX_PATH="linphone-sdk/build-sdk/linphone-sdk/desktop;submodules/externals/minizip/build-minizip/OUTPUT" - - cmake --build . --target all -- $ADDITIONAL_BUILD_OPTIONS +# Minizip install to OUTPUT folder + - cmake .. + - cmake --build . --target minizip + - cmake --build . --target install +# Update CMake installation + - cmake .. -G "$CMAKE_GENERATOR" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 $DEFAULT_MACOS_CMAKE_OPTIONS $XCODE_OPTIONS $CMAKE_OPTIONS + - cmake --build . --target linphone-qt -- $ADDITIONAL_BUILD_OPTIONS # - codesign --verbose -s "$MACOS_SIGNING_IDENTITY" WORK/desktop/Build/linphone_package/Linphone-*.dmg -# - cmake --build . --target install -- $ADDITIONAL_BUILD_OPTIONS + - cmake --build . --target install -- $ADDITIONAL_BUILD_OPTIONS - ccache -s artifacts: paths: - build-desktop/OUTPUT - - linphone-sdk/build-sdk/linphone-sdk/desktop - - submodules/externals/minizip/build-minizip/OUTPUT expire_in: 1 week @@ -72,7 +62,6 @@ job-macosx-ninja: variables: CMAKE_GENERATOR: Ninja - CMAKE_OPTIONS: -DENABLE_UNIT_TESTS=ON extends: .job-macosx-desktop diff --git a/.gitlab-ci-files/job-windows-desktop.yml b/.gitlab-ci-files/job-windows-desktop.yml index c93388e20..291028d38 100644 --- a/.gitlab-ci-files/job-windows-desktop.yml +++ b/.gitlab-ci-files/job-windows-desktop.yml @@ -57,38 +57,26 @@ - mkdir build-desktop - cd build-desktop - mkdir OUTPUT -#SDK Building - - cd ../linphone-sdk - #handling the case of previous job cancellation - - IF EXIST build-sdkdesktop RMDIR /S /Q build-sdkdesktop - - mkdir build-sdk - - cd build-sdk +#SDK Building #we launch the msvc-cl wrapper located in python scripts folder #this wrapper relays only needed calls to the real compiler #cache stats display - C:\PROGRA~1\Python37\Scripts\cl -s - - cmake .. -G "Visual Studio 15 2017" -DLINPHONESDK_PLATFORM=Desktop -DENABLE_CSHARP_WRAPPER=YES -DCMAKE_BUILD_TYPE=Release %DEFAULT_WINDOWS_CMAKE_OPTIONS% %CMAKE_OPTIONS% - - cmake --build . --target sdk --config Release %LBC_NODEBUG_OPTIONS% -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false - - cd ../../submodules/externals/minizip -# Minizip submodule Building - - IF EXIST build-minizip RMDIR /S /Q build-minizip - - mkdir build-minizip - - cd build-minizip - - cmake .. -G "Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=Release %DEFAULT_WINDOWS_CMAKE_OPTIONS% %CMAKE_OPTIONS% -DCMAKE_INSTALL_PREFIX=OUTPUT -DCMAKE_PREFIX_PATH="../../../linphone-sdk/build-sdk/linphone-sdk/desktop" - - cmake --build . --target all_build --config Release %LBC_NODEBUG_OPTIONS% -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false + - cmake .. -G "Visual Studio 15 2017" -DLINPHONESDK_PLATFORM=Desktop -DENABLE_CSHARP_WRAPPER=YES -DCMAKE_BUILD_TYPE=Release %DEFAULT_WINDOWS_CMAKE_OPTIONS% %CMAKE_OPTIONS% + - cmake --build . --target ALL_BUILD --config Release %LBC_NODEBUG_OPTIONS% -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false +# Minizip install to OUTPUT folder + - cmake .. + - cmake --build . --target minizip - cmake --build . --target install --config Release %LBC_NODEBUG_OPTIONS% -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false -# Desktop Building - - cd ../../../../build-desktop - - cmake .. -G "Visual Studio 15 2017" -DENABLE_CSHARP_WRAPPER=YES -DCMAKE_BUILD_TYPE=Release %DEFAULT_WINDOWS_CMAKE_OPTIONS% %CMAKE_OPTIONS% -DCMAKE_INSTALL_PREFIX=OUTPUT - - cmake --build . --target all_build --config Release -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false +# Update CMake installation + - cmake .. -G "Visual Studio 15 2017" -DCMAKE_BUILD_TYPE=Release %DEFAULT_WINDOWS_CMAKE_OPTIONS% %CMAKE_OPTIONS% + - cmake --build . --target linphone-qt --config Release -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false - cmake --build . --target install --config Release -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false - C:\PROGRA~1\Python37\Scripts\cl -s artifacts: paths: - build-desktop\OUTPUT - - linphone-sdk\build-sdk\linphone-sdk\desktop - - submodules\externals\minizip\build-minizip\OUTPUT expire_in: 1 week .job-windows-vs2017-scheduled: diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index d250197dc..c4882e8e1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,11 +7,7 @@ variables: MAKEFILE_JOBS: 5 CCACHE_SIZE: 2G #this option is used to speedup submodule building times, when we don't need to trace debug (like SDK where it is already tested in its project) - LBC_NODEBUG_OPTIONS : --parallel $MAKEFILE_JOBS - DEFAULT_LINUX_CMAKE_OPTIONS : -DENABLE_TOOLS=OFF - DEFAULT_MACOS_CMAKE_OPTIONS : -DENABLE_TOOLS=OFF - DEFAULT_WINDOWS_CMAKE_OPTIONS : -DENABLE_TOOLS=OFF - + LBC_NODEBUG_OPTIONS : --parallel $MAKEFILE_JOBS # DEFAULT_LINUX_CMAKE_OPTIONS: -DENABLE_NON_FREE_CODECS=YES -DENABLE_OPENH264=YES # DEFAULT_MACOS_CMAKE_OPTIONS: -DCMAKE_OSX_DEPLOYMENT_TARGET=10.11 -DENABLE_UPDATE_CHECK=YES diff --git a/CMakeLists.txt b/CMakeLists.txt index 16f5b18c1..eca42bb2b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,18 +20,24 @@ # ################################################################################ +# First building command: +# cmake .. -DENABLE_VPX=NO && cmake --build . --target all --parallel 10 && cmake --build . --target install && cmake .. +# Logic : Prepare first building of the SDK and Minizip. Install binaries and prepare for application building. +# Next, we can build the application with cmake --build . --target all --parallel 10 && cmake --build . --target install + cmake_minimum_required(VERSION 3.1) project(linphoneqt VERSION 4.1.1) # Prepare gobal CMAKE configuration specific to the current project -list(APPEND CMAKE_PREFIX_PATH "linphone-sdk/build-sdk/linphone-sdk/desktop") -list(APPEND CMAKE_PREFIX_PATH "submodules/externals/minizip/build-minizip/OUTPUT") - -set(CMAKE_INSTALL_PREFIX "OUTPUT") +list(APPEND CMAKE_PREFIX_PATH "${CMAKE_BINARY_DIR}/linphone-sdk/desktop;${CMAKE_BINARY_DIR}/OUTPUT") +message("${CMAKE_PREFIX_PATH}") +set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/OUTPUT") if(UNIX AND NOT APPLE) - set(CMAKE_INSTALL_RPATH "$ORIGIN/lib64;$ORIGIN/../lib64;$ORIGIN/lib;$ORIGIN/../lib") + set(CMAKE_INSTALL_RPATH "$ORIGIN;$ORIGIN/lib64;$ORIGIN/../lib64;$ORIGIN/lib;$ORIGIN/../lib") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) endif() +#set_property(GLOBAL PROPERTY USE_FOLDERS ON) + #------------------------------------------------------------------------------ set(APP_LIBRARY app-library) @@ -50,37 +56,43 @@ 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_FFMPEG "Build mediastreamer2 with ffmpeg video 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_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) -endif() include(GNUInstallDirs) include(CheckCXXCompilerFlag) + # Use automatically moc from Qt5. set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -96,7 +108,6 @@ if (NOT WIN32) -Wall \ -Wcast-align \ -Wconversion \ --Werror=old-style-cast \ -Werror=return-type \ -Wextra \ -Wfloat-equal \ @@ -142,429 +153,445 @@ set(QT5_PACKAGES_OPTIONAL TextToSpeech) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") -find_package(LinphoneCxx CONFIG REQUIRED) -find_package(Linphone CONFIG REQUIRED) -find_package(bctoolbox CONFIG REQUIRED) -find_package(belcard CONFIG REQUIRED) -find_package(Mediastreamer2 CONFIG REQUIRED) -find_package(ortp CONFIG REQUIRED) +add_subdirectory("linphone-sdk" "linphone-sdk/build-sdk") -find_package(Minizip REQUIRED) +find_package(LinphoneCxx CONFIG) +find_package(Linphone CONFIG) +find_package(bctoolbox CONFIG) +find_package(belcard CONFIG) +find_package(Mediastreamer2 CONFIG) +find_package(ortp CONFIG) -message("INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} FRAMEWORK_PATH=${CMAKE_FRAMEWORK_PATH}") -message("LINPHONE : ${LINPHONE_INCLUDE_DIRS} => ${LINPHONE_LIBRARIES}") -message("LINPHONECXX : ${LINPHONECXX_INCLUDE_DIRS} => ${LINPHONECXX_LIBRARIES}") +if( NOT (LinphoneCxx_FOUND)) + message("Linphone packages are not installed. Build and install it in order to build Minizip and then Desktop Application.") +else() +# Linphone SDK has been builded + message("LINPHONECXX : ${LINPHONECXX_INCLUDE_DIRS} => ${LINPHONECXX_LIBRARIES}") + add_subdirectory(submodules/externals/minizip "submodules/externals/minizip/build-minizip") + add_dependencies(minizip sdk) + find_package(Minizip) + if( NOT(Minizip_FOUND)) + message("Minizip are not installed. Build and install it in order to build Desktop Application.") + else() + message("MINIZIP : ${MINIZIP_INCLUDE_DIRS} => ${MINIZIP_LIBRARIES}") + message("INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} FRAMEWORK_PATH=${CMAKE_FRAMEWORK_PATH}") + message("LINPHONE : ${LINPHONE_INCLUDE_DIRS} => ${LINPHONE_LIBRARIES}") + message("LINPHONECXX : ${LINPHONECXX_INCLUDE_DIRS} => ${LINPHONECXX_LIBRARIES}") -set(SOURCES - src/app/App.cpp - src/app/AppController.cpp - src/app/cli/Cli.cpp - src/app/logger/Logger.cpp - src/app/paths/Paths.cpp - src/app/providers/AvatarProvider.cpp - src/app/providers/ImageProvider.cpp - src/app/providers/ThumbnailProvider.cpp - src/app/translator/DefaultTranslator.cpp - src/components/assistant/AssistantModel.cpp - src/components/authentication/AuthenticationNotifier.cpp - src/components/call/CallModel.cpp - src/components/calls/CallsListModel.cpp - src/components/calls/CallsListProxyModel.cpp - src/components/camera/Camera.cpp - src/components/camera/CameraPreview.cpp - src/components/camera/MSFunctions.cpp - src/components/chat/ChatModel.cpp - src/components/chat/ChatProxyModel.cpp - src/components/codecs/AbstractCodecsModel.cpp - src/components/codecs/AudioCodecsModel.cpp - src/components/codecs/VideoCodecsModel.cpp - src/components/conference/ConferenceAddModel.cpp - src/components/conference/ConferenceHelperModel.cpp - src/components/conference/ConferenceModel.cpp - src/components/contact/ContactModel.cpp - src/components/contact/VcardModel.cpp - src/components/contacts/ContactsListModel.cpp - src/components/contacts/ContactsListProxyModel.cpp - src/components/core/CoreHandlers.cpp - src/components/core/CoreManager.cpp - src/components/core/event-count-notifier/AbstractEventCountNotifier.cpp - src/components/file/FileDownloader.cpp - src/components/file/FileExtractor.cpp - src/components/notifier/Notifier.cpp - src/components/other/clipboard/Clipboard.cpp - src/components/other/colors/Colors.cpp - src/components/other/text-to-speech/TextToSpeech.cpp - src/components/other/units/Units.cpp - src/components/presence/OwnPresenceModel.cpp - src/components/presence/Presence.cpp - src/components/settings/AccountSettingsModel.cpp - src/components/settings/SettingsModel.cpp - src/components/sip-addresses/SipAddressesModel.cpp - src/components/sip-addresses/SipAddressesProxyModel.cpp - src/components/sip-addresses/SipAddressObserver.cpp - src/components/sound-player/SoundPlayer.cpp - src/components/telephone-numbers/TelephoneNumbersModel.cpp - src/components/timeline/TimelineModel.cpp - src/components/url-handlers/UrlHandlers.cpp - src/utils/LinphoneUtils.cpp - src/utils/MediastreamerUtils.cpp - src/utils/QExifImageHeader.cpp - src/utils/Utils.cpp -) + set(SOURCES + src/app/App.cpp + src/app/AppController.cpp + src/app/cli/Cli.cpp + src/app/logger/Logger.cpp + src/app/paths/Paths.cpp + src/app/providers/AvatarProvider.cpp + src/app/providers/ImageProvider.cpp + src/app/providers/ThumbnailProvider.cpp + src/app/translator/DefaultTranslator.cpp + src/components/assistant/AssistantModel.cpp + src/components/authentication/AuthenticationNotifier.cpp + src/components/call/CallModel.cpp + src/components/calls/CallsListModel.cpp + src/components/calls/CallsListProxyModel.cpp + src/components/camera/Camera.cpp + src/components/camera/CameraPreview.cpp + src/components/camera/MSFunctions.cpp + src/components/chat/ChatModel.cpp + src/components/chat/ChatProxyModel.cpp + src/components/codecs/AbstractCodecsModel.cpp + src/components/codecs/AudioCodecsModel.cpp + src/components/codecs/VideoCodecsModel.cpp + src/components/conference/ConferenceAddModel.cpp + src/components/conference/ConferenceHelperModel.cpp + src/components/conference/ConferenceModel.cpp + src/components/contact/ContactModel.cpp + src/components/contact/VcardModel.cpp + src/components/contacts/ContactsListModel.cpp + src/components/contacts/ContactsListProxyModel.cpp + src/components/core/CoreHandlers.cpp + src/components/core/CoreManager.cpp + src/components/core/event-count-notifier/AbstractEventCountNotifier.cpp + src/components/file/FileDownloader.cpp + src/components/file/FileExtractor.cpp + src/components/notifier/Notifier.cpp + src/components/other/clipboard/Clipboard.cpp + src/components/other/colors/Colors.cpp + src/components/other/text-to-speech/TextToSpeech.cpp + src/components/other/units/Units.cpp + src/components/presence/OwnPresenceModel.cpp + src/components/presence/Presence.cpp + src/components/settings/AccountSettingsModel.cpp + src/components/settings/SettingsModel.cpp + src/components/sip-addresses/SipAddressesModel.cpp + src/components/sip-addresses/SipAddressesProxyModel.cpp + src/components/sip-addresses/SipAddressObserver.cpp + src/components/sound-player/SoundPlayer.cpp + src/components/telephone-numbers/TelephoneNumbersModel.cpp + src/components/timeline/TimelineModel.cpp + src/components/url-handlers/UrlHandlers.cpp + src/utils/LinphoneUtils.cpp + src/utils/MediastreamerUtils.cpp + src/utils/QExifImageHeader.cpp + src/utils/Utils.cpp + ) -set(HEADERS - src/app/App.hpp - src/app/AppController.hpp - src/app/cli/Cli.hpp - src/app/logger/Logger.hpp - src/app/paths/Paths.hpp - src/app/providers/AvatarProvider.hpp - src/app/providers/ImageProvider.hpp - src/app/providers/ThumbnailProvider.hpp - src/app/single-application/SingleApplication.hpp - src/app/translator/DefaultTranslator.hpp - src/components/assistant/AssistantModel.hpp - src/components/authentication/AuthenticationNotifier.hpp - src/components/call/CallModel.hpp - src/components/calls/CallsListModel.hpp - src/components/calls/CallsListProxyModel.hpp - src/components/camera/Camera.hpp - src/components/camera/CameraPreview.hpp - src/components/camera/MSFunctions.hpp - src/components/chat/ChatModel.hpp - src/components/chat/ChatProxyModel.hpp - src/components/codecs/AbstractCodecsModel.hpp - src/components/codecs/AudioCodecsModel.hpp - src/components/codecs/VideoCodecsModel.hpp - src/components/Components.hpp - src/components/conference/ConferenceAddModel.hpp - src/components/conference/ConferenceHelperModel.hpp - src/components/conference/ConferenceModel.hpp - src/components/contact/ContactModel.hpp - src/components/contact/VcardModel.hpp - src/components/contacts/ContactsListModel.hpp - src/components/contacts/ContactsListProxyModel.hpp - src/components/core/CoreHandlers.hpp - src/components/core/CoreManager.hpp - src/components/core/event-count-notifier/AbstractEventCountNotifier.hpp - src/components/file/FileDownloader.hpp - src/components/file/FileExtractor.hpp - src/components/notifier/Notifier.hpp - src/components/other/clipboard/Clipboard.hpp - src/components/other/colors/Colors.hpp - src/components/other/desktop-tools/DesktopTools.hpp - src/components/other/text-to-speech/TextToSpeech.hpp - src/components/other/units/Units.hpp - src/components/presence/OwnPresenceModel.hpp - src/components/presence/Presence.hpp - src/components/settings/AccountSettingsModel.hpp - src/components/settings/SettingsModel.hpp - src/components/sip-addresses/SipAddressesModel.hpp - src/components/sip-addresses/SipAddressesProxyModel.hpp - src/components/sip-addresses/SipAddressObserver.hpp - src/components/sound-player/SoundPlayer.hpp - src/components/telephone-numbers/TelephoneNumbersModel.hpp - src/components/timeline/TimelineModel.hpp - src/components/url-handlers/UrlHandlers.hpp - src/utils/LinphoneUtils.hpp - src/utils/MediastreamerUtils.hpp - src/utils/QExifImageHeader.hpp - src/utils/Utils.hpp -) + set(HEADERS + src/app/App.hpp + src/app/AppController.hpp + src/app/cli/Cli.hpp + src/app/logger/Logger.hpp + src/app/paths/Paths.hpp + src/app/providers/AvatarProvider.hpp + src/app/providers/ImageProvider.hpp + src/app/providers/ThumbnailProvider.hpp + src/app/single-application/SingleApplication.hpp + src/app/translator/DefaultTranslator.hpp + src/components/assistant/AssistantModel.hpp + src/components/authentication/AuthenticationNotifier.hpp + src/components/call/CallModel.hpp + src/components/calls/CallsListModel.hpp + src/components/calls/CallsListProxyModel.hpp + src/components/camera/Camera.hpp + src/components/camera/CameraPreview.hpp + src/components/camera/MSFunctions.hpp + src/components/chat/ChatModel.hpp + src/components/chat/ChatProxyModel.hpp + src/components/codecs/AbstractCodecsModel.hpp + src/components/codecs/AudioCodecsModel.hpp + src/components/codecs/VideoCodecsModel.hpp + src/components/Components.hpp + src/components/conference/ConferenceAddModel.hpp + src/components/conference/ConferenceHelperModel.hpp + src/components/conference/ConferenceModel.hpp + src/components/contact/ContactModel.hpp + src/components/contact/VcardModel.hpp + src/components/contacts/ContactsListModel.hpp + src/components/contacts/ContactsListProxyModel.hpp + src/components/core/CoreHandlers.hpp + src/components/core/CoreManager.hpp + src/components/core/event-count-notifier/AbstractEventCountNotifier.hpp + src/components/file/FileDownloader.hpp + src/components/file/FileExtractor.hpp + src/components/notifier/Notifier.hpp + src/components/other/clipboard/Clipboard.hpp + src/components/other/colors/Colors.hpp + src/components/other/desktop-tools/DesktopTools.hpp + src/components/other/text-to-speech/TextToSpeech.hpp + src/components/other/units/Units.hpp + src/components/presence/OwnPresenceModel.hpp + src/components/presence/Presence.hpp + src/components/settings/AccountSettingsModel.hpp + src/components/settings/SettingsModel.hpp + src/components/sip-addresses/SipAddressesModel.hpp + src/components/sip-addresses/SipAddressesProxyModel.hpp + src/components/sip-addresses/SipAddressObserver.hpp + src/components/sound-player/SoundPlayer.hpp + src/components/telephone-numbers/TelephoneNumbersModel.hpp + src/components/timeline/TimelineModel.hpp + src/components/url-handlers/UrlHandlers.hpp + src/utils/LinphoneUtils.hpp + src/utils/MediastreamerUtils.hpp + src/utils/QExifImageHeader.hpp + src/utils/Utils.hpp + ) -set(MAIN_FILE src/app/main.cpp) + set(MAIN_FILE src/app/main.cpp) -if (APPLE) - list(APPEND SOURCES - src/app/single-application/SingleApplication.cpp - src/components/core/event-count-notifier/EventCountNotifierMacOs.m - src/components/other/desktop-tools/DesktopToolsMacOs.cpp - src/components/other/desktop-tools/screen-saver/ScreenSaverMacOs.m - src/components/other/desktop-tools/state-process/StateProcessMacOs.mm - ) - list(APPEND HEADERS - src/app/single-application/SingleApplicationPrivate.hpp - src/components/core/event-count-notifier/EventCountNotifierMacOs.hpp - src/components/other/desktop-tools/DesktopToolsMacOs.hpp - ) -elseif (WIN32) - list(APPEND SOURCES - src/app/single-application/SingleApplication.cpp - src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.cpp - src/components/other/desktop-tools/DesktopToolsWindows.cpp - ) - list(APPEND HEADERS - src/app/single-application/SingleApplicationPrivate.hpp - src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.hpp - src/components/other/desktop-tools/DesktopToolsWindows.hpp - ) -else () - list(APPEND SOURCES - src/app/single-application/SingleApplicationDBus.cpp - src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.cpp - src/components/other/desktop-tools/DesktopToolsLinux.cpp - src/components/other/desktop-tools/screen-saver/ScreenSaverDBus.cpp - src/components/other/desktop-tools/screen-saver/ScreenSaverXdg.cpp - ) - list(APPEND HEADERS - src/app/single-application/SingleApplicationDBusPrivate.hpp - src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.hpp - src/components/other/desktop-tools/DesktopToolsLinux.hpp - src/components/other/desktop-tools/screen-saver/ScreenSaverDBus.hpp - src/components/other/desktop-tools/screen-saver/ScreenSaverXdg.hpp - ) -endif () + if (APPLE) + list(APPEND SOURCES + src/app/single-application/SingleApplication.cpp + src/components/core/event-count-notifier/EventCountNotifierMacOs.m + src/components/other/desktop-tools/DesktopToolsMacOs.cpp + src/components/other/desktop-tools/screen-saver/ScreenSaverMacOs.m + src/components/other/desktop-tools/state-process/StateProcessMacOs.mm + ) + list(APPEND HEADERS + src/app/single-application/SingleApplicationPrivate.hpp + src/components/core/event-count-notifier/EventCountNotifierMacOs.hpp + src/components/other/desktop-tools/DesktopToolsMacOs.hpp + ) + elseif (WIN32) + list(APPEND SOURCES + src/app/single-application/SingleApplication.cpp + src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.cpp + src/components/other/desktop-tools/DesktopToolsWindows.cpp + ) + list(APPEND HEADERS + src/app/single-application/SingleApplicationPrivate.hpp + src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.hpp + src/components/other/desktop-tools/DesktopToolsWindows.hpp + ) + else () + list(APPEND SOURCES + src/app/single-application/SingleApplicationDBus.cpp + src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.cpp + src/components/other/desktop-tools/DesktopToolsLinux.cpp + src/components/other/desktop-tools/screen-saver/ScreenSaverDBus.cpp + src/components/other/desktop-tools/screen-saver/ScreenSaverXdg.cpp + ) + list(APPEND HEADERS + src/app/single-application/SingleApplicationDBusPrivate.hpp + src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.hpp + src/components/other/desktop-tools/DesktopToolsLinux.hpp + src/components/other/desktop-tools/screen-saver/ScreenSaverDBus.hpp + src/components/other/desktop-tools/screen-saver/ScreenSaverXdg.hpp + ) + endif () -set(QRC_RESOURCES resources.qrc) + set(QRC_RESOURCES resources.qrc) -set(LANGUAGES_DIRECTORY "${ASSETS_DIR}/languages") -set(I18N_FILENAME i18n.qrc) -set(LANGUAGES de en fr_FR ja lt ru sv tr pt_BR) + set(LANGUAGES_DIRECTORY "${ASSETS_DIR}/languages") + set(I18N_FILENAME i18n.qrc) + set(LANGUAGES de en fr_FR ja lt ru sv tr pt_BR) -# ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ -function (PREPEND list prefix) - set(new_list "") + function (PREPEND list prefix) + set(new_list "") - foreach (elem ${${list}}) - list(APPEND new_list "${prefix}${elem}") - endforeach () + foreach (elem ${${list}}) + list(APPEND new_list "${prefix}${elem}") + endforeach () - set(${list} ${new_list} PARENT_SCOPE) -endfunction () + set(${list} ${new_list} PARENT_SCOPE) + endfunction () -# Force absolute paths. -PREPEND(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/") -PREPEND(HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/") + # Force absolute paths. + PREPEND(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/") + PREPEND(HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/") -# ------------------------------------------------------------------------------ -# Compute QML files list. -# ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # Compute QML files list. + # ------------------------------------------------------------------------------ -set(QML_SOURCES) -file(STRINGS ${QRC_RESOURCES} QRC_RESOURCES_CONTENT) -foreach (line ${QRC_RESOURCES_CONTENT}) - set(result) - string(REGEX REPLACE - "^[ \t]*<[ \t]*file[ \t]*>[ \t]*(.+\\.[a-z]+)[ \t]*<[ \t]*/[ \t]*file[ \t]*>[ \t]*$" - "\\1" - result - "${line}" - ) - string(REGEX MATCH "\\.[a-z]+$" is_ui ${result}) - if (NOT ${is_ui} STREQUAL "") - list(APPEND QML_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/${result}") - endif () -endforeach () + set(QML_SOURCES) + file(STRINGS ${QRC_RESOURCES} QRC_RESOURCES_CONTENT) + foreach (line ${QRC_RESOURCES_CONTENT}) + set(result) + string(REGEX REPLACE + "^[ \t]*<[ \t]*file[ \t]*>[ \t]*(.+\\.[a-z]+)[ \t]*<[ \t]*/[ \t]*file[ \t]*>[ \t]*$" + "\\1" + result + "${line}" + ) + string(REGEX MATCH "\\.[a-z]+$" is_ui ${result}) + if (NOT ${is_ui} STREQUAL "") + list(APPEND QML_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/${result}") + endif () + endforeach () -# ------------------------------------------------------------------------------ -# Init git hooks. -# ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # Init git hooks. + # ------------------------------------------------------------------------------ -if (NOT WIN32) - add_custom_target( - check_qml DEPENDS ${QML_SOURCES} - COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/check_qml_syntax" - ) -endif() + if (NOT WIN32) + add_custom_target( + check_qml DEPENDS ${QML_SOURCES} + COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/check_qml_syntax" + ) + endif() -execute_process(COMMAND ${CMAKE_COMMAND} -E copy - "${CMAKE_CURRENT_SOURCE_DIR}/tools/private/pre-commit" - "${CMAKE_CURRENT_SOURCE_DIR}/.git/hooks/pre-commit" -) -set(_QML_IMPORT_PATHS "") -list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/modules") -list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/dev-modules") -list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/scripts") -list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/views") + execute_process(COMMAND ${CMAKE_COMMAND} -E copy + "${CMAKE_CURRENT_SOURCE_DIR}/tools/private/pre-commit" + "${CMAKE_CURRENT_SOURCE_DIR}/.git/hooks/pre-commit" + ) + set(_QML_IMPORT_PATHS "") + list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/modules") + list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/dev-modules") + list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/scripts") + list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/views") -set(QML_IMPORT_PATH ${_QML_IMPORT_PATHS} CACHE STRING "Path used to locate CMake modules by Qt Creator" FORCE) + set(QML_IMPORT_PATH ${_QML_IMPORT_PATHS} CACHE STRING "Path used to locate CMake modules by Qt Creator" FORCE) -set(_QML_IMPORT_PATHS "") -list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/modules") -list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/dev-modules") -list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/scripts") -list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/views") + set(_QML_IMPORT_PATHS "") + list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/modules") + list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/dev-modules") + list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/scripts") + list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/views") -set(QML_IMPORT_PATH ${_QML_IMPORT_PATHS} CACHE STRING "Path used to locate CMake modules by Qt Creator" FORCE) + set(QML_IMPORT_PATH ${_QML_IMPORT_PATHS} CACHE STRING "Path used to locate CMake modules by Qt Creator" FORCE) -# ------------------------------------------------------------------------------ -# Create config.h file -# ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # Create config.h file + # ------------------------------------------------------------------------------ -set(MSPLUGINS_DIR "${CMAKE_INSTALL_LIBDIR}/mediastreamer/plugins") -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/config.h") + set(MSPLUGINS_DIR "${CMAKE_INSTALL_LIBDIR}/mediastreamer/plugins") + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/config.h") -# ------------------------------------------------------------------------------ -# Build. -# ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # Build. + # ------------------------------------------------------------------------------ -include_directories(src/) + include_directories(src/) -find_package(Qt5 COMPONENTS ${QT5_PACKAGES} REQUIRED) -find_package(Qt5 COMPONENTS ${QT5_PACKAGES_OPTIONAL} QUIET) + find_package(Qt5 COMPONENTS ${QT5_PACKAGES} REQUIRED) + find_package(Qt5 COMPONENTS ${QT5_PACKAGES_OPTIONAL} QUIET) -if (CMAKE_INSTALL_RPATH) - #Retrieve lib path from a know QT executable - get_target_property(LUPDATE_PATH Qt5::lupdate LOCATION) - get_filename_component(LUPDATE_PATH "${LUPDATE_PATH}" DIRECTORY) - get_filename_component(QT_PATH "${LUPDATE_PATH}/../lib" ABSOLUTE) - list(APPEND CMAKE_INSTALL_RPATH "${QT_PATH}") -endif () -# Add languages support. -add_subdirectory(${LANGUAGES_DIRECTORY}) + if (CMAKE_INSTALL_RPATH) + #Retrieve lib path from a know QT executable + get_target_property(LUPDATE_PATH Qt5::lupdate LOCATION) + get_filename_component(LUPDATE_PATH "${LUPDATE_PATH}" DIRECTORY) + get_filename_component(QT_PATH "${LUPDATE_PATH}/../lib" ABSOLUTE) + list(APPEND CMAKE_INSTALL_RPATH "${QT_PATH}") + endif () + # Add languages support. + add_subdirectory(${LANGUAGES_DIRECTORY}) -list(APPEND SOURCES "${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGES_DIRECTORY}/${I18N_FILENAME}") + list(APPEND SOURCES "${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGES_DIRECTORY}/${I18N_FILENAME}") -# Build. -#add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${RESOURCES} ${QML_SOURCES}) -add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${QML_SOURCES} ${QRC_RESOURCES}) -set_property(TARGET ${APP_LIBRARY} PROPERTY POSITION_INDEPENDENT_CODE ON) + # Build. + #add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${RESOURCES} ${QML_SOURCES}) + add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${QML_SOURCES} ${QRC_RESOURCES}) + set_property(TARGET ${APP_LIBRARY} PROPERTY POSITION_INDEPENDENT_CODE ON) -#Turn on automatic resources compilation by cmake -#Instead of excplicitely calling qt5_add_resources -set_property(TARGET ${APP_LIBRARY} PROPERTY AUTORCC ON) + #Turn on automatic resources compilation by cmake + #Instead of excplicitely calling qt5_add_resources + set_property(TARGET ${APP_LIBRARY} PROPERTY AUTORCC ON) -bc_git_version(${TARGET_NAME} ${PROJECT_VERSION}) -add_dependencies(${APP_LIBRARY} ${TARGET_NAME}-git-version) -add_dependencies(${APP_LIBRARY} update_translations) -if (WIN32) - add_executable(${TARGET_NAME} WIN32 $ ${ASSETS_DIR}/app-icon.rc ${MAIN_FILE}) -else () - add_executable(${TARGET_NAME} $ ${MAIN_FILE}) -endif () + bc_git_version(${TARGET_NAME} ${PROJECT_VERSION}) + add_dependencies(${APP_LIBRARY} ${TARGET_NAME}-git-version) + add_dependencies(${APP_LIBRARY} update_translations) + if (WIN32) + add_executable(${TARGET_NAME} WIN32 $ ${ASSETS_DIR}/app-icon.rc ${MAIN_FILE}) + else () + add_executable(${TARGET_NAME} $ ${MAIN_FILE}) + endif () -set_target_properties(${TARGET_NAME} PROPERTIES OUTPUT_NAME "${EXECUTABLE_NAME}") -set(INCLUDED_DIRECTORIES "${LINPHONECXX_INCLUDE_DIRS}" "${LINPHONE_INCLUDE_DIRS}" "${BELCARD_INCLUDE_DIRS}" "${BCTOOLBOX_INCLUDE_DIRS}" "${MEDIASTREAMER2_INCLUDE_DIRS}" "${MINIZIP_INCLUDE_DIRS}") -set(LIBRARIES ${BCTOOLBOX_CORE_LIBRARIES} ${BELCARD_LIBRARIES} ${LINPHONE_LIBRARIES} ${LINPHONECXX_LIBRARIES} ${MEDIASTREAMER2_LIBRARIES} ${ORTP_LIBRARIES} ${OPUS_LIBRARIES}) -if(WIN32) - list(APPEND LIBRARIES ${MINIZIP_LIBRARIES}) -endif() -foreach (package ${QT5_PACKAGES}) - list(APPEND INCLUDED_DIRECTORIES "${Qt5${package}_INCLUDE_DIRS}") - # `qt5_create_translation` is provided from `LinguistTools` package. - # But the `Qt5::LinguistTools` lib does not exist. Remove it. - if (NOT (${package} STREQUAL LinguistTools)) - list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES}) - endif () -endforeach () + set_target_properties(${TARGET_NAME} PROPERTIES OUTPUT_NAME "${EXECUTABLE_NAME}") + set(INCLUDED_DIRECTORIES "${LINPHONECXX_INCLUDE_DIRS}" "${LINPHONE_INCLUDE_DIRS}" "${BELCARD_INCLUDE_DIRS}" "${BCTOOLBOX_INCLUDE_DIRS}" "${MEDIASTREAMER2_INCLUDE_DIRS}" "${MINIZIP_INCLUDE_DIRS}") + set(LIBRARIES ${BCTOOLBOX_CORE_LIBRARIES} ${BELCARD_LIBRARIES} ${LINPHONE_LIBRARIES} ${LINPHONECXX_LIBRARIES} ${MEDIASTREAMER2_LIBRARIES} ${ORTP_LIBRARIES} ${OPUS_LIBRARIES}) + if(WIN32) + list(APPEND LIBRARIES ${MINIZIP_LIBRARIES}) + endif() + foreach (package ${QT5_PACKAGES}) + list(APPEND INCLUDED_DIRECTORIES "${Qt5${package}_INCLUDE_DIRS}") + # `qt5_create_translation` is provided from `LinguistTools` package. + # But the `Qt5::LinguistTools` lib does not exist. Remove it. + if (NOT (${package} STREQUAL LinguistTools)) + list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES}) + endif () + endforeach () -foreach (package ${QT5_PACKAGES_OPTIONAL}) - if ("${Qt5${package}_FOUND}") - message("Optional package ${package} found.") - list(APPEND INCLUDED_DIRECTORIES "${Qt5${package}_INCLUDE_DIRS}") - list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES}) + foreach (package ${QT5_PACKAGES_OPTIONAL}) + if ("${Qt5${package}_FOUND}") + message("Optional package ${package} found.") + list(APPEND INCLUDED_DIRECTORIES "${Qt5${package}_INCLUDE_DIRS}") + list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES}) - string(TOUPPER "${package}" INCLUDE_NAME) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D${INCLUDE_NAME}_ENABLED") - else () - message("Optional package ${package} not found.") - endif () -endforeach () + string(TOUPPER "${package}" INCLUDE_NAME) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D${INCLUDE_NAME}_ENABLED") + else () + message("Optional package ${package} not found.") + endif () + endforeach () -if (APPLE) - list(APPEND LIBRARIES "-framework Cocoa -framework IOKit") -# -framework linphone") #This doesn't work yet -endif () -target_include_directories(${APP_LIBRARY} SYSTEM PRIVATE ${INCLUDED_DIRECTORIES}) -target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${INCLUDED_DIRECTORIES}) + if (APPLE) + list(APPEND LIBRARIES "-framework Cocoa -framework IOKit") + # -framework linphone") #This doesn't work yet + endif () + target_include_directories(${APP_LIBRARY} SYSTEM PRIVATE ${INCLUDED_DIRECTORIES}) + target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${INCLUDED_DIRECTORIES}) -target_link_libraries(${TARGET_NAME} ${LIBRARIES}) + target_link_libraries(${TARGET_NAME} ${LIBRARIES}) -foreach (target ${TARGET_NAME}) - install(TARGETS ${target} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - ) -endforeach () + foreach (target ${TARGET_NAME}) + install(TARGETS ${target} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + ) + endforeach () -if (UNIX AND NOT APPLE) - # Install desktop/icon files. - configure_file("${ASSETS_DIR}/linphone.desktop.cmake" "${EXECUTABLE_NAME}.desktop" @ONLY) + if (UNIX AND NOT APPLE) + # Install desktop/icon files. + configure_file("${ASSETS_DIR}/linphone.desktop.cmake" "${EXECUTABLE_NAME}.desktop" @ONLY) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_NAME}.desktop" - DESTINATION "${CMAKE_INSTALL_DATADIR}/applications" - ) - install(FILES "${ASSETS_DIR}/images/linphone_logo.svg" - DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps/" - RENAME "${EXECUTABLE_NAME}.svg" - ) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_NAME}.desktop" + DESTINATION "${CMAKE_INSTALL_DATADIR}/applications" + ) + install(FILES "${ASSETS_DIR}/images/linphone_logo.svg" + DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps/" + RENAME "${EXECUTABLE_NAME}.svg" + ) - set(ICON_DIRS 16x16 22x22 24x24 32x32 64x64 128x128 256x256) - foreach (DIR ${ICON_DIRS}) - install(FILES "${ASSETS_DIR}/icons/hicolor/${DIR}/apps/icon.png" - DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/${DIR}/apps/" - RENAME "${EXECUTABLE_NAME}.png" - ) - endforeach () -endif () + set(ICON_DIRS 16x16 22x22 24x24 32x32 64x64 128x128 256x256) + foreach (DIR ${ICON_DIRS}) + install(FILES "${ASSETS_DIR}/icons/hicolor/${DIR}/apps/icon.png" + DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/${DIR}/apps/" + RENAME "${EXECUTABLE_NAME}.png" + ) + endforeach () + endif () -# ------------------------------------------------------------------------------ -# Install rc files. -# ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # Install rc files. + # ------------------------------------------------------------------------------ -install(FILES "${ASSETS_DIR}/linphonerc-factory" - DESTINATION "${CMAKE_INSTALL_DATADIR}/${APPLICATION_NAME}" -) + install(FILES "${ASSETS_DIR}/linphonerc-factory" + DESTINATION "${CMAKE_INSTALL_DATADIR}/${APPLICATION_NAME}" + ) -set(ASSETS_ASSISTANT_DIR "${ASSETS_DIR}/assistant") -set(ASSISTANT_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/${APPLICATION_NAME}/assistant") + set(ASSETS_ASSISTANT_DIR "${ASSETS_DIR}/assistant") + set(ASSISTANT_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/${APPLICATION_NAME}/assistant") -install(FILES "${ASSETS_ASSISTANT_DIR}/use-other-sip-account.rc" - DESTINATION "${ASSISTANT_INSTALL_DATADIR}" -) -install(FILES "${ASSETS_ASSISTANT_DIR}/create-app-sip-account.rc" - DESTINATION "${ASSISTANT_INSTALL_DATADIR}" -) -install(FILES "${ASSETS_ASSISTANT_DIR}/use-app-sip-account.rc" - DESTINATION "${ASSISTANT_INSTALL_DATADIR}" -) + install(FILES "${ASSETS_ASSISTANT_DIR}/use-other-sip-account.rc" + DESTINATION "${ASSISTANT_INSTALL_DATADIR}" + ) + install(FILES "${ASSETS_ASSISTANT_DIR}/create-app-sip-account.rc" + DESTINATION "${ASSISTANT_INSTALL_DATADIR}" + ) + install(FILES "${ASSETS_ASSISTANT_DIR}/use-app-sip-account.rc" + DESTINATION "${ASSISTANT_INSTALL_DATADIR}" + ) -# ------------------------------------------------------------------------------ -# CPack settings & RPM. -# ------------------------------------------------------------------------------ -set(LINPHONE_DESKTOP_DIR "${CMAKE_SOURCE_DIR}") -set(LINPHONE_OUTPUT_DIR "${CMAKE_INSTALL_PREFIX}") -set(LINPHONE_SDK_DIR "${CMAKE_SOURCE_DIR}/linphone-sdk/build-sdk/linphone-sdk") -set(TOOLS_DIR "${CMAKE_BINARY_DIR}/programs") -set(LINPHONE_SOURCE_DIR ${EP_linphone_SOURCE_DIR}) -set(LINPHONE_BUILDER_SIGNING_IDENTITY ${LINPHONE_BUILDER_SIGNING_IDENTITY}) -set(LINPHONE_SDK_TMP "${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_NAME}-sdk-tmp") + # ------------------------------------------------------------------------------ + # CPack settings & RPM. + # ------------------------------------------------------------------------------ + set(LINPHONE_DESKTOP_DIR "${CMAKE_SOURCE_DIR}") + set(LINPHONE_OUTPUT_DIR "${CMAKE_INSTALL_PREFIX}") + set(LINPHONE_SDK_DIR "${CMAKE_BINARY_DIR}/linphone-sdk") + set(TOOLS_DIR "${CMAKE_BINARY_DIR}/programs") + set(LINPHONE_SOURCE_DIR ${EP_linphone_SOURCE_DIR}) + set(LINPHONE_BUILDER_SIGNING_IDENTITY ${LINPHONE_BUILDER_SIGNING_IDENTITY}) + set(LINPHONE_SDK_TMP "${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_NAME}-sdk-tmp") -add_subdirectory(build) -add_subdirectory(cmake_builder/linphone_package) + add_subdirectory(build) + add_subdirectory(cmake_builder/linphone_package) -# ------------------------------------------------------------------------------ -# To start better integration into IDE. -# ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # To start better integration into IDE. + # ------------------------------------------------------------------------------ -source_group( - "Qml" REGULAR_EXPRESSION ".+\.qml$" -) -source_group( - "Js" REGULAR_EXPRESSION ".+\.js$" -) -source_group( - "Svg" REGULAR_EXPRESSION ".+\.svg$" -) + source_group( + "Qml" REGULAR_EXPRESSION ".+\.qml$" + ) + source_group( + "Js" REGULAR_EXPRESSION ".+\.js$" + ) + source_group( + "Svg" REGULAR_EXPRESSION ".+\.svg$" + ) -# ------------------------------ -# Installation -# ------------------------------ -install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/cmake_builder/install.cmake") -#endif () + # ------------------------------ + # Installation + # ------------------------------ + install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/cmake_builder/install.cmake") + #endif () -if(APPLE) - target_link_libraries(${TARGET_NAME} "${LINPHONE_SDK_TMP}/lib/libminizip.dylib") -elseif(NOT WIN32) - if( EXISTS "${LINPHONE_SDK_TMP}/lib64/libminizip.so") - target_link_libraries(${TARGET_NAME} "${LINPHONE_SDK_TMP}/lib64/libminizip.so") - elseif(EXISTS "${LINPHONE_SDK_TMP}/lib/libminizip.so") - target_link_libraries(${TARGET_NAME} "${LINPHONE_SDK_TMP}/lib/libminizip.so") - endif() -endif() + if(APPLE) + target_link_libraries(${TARGET_NAME} "${CMAKE_INSTALL_PREFIX}/lib/libminizip.dylib") + elseif(NOT WIN32) + if( EXISTS "${CMAKE_INSTALL_PREFIX}/lib64/libminizip.so") + target_link_libraries(${TARGET_NAME} "${CMAKE_INSTALL_PREFIX}/lib64/libminizip.so") + elseif(EXISTS "${CMAKE_INSTALL_PREFIX}/lib/libminizip.so") + target_link_libraries(${TARGET_NAME} "${CMAKE_INSTALL_PREFIX}/lib/libminizip.so") + else() + message("Error cannot find ${CMAKE_INSTALL_PREFIX}/lib*/libminizip.so while linking") + endif() + endif() + endif()#If (LinphoneCxx_FOUND AND Minizip_FOUND) +endif()#If (LinphoneCxx_FOUND) diff --git a/build_all_linux.sh b/build_all_linux.sh index 7397356bd..54e0482de 100755 --- a/build_all_linux.sh +++ b/build_all_linux.sh @@ -32,27 +32,21 @@ fi #Creation of folders mkdir -p build-desktop -mkdir -p linphone-sdk/build-sdk -mkdir -p submodules/externals/minizip/build-minizip #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. #SDK building -cd linphone-sdk/build-sdk +cd build-desktop cmake .. -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_VPX=YES -DENABLE_GPL_THIRD_PARTIES=YES -DENABLE_NON_FREE_CODECS=YES -DENABLE_AMRNB=YES -DENABLE_AMRWB=YES -DENABLE_G729=YES -DENABLE_GSM=YES -DENABLE_ILBC=YES -DENABLE_ISAC=YES -DENABLE_SILK=YES -DENABLE_SPEEX=YES -DENABLE_H263=YES -DENABLE_H263P=YES -DENABLE_MPEG4=YES -DENABLE_OPENH264=YES -DENABLE_FFMPEG=YES -DENABLE_VIDEO=YES -DENABLE_GL=YES -DENABLE_OPUS=NO #cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -cmake --build . --target all --config RelWithDebInfo --parallel 5 -cd ../.. +cmake --build . --target all --config RelWithDebInfo --parallel 10 #MiniZip Building -cd submodules/externals/minizip/build-minizip -cmake .. -DCMAKE_INSTALL_PREFIX=OUTPUT -DCMAKE_PREFIX_PATH=../../../linphone-sdk/build-sdk/linphone-sdk/desktop -DCMAKE_BUILD_TYPE=RelWithDebInfo -cmake --build . --target all --config RelWithDebInfo --parallel 5 +cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo +cmake --build . --target minizip --config RelWithDebInfo --parallel 10 cmake --build . --target install -cd ../../../.. #Desktop Building -cd build-desktop -cmake .. -DCMAKE_INSTALL_PREFIX=OUTPUT -DCMAKE_BUILD_TYPE=RelWithDebInfo -cmake --build . --target all --config RelWithDebInfo --parallel 5 +cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo +cmake --build . --target all --config RelWithDebInfo --parallel 10 cmake --build . --target install diff --git a/build_all_macos.sh b/build_all_macos.sh index d58982ecf..1061754b2 100755 --- a/build_all_macos.sh +++ b/build_all_macos.sh @@ -32,26 +32,20 @@ fi #Creation of folders mkdir -p build-desktop -mkdir -p linphone-sdk/build-sdk -mkdir -p submodules/externals/minizip/build-minizip +cd build-desktop #SDK building -cd linphone-sdk/build-sdk #LINPHONESDK_DOXYGEN_PROGRAM is set just to be sure to get the version of the Application folder cmake .. -DLINPHONESDK_DOXYGEN_PROGRAM=/Applications/Doxygen.app/Contents/Resources/doxygen -DCMAKE_OSX_DEPLOYMENT_TARGET=10.9 -DCMAKE_BUILD_TYPE=RelWithDebInfo -cmake --build . --target all --config RelWithDebInfo --parallel 5 -cd ../.. +cmake --build . --target all --config RelWithDebInfo --parallel 10 #MiniZip Building -cd submodules/externals/minizip/build-minizip -cmake .. -DCMAKE_INSTALL_PREFIX=OUTPUT -DCMAKE_PREFIX_PATH=../../../linphone-sdk/build-sdk/linphone-sdk/desktop -DCMAKE_BUILD_TYPE=RelWithDebInfo -cmake --build . --target all --config RelWithDebInfo --parallel 5 +cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo +cmake --build . --target all --config RelWithDebInfo --parallel 10 cmake --build . --target install -cd ../../../.. #Desktop Building -cd build-desktop -cmake .. -DCMAKE_INSTALL_PREFIX=OUTPUT -DCMAKE_BUILD_TYPE=RelWithDebInfo +cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo cmake --build . --target all --config RelWithDebInfo cmake --build . --target install diff --git a/build_all_win.bat b/build_all_win.bat index 636a2b4a7..46f89bb59 100644 --- a/build_all_win.bat +++ b/build_all_win.bat @@ -1,31 +1,24 @@ :: Preparing folders IF NOT EXIST build-desktop mkdir build-desktop -cd linphone-sdk -IF NOT EXIST build-sdk mkdir build-sdk -cd ../submodules/externals/minizip -IF NOT EXIST build-minizip mkdir build-minizip -cd ../../.. :: SDK Building -cd linphone-sdk/build-sdk +cd build-desktop +:: Full config ::cmake .. -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_VPX=YES -A Win32 -DENABLE_GPL_THIRD_PARTIES=YES -DENABLE_NON_FREE_CODECS=YES -DENABLE_AMRNB=YES -DENABLE_AMRWB=YES -DENABLE_G729=YES -DENABLE_GSM=YES -DENABLE_ILBC=YES -DENABLE_ISAC=YES -DENABLE_OPUS=YES -DENABLE_SILK=YES -DENABLE_SPEEX=YES -DENABLE_H263=YES -DENABLE_H263P=YES -DENABLE_MPEG4=YES -DENABLE_OPENH264=YES -DENABLE_FFMPEG=YES -DENABLE_VIDEO=YES -DENABLE_GL=YES +:: Mini config cmake .. -DLINPHONESDK_PLATFORM=Desktop -DCMAKE_BUILD_TYPE=RelWithDebInfo -DENABLE_VPX=NO -DENABLE_OPUS=NO -A Win32 -DENABLE_VIDEO=YES -DENABLE_GL=YES if %errorlevel% neq 0 exit /b %errorlevel% -cmake --build . --target sdk --config RelWithDebInfo --parallel 5 +cmake --build . --target sdk --config RelWithDebInfo --parallel 10 if %errorlevel% neq 0 exit /b %errorlevel% -cd ../.. :: Minizip Submodule Building -cd submodules/externals/minizip/build-minizip -cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=OUTPUT -DCMAKE_PREFIX_PATH="../../../linphone-sdk/build-sdk/linphone-sdk/desktop" -A Win32 -cmake --build . --target all_build --config RelWithDebInfo -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false +cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -A Win32 +cmake --build . --target all_build --parallel 10 --config RelWithDebInfo -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false cmake --build . --target install --config RelWithDebInfo -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false -cd ../../../.. :: Desktop Building -cd build-desktop -cmake .. -DENABLE_CSHARP_WRAPPER=YES -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_INSTALL_PREFIX=OUTPUT -A Win32 +cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -A Win32 if %errorlevel% neq 0 exit /b %errorlevel% -cmake --build . --target all_build --config RelWithDebInfo --parallel 5 -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false +cmake --build . --target all_build --config RelWithDebInfo --parallel 10 -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false cmake --build . --target install --config RelWithDebInfo -- /maxcpucount /nodeReuse:true /p:TrackFileAccess=false diff --git a/cmake_builder/linphone_package/CMakeLists.txt b/cmake_builder/linphone_package/CMakeLists.txt index d784d1070..edd7abd0c 100644 --- a/cmake_builder/linphone_package/CMakeLists.txt +++ b/cmake_builder/linphone_package/CMakeLists.txt @@ -65,12 +65,10 @@ set(PACKAGE_VERSION "${LINPHONE_VERSION}") # Create sdk-temp folder where we can find all needed files (libs, includes etc.) file(REMOVE_RECURSE "${LINPHONE_SDK_TMP}") -message(${LINPHONE_SDK_DIR}) +message(" Linphone_SDK_DIR : ${LINPHONE_SDK_DIR}") file(COPY "${LINPHONE_SDK_DIR}/" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") -file(GLOB MINIZIP_FILES "${CMAKE_SOURCE_DIR}/submodules/externals/minizip/build-minizip/OUTPUT/*") -file(COPY ${MINIZIP_FILES} DESTINATION "${CMAKE_CURRENT_BINARY_DIR}/desktop/") if(APPLE) - execute_process(COMMAND install_name_tool -id "@executable_path/../Frameworks/libminizip.dylib" "${CMAKE_CURRENT_BINARY_DIR}/desktop/lib/libminizip.dylib") + execute_process(COMMAND install_name_tool -id "@executable_path/../Frameworks/libminizip.dylib" "${CMAKE_INSTALL_PREFIX}/lib/libminizip.dylib") elseif(WIN32) endif() @@ -254,13 +252,16 @@ else()# Not Windows and Apple foreach (LIBRARY ${SHARED_LIBRARIES}) get_filename_component(LIBRARY_FILENAME ${LIBRARY} NAME) #if(NOT ("${LIBRARY_FILENAME}" STREQUAL "libminizip.dylib")) - message("Changing RPATH of ${LIBRARY_FILENAME} from '${LINPHONE_OUTPUT_DIR}/lib' to '@executable_path/../lib'") + message("Changing RPATH of ${LIBRARY_FILENAME} from '${LINPHONE_OUTPUT_DIR}/lib' to '$ORIGIN/../lib'") execute_process(COMMAND install_name_tool -rpath "${LINPHONE_OUTPUT_DIR}/lib" "$ORIGIN/../lib" "${LIBRARY}") - execute_process(COMMAND install_name_tool -rpath "${LINPHONE_OUTPUT_DIR}/lib" "$ORIGIN/../lib64" "${LIBRARY}") + execute_process(COMMAND install_name_tool -add_rpath "$ORIGIN/../lib64" "${LIBRARY}") #endif() endforeach () install(DIRECTORY "${LINPHONE_SDK_TMP}/bin/" DESTINATION "bin" USE_SOURCE_PERMISSIONS) - install(DIRECTORY "${LINPHONE_SDK_TMP}/lib/" DESTINATION "lib" USE_SOURCE_PERMISSIONS) +#Just in case. This is useless because we have to use CMAKE_INSTALL_LIBDIR + if( EXISTS "${LINPHONE_SDK_TMP}/lib/") + install(DIRECTORY "${LINPHONE_SDK_TMP}/lib/" DESTINATION "lib" USE_SOURCE_PERMISSIONS) + endif() if( EXISTS "${LINPHONE_SDK_TMP}/lib64/") install(DIRECTORY "${LINPHONE_SDK_TMP}/lib64/" DESTINATION "lib64" USE_SOURCE_PERMISSIONS) endif() diff --git a/linphone-sdk b/linphone-sdk index 65e753f3a..cad6724af 160000 --- a/linphone-sdk +++ b/linphone-sdk @@ -1 +1 @@ -Subproject commit 65e753f3a90d272fbd0fcaa285ba0757b973029a +Subproject commit cad6724afade785b6649061059e03473439fb0b5