mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-18 20:08:11 +00:00
Merge remote-tracking branch 'origin/julien/mac' into wip_julien
This commit is contained in:
commit
660a14e06f
17 changed files with 154 additions and 163 deletions
|
|
@ -23,6 +23,9 @@
|
|||
cmake_minimum_required(VERSION 3.1)
|
||||
project(linphoneqt VERSION 4.1.1)
|
||||
|
||||
list(APPEND CMAKE_PREFIX_PATH "linphone-sdk/build-sdk/linphone-sdk/desktop")
|
||||
list(APPEND CMAKE_PREFIX_PATH "submodules/externals/minizip/build-minizip/OUTPUT")
|
||||
|
||||
set(APP_LIBRARY app-library)
|
||||
include(application_info.cmake)
|
||||
|
||||
|
|
@ -122,6 +125,7 @@ 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)
|
||||
|
|
@ -260,6 +264,7 @@ if (APPLE)
|
|||
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
|
||||
|
|
@ -351,6 +356,15 @@ 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_PATHS "")
|
||||
list(APPEND _QML_IMPORT_PATHS "${CMAKE_CURRENT_SOURCE_DIR}/ui/modules")
|
||||
|
|
@ -409,7 +423,7 @@ 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} ${MINIZIP_LIBRARIES} ${OPUS_LIBRARIES})
|
||||
set(LIBRARIES ${BCTOOLBOX_CORE_LIBRARIES} ${BELCARD_LIBRARIES} ${LINPHONE_LIBRARIES} ${LINPHONECXX_LIBRARIES} ${MEDIASTREAMER2_LIBRARIES} ${ORTP_LIBRARIES} ${OPUS_LIBRARIES})
|
||||
|
||||
foreach (package ${QT5_PACKAGES})
|
||||
list(APPEND INCLUDED_DIRECTORIES "${Qt5${package}_INCLUDE_DIRS}")
|
||||
|
|
@ -437,7 +451,6 @@ 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})
|
||||
|
||||
|
|
@ -465,7 +478,7 @@ if (UNIX AND NOT APPLE)
|
|||
RENAME "${EXECUTABLE_NAME}.svg"
|
||||
)
|
||||
|
||||
set(ICON_DIRS 16x16 22x22 24x24 32x32 64x64 128x128)
|
||||
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/"
|
||||
|
|
@ -498,8 +511,15 @@ install(FILES "${ASSETS_ASSISTANT_DIR}/use-app-sip-account.rc"
|
|||
# ------------------------------------------------------------------------------
|
||||
# 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})
|
||||
|
||||
add_subdirectory(build)
|
||||
add_subdirectory(cmake_builder/linphone_package)
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# To start better integration into IDE.
|
||||
|
|
|
|||
|
|
@ -38,22 +38,21 @@ mkdir -p submodules/externals/minizip/build-minizip
|
|||
#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
|
||||
cmake --build . --target all --parallel 5
|
||||
rsync -a linphone-sdk/desktop/ ../../build-desktop/OUTPUT/
|
||||
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 ../..
|
||||
|
||||
#MiniZip Building
|
||||
cd submodules/externals/minizip/build-minizip
|
||||
cmake .. -DCMAKE_INSTALL_PREFIX=../../../../build-desktop/OUTPUT -DCMAKE_PREFIX_PATH=../../../build-desktop/OUTPUT
|
||||
cmake --build . --target all --parallel 5
|
||||
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 --build . --target install
|
||||
cd ../../../..
|
||||
|
||||
#Desktop Building
|
||||
cd build-desktop
|
||||
cmake .. -DCMAKE_INSTALL_PREFIX=OUTPUT
|
||||
cmake --build . --target all
|
||||
cmake .. -DCMAKE_INSTALL_PREFIX=OUTPUT -DCMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
cmake --build . --target all --config RelWithDebInfo
|
||||
cmake --build . --target install
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
############################################################################
|
||||
|
||||
if (APPLE)
|
||||
execute_process(COMMAND install_name_tool -id "@executable_path/../lib/libminizip.dylib" "${CMAKE_INSTALL_PREFIX}/lib/libminizip.dylib")
|
||||
#execute_process(COMMAND install_name_tool -id "@executable_path/../lib/libminizip.dylib" "${CMAKE_INSTALL_PREFIX}/lib/libminizip.dylib")
|
||||
execute_process(COMMAND install_name_tool -add_rpath "@executable_path/../Frameworks/" "${CMAKE_INSTALL_PREFIX}/bin/linphone")
|
||||
execute_process(COMMAND install_name_tool -add_rpath "@executable_path/../lib/" "${CMAKE_INSTALL_PREFIX}/bin/linphone")
|
||||
else ()
|
||||
|
|
|
|||
|
|
@ -20,13 +20,17 @@
|
|||
#
|
||||
############################################################################
|
||||
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
cmake_minimum_required(VERSION 3.13)
|
||||
project(LINPHONE_PACKAGE) # Dummy project.
|
||||
|
||||
include("${LINPHONE_DESKTOP_DIR}/application_info.cmake")
|
||||
|
||||
find_package(Linphone REQUIRED)
|
||||
find_package(Git)
|
||||
#Policy set to allow link from other directory
|
||||
if (POLICY CMP0079)
|
||||
cmake_policy(SET CMP0079 NEW)
|
||||
endif ()
|
||||
|
||||
set(LINPHONE_QML_DIR "${LINPHONE_DESKTOP_DIR}/ui")
|
||||
|
||||
|
|
@ -58,11 +62,18 @@ set(PACKAGE_VERSION "${LINPHONE_VERSION}")
|
|||
# Preparing the Linphone SDK bundle.
|
||||
# ==============================================================================
|
||||
|
||||
# Create sdk-temp folder where we can find all needed files (libs, includes etc.)
|
||||
set(LINPHONE_SDK_TMP "${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_NAME}-sdk-tmp")
|
||||
file(REMOVE_RECURSE "${LINPHONE_SDK_TMP}")
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
message(${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")
|
||||
endif()
|
||||
file(RENAME "${CMAKE_CURRENT_BINARY_DIR}/desktop" "${LINPHONE_SDK_TMP}")
|
||||
|
||||
target_link_libraries(${TARGET_NAME} "${LINPHONE_SDK_TMP}/lib/libminizip.dylib")
|
||||
# Generates a zip archive containing the development files.
|
||||
macro (add_sdk_list_file NAME)
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/sdk_content/${NAME}.list.in" "${LINPHONE_SDK_TMP}/${NAME}.list" @ONLY)
|
||||
|
|
@ -88,6 +99,7 @@ add_sdk_list_file(ortp)
|
|||
add_sdk_list_file(ms2)
|
||||
add_sdk_list_file(ms2plugins)
|
||||
add_sdk_list_file(linphone)
|
||||
add_sdk_list_file(linphonecxx)
|
||||
if (WIN32)
|
||||
add_sdk_list_file(sqlite3)
|
||||
add_sdk_list_file(xml2)
|
||||
|
|
@ -148,6 +160,7 @@ elseif (APPLE)
|
|||
COMMAND zip -ry "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}-sdk-${LINPHONE_GIT_REVISION}-mac.zip" . -i "@${EXECUTABLE_NAME}-sdk.list"
|
||||
WORKING_DIRECTORY ${LINPHONE_SDK_TMP}
|
||||
)
|
||||
install()
|
||||
endif ()
|
||||
|
||||
# ==============================================================================
|
||||
|
|
@ -195,43 +208,48 @@ if (WIN32)
|
|||
)
|
||||
endif ()
|
||||
elseif (APPLE)
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/Info.plist.in" "${APPLICATION_NAME}.app/Contents/Info.plist" @ONLY)
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/linphone.icns" "${APPLICATION_NAME}.app/Contents/Resources/${EXECUTABLE_NAME}.icns" COPYONLY)
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/bin/${EXECUTABLE_NAME}" DESTINATION "${APPLICATION_NAME}.app/Contents/MacOS")
|
||||
file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/lib/lib*.dylib")
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/Info.plist.in" "${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/Info.plist" @ONLY)
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/linphone.icns" "${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/Resources/${EXECUTABLE_NAME}.icns" COPYONLY)
|
||||
install(DIRECTORY "${LINPHONE_SDK_TMP}/Frameworks/" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks" USE_SOURCE_PERMISSIONS)
|
||||
install(PROGRAMS "${CMAKE_INSTALL_PREFIX}/bin/${EXECUTABLE_NAME}" DESTINATION "${APPLICATION_NAME}.app/Contents/MacOS")
|
||||
#file(COPY "${LINPHONE_OUTPUT_DIR}/bin/${EXECUTABLE_NAME}" DESTINATION "${APPLICATION_NAME}.app/Contents/MacOS")
|
||||
file(GLOB SHARED_LIBRARIES "${LINPHONE_SDK_TMP}/lib/lib*.dylib")
|
||||
foreach (LIBRARY ${SHARED_LIBRARIES})
|
||||
file(COPY "${LIBRARY}" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks")
|
||||
install(FILES "${LIBRARY}" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks")
|
||||
endforeach ()
|
||||
|
||||
find_program(DEPLOYQT_PROGRAM macdeployqt)
|
||||
if (NOT DEPLOYQT_PROGRAM)
|
||||
message(FATAL_ERROR "Could not find the macdeployqt program. Make sure it is in the PATH.")
|
||||
endif ()
|
||||
execute_process(
|
||||
COMMAND "${DEPLOYQT_PROGRAM}" "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app" "-qmldir=${LINPHONE_QML_DIR}" "-verbose=2"
|
||||
)
|
||||
|
||||
|
||||
if (EXISTS "${LINPHONE_OUTPUT_DIR}/lib/mediastreamer")
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/lib/mediastreamer" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/lib" USE_SOURCE_PERMISSIONS)
|
||||
endif ()
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/share/Belr/grammars/cpim_grammar" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/belr/grammars/")
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/share/Belr/grammars/vcard_grammar" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/belr/grammars/")
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/share/images" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share" USE_SOURCE_PERMISSIONS)
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/share/sounds" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share" USE_SOURCE_PERMISSIONS)
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/rootca.pem" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}")
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/linphonerc-factory" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}")
|
||||
install(FILES "${LINPHONE_SDK_TMP}/share/Belr/grammars/cpim_grammar" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/belr/grammars/")
|
||||
install(FILES "${LINPHONE_SDK_TMP}/share/Belr/grammars/vcard_grammar" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/belr/grammars/")
|
||||
install(DIRECTORY "${LINPHONE_SDK_TMP}/share/images" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share" USE_SOURCE_PERMISSIONS)
|
||||
install(DIRECTORY "${LINPHONE_SDK_TMP}/share/sounds" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share" USE_SOURCE_PERMISSIONS)
|
||||
install(FILES "${LINPHONE_SDK_TMP}/share/${APPLICATION_NAME}/rootca.pem" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}")
|
||||
install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/linphonerc-factory" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}")
|
||||
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/use-other-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}/assistant")
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/create-app-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}/assistant")
|
||||
file(COPY "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/use-app-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}/assistant")
|
||||
install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/use-other-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}/assistant")
|
||||
install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/create-app-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}/assistant")
|
||||
install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/use-app-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}/assistant")
|
||||
|
||||
file(GLOB SHARED_LIBRARIES "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app/Contents/Frameworks/lib*.dylib")
|
||||
|
||||
foreach (LIBRARY ${SHARED_LIBRARIES})
|
||||
get_filename_component(LIBRARY_FILENAME ${LIBRARY} NAME)
|
||||
message("Changing RPATH of ${LIBRARY_FILENAME} from '${LINPHONE_OUTPUT_DIR}/lib' to '@executable_path/../Frameworks'")
|
||||
execute_process(COMMAND install_name_tool -rpath "${LINPHONE_OUTPUT_DIR}/lib" "@executable_path/../Frameworks" "${LIBRARY}")
|
||||
if(NOT ("${LIBRARY_FILENAME}" STREQUAL "libminizip.dylib"))
|
||||
message("Changing RPATH of ${LIBRARY_FILENAME} from '${LINPHONE_OUTPUT_DIR}/lib' to '@executable_path/../Frameworks'")
|
||||
execute_process(COMMAND install_name_tool -rpath "${LINPHONE_OUTPUT_DIR}/lib" "@executable_path/../Frameworks" "${LIBRARY}")
|
||||
endif()
|
||||
endforeach ()
|
||||
|
||||
install( CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} ${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app -qmldir=${LINPHONE_QML_DIR} -verbose=2)" )
|
||||
|
||||
if (LINPHONE_BUILDER_SIGNING_IDENTITY)
|
||||
file(GLOB FRAMEWORKS_NAMES "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app/Contents/Frameworks/*")
|
||||
foreach (FRAMEWORK ${FRAMEWORKS_NAMES})
|
||||
|
|
@ -246,11 +264,10 @@ elseif (APPLE)
|
|||
endforeach ()
|
||||
execute_process(COMMAND "codesign" "--verbose" "-s" "${LINPHONE_BUILDER_SIGNING_IDENTITY}" "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app")
|
||||
endif ()
|
||||
# install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app" DESTINATION "." USE_SOURCE_PERMISSIONS)
|
||||
|
||||
install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app" DESTINATION "." USE_SOURCE_PERMISSIONS)
|
||||
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/packaging.cmake.in" "packaging.cmake" @ONLY)
|
||||
install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/packaging.cmake")
|
||||
# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/packaging.cmake.in" "packaging.cmake" @ONLY)
|
||||
# install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/packaging.cmake")
|
||||
endif ()
|
||||
|
||||
if (MSVC)
|
||||
|
|
@ -278,24 +295,24 @@ endif ()
|
|||
# CPack.
|
||||
# ==============================================================================
|
||||
|
||||
set(CPACK_PACKAGE_NAME "${APPLICATION_NAME}")
|
||||
set(CPACK_PACKAGE_VENDOR "${APPLICATION_VENDOR}")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR ${LINPHONE_MAJOR_VERSION})
|
||||
set(CPACK_PACKAGE_VERSION_MINOR ${LINPHONE_MINOR_VERSION})
|
||||
if (LINPHONE_MICRO_VERSION)
|
||||
set(CPACK_PACKAGE_VERSION_PATCH ${LINPHONE_MICRO_VERSION})
|
||||
endif ()
|
||||
set(CPACK_PACKAGE_EXECUTABLES "${EXECUTABLE_NAME};${APPLICATION_NAME}")
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${APPLICATION_NAME}")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "${LINPHONE_DESKTOP_DIR}/LICENSE.txt")
|
||||
#set(CPACK_PACKAGE_NAME "${APPLICATION_NAME}")
|
||||
#set(CPACK_PACKAGE_VENDOR "${APPLICATION_VENDOR}")
|
||||
#set(CPACK_PACKAGE_VERSION_MAJOR ${LINPHONE_MAJOR_VERSION})
|
||||
#set(CPACK_PACKAGE_VERSION_MINOR ${LINPHONE_MINOR_VERSION})
|
||||
#if (LINPHONE_MICRO_VERSION)
|
||||
# set(CPACK_PACKAGE_VERSION_PATCH ${LINPHONE_MICRO_VERSION})
|
||||
#endif ()
|
||||
#set(CPACK_PACKAGE_EXECUTABLES "${EXECUTABLE_NAME};${APPLICATION_NAME}")
|
||||
#set(CPACK_PACKAGE_INSTALL_DIRECTORY "${APPLICATION_NAME}")
|
||||
#set(CPACK_RESOURCE_FILE_LICENSE "${LINPHONE_DESKTOP_DIR}/LICENSE.txt")
|
||||
|
||||
if (APPLE)
|
||||
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${LINPHONE_GIT_REVISION}-mac")
|
||||
set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/macos/background_dmg.jpg")
|
||||
#if (APPLE)
|
||||
# set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${LINPHONE_GIT_REVISION}-mac")
|
||||
# set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/macos/background_dmg.jpg")
|
||||
|
||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/linphone_dmg.scpt.in" "${CMAKE_CURRENT_BINARY_DIR}/linphone_dmg.scpt" @ONLY)
|
||||
set(CPACK_DMG_DS_STORE_SETUP_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/linphone_dmg.scpt")
|
||||
endif ()
|
||||
# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/linphone_dmg.scpt.in" "${CMAKE_CURRENT_BINARY_DIR}/linphone_dmg.scpt" @ONLY)
|
||||
# set(CPACK_DMG_DS_STORE_SETUP_SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/linphone_dmg.scpt")
|
||||
#endif ()
|
||||
|
||||
if (WIN32)
|
||||
set(CPACK_GENERATOR "NSIS")
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@
|
|||
<key>CFBundleVersion</key>
|
||||
<string>@PACKAGE_VERSION@</string>
|
||||
<key>NSHumanReadableCopyright</key>
|
||||
<string>Copyright 2011-2018 @APPLICATION_VENDOR@</string>
|
||||
<string>Copyright 2011-2020 @APPLICATION_VENDOR@</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>@CMAKE_OSX_DEPLOYMENT_TARGET@</string>
|
||||
<key>NSAppSleepDisabled</key>
|
||||
|
|
@ -50,5 +50,7 @@
|
|||
<string>NSApplication</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<string>True</string>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>Streaming Video between devices</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,4 @@
|
|||
@LIBDIR@/@LIBPREFIX@linphone*.@LIBEXT@
|
||||
include/linphone++/*
|
||||
share/doc/linphoneCxx-*
|
||||
share/LinphoneCxx/cmake/*
|
||||
|
|
@ -404,7 +404,6 @@
|
|||
<file>ui/views/App/Calls/IncomingCall.qml</file>
|
||||
<file>ui/views/App/Calls/OutgoingCall.qml</file>
|
||||
<file>ui/views/App/Calls/ZrtpTokenAuthentication.qml</file>
|
||||
<file>ui/views/App/Main/+5.9/MainWindowMenuBar.qml</file>
|
||||
<file>ui/views/App/Main/Assistant/ActivateAppSipAccountWithEmail.qml</file>
|
||||
<file>ui/views/App/Main/Assistant/ActivateAppSipAccountWithPhoneNumber.qml</file>
|
||||
<file>ui/views/App/Main/Assistant/AssistantAbstractView.qml</file>
|
||||
|
|
@ -430,7 +429,6 @@
|
|||
<file>ui/views/App/Main/Dialogs/ManageAccounts.qml</file>
|
||||
<file>ui/views/App/Main/Home.qml</file>
|
||||
<file>ui/views/App/Main/InviteFriends.qml</file>
|
||||
<file>ui/views/App/Main/+mac/MainWindowMenuBar.qml</file>
|
||||
<file>ui/views/App/Main/MainWindow.js</file>
|
||||
<file>ui/views/App/Main/MainWindowMenuBar.qml</file>
|
||||
<file>ui/views/App/Main/MainWindow.qml</file>
|
||||
|
|
@ -479,5 +477,6 @@
|
|||
<file>ui/views/App/Styles/Settings/SettingsAudioStyle.qml</file>
|
||||
<file>ui/views/App/Styles/Settings/SettingsWindowStyle.qml</file>
|
||||
<file>assets/images/linphone_logo.svg</file>
|
||||
<file>ui/views/App/Main/MainWindowTopMenuBar.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@
|
|||
#include "translator/DefaultTranslator.hpp"
|
||||
#include "utils/LinphoneUtils.hpp"
|
||||
#include "utils/Utils.hpp"
|
||||
#include "components/other/desktop-tools/DesktopTools.hpp"
|
||||
|
||||
// =============================================================================
|
||||
|
||||
|
|
@ -170,6 +171,9 @@ static inline shared_ptr<linphone::Config> getConfigIfExists (const QCommandLine
|
|||
// -----------------------------------------------------------------------------
|
||||
|
||||
App::App (int &argc, char *argv[]) : SingleApplication(argc, argv, true, Mode::User | Mode::ExcludeAppPath | Mode::ExcludeAppVersion) {
|
||||
|
||||
connect(this, SIGNAL(applicationStateChanged(Qt::ApplicationState)), this, SLOT(stateChanged(Qt::ApplicationState)));
|
||||
|
||||
setWindowIcon(QIcon(LinphoneUtils::WindowIconPath));
|
||||
|
||||
createParser();
|
||||
|
|
@ -402,11 +406,12 @@ void App::smartShowWindow (QQuickWindow *window) {
|
|||
}
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
bool App::hasFocus () const {
|
||||
return getMainWindow()->isActive() || (mCallsWindow && mCallsWindow->isActive());
|
||||
}
|
||||
|
||||
void App::stateChanged(Qt::ApplicationState pState) {
|
||||
DesktopTools::applicationStateChanged(pState);
|
||||
}
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
void App::createParser () {
|
||||
|
|
|
|||
|
|
@ -103,6 +103,9 @@ public:
|
|||
|
||||
Q_INVOKABLE static void smartShowWindow (QQuickWindow *window);
|
||||
|
||||
public slots:
|
||||
void stateChanged(Qt::ApplicationState);
|
||||
|
||||
signals:
|
||||
void configLocaleChanged (const QString &locale);
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@ public:
|
|||
bool getScreenSaverStatus () const;
|
||||
void setScreenSaverStatus (bool status);
|
||||
|
||||
static void applicationStateChanged(Qt::ApplicationState){};
|
||||
|
||||
signals:
|
||||
void screenSaverStatusChanged (bool status);
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@
|
|||
#define DESKTOP_TOOLS_MAC_OS_H_
|
||||
|
||||
#include <QObject>
|
||||
|
||||
// =============================================================================
|
||||
|
||||
class DesktopTools : public QObject {
|
||||
|
|
@ -39,6 +38,8 @@ public:
|
|||
bool getScreenSaverStatus () const;
|
||||
void setScreenSaverStatus (bool status);
|
||||
|
||||
static void applicationStateChanged(Qt::ApplicationState currentState);
|
||||
|
||||
signals:
|
||||
void screenSaverStatusChanged (bool status);
|
||||
|
||||
|
|
|
|||
|
|
@ -39,6 +39,8 @@ public:
|
|||
bool getScreenSaverStatus () const;
|
||||
void setScreenSaverStatus (bool status);
|
||||
|
||||
static void applicationStateChanged(Qt::ApplicationState){};
|
||||
|
||||
signals:
|
||||
void screenSaverStatusChanged (bool status);
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,20 @@
|
|||
#include "../DesktopToolsMacOs.hpp"
|
||||
#import <Foundation/NSString.h>
|
||||
#import <Foundation/NSProcessInfo.h>
|
||||
|
||||
// Store a unique global instance of Activity to avoid App Nap of MacOs
|
||||
static id g_backgroundActivity =0;
|
||||
|
||||
void DesktopTools::applicationStateChanged(Qt::ApplicationState p_currentState)
|
||||
{
|
||||
if( p_currentState == Qt::ApplicationActive && g_backgroundActivity != 0 )
|
||||
{// Entering Foreground
|
||||
[[NSProcessInfo processInfo] endActivity:g_backgroundActivity];
|
||||
[g_backgroundActivity release];
|
||||
g_backgroundActivity = 0;
|
||||
}else if( g_backgroundActivity == 0 )
|
||||
{// Doesn't begin activity if it is already started
|
||||
g_backgroundActivity = [[NSProcessInfo processInfo] beginActivityWithOptions:NSActivityUserInitiatedAllowingIdleSystemSleep reason:@"Linphone : Continue to receive requests while in Background"];
|
||||
[g_backgroundActivity retain];
|
||||
}
|
||||
}
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
import QtQuick 2.7
|
||||
|
||||
// Experimental.
|
||||
import Qt.labs.platform 1.0
|
||||
|
||||
import Linphone 1.0
|
||||
|
||||
// =============================================================================
|
||||
|
||||
Item {
|
||||
function open () {
|
||||
menu.open()
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Shortcuts.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
Shortcut {
|
||||
id: settingsShortcut
|
||||
|
||||
sequence: 'Ctrl+P'
|
||||
|
||||
onActivated: App.smartShowWindow(App.getSettingsWindow())
|
||||
}
|
||||
|
||||
Shortcut {
|
||||
id: quitShortcut
|
||||
|
||||
context: Qt.ApplicationShortcut
|
||||
sequence: StandardKey.Quit
|
||||
|
||||
onActivated: Qt.quit()
|
||||
}
|
||||
|
||||
Shortcut {
|
||||
id: aboutShortcut
|
||||
|
||||
sequence: StandardKey.HelpContents
|
||||
|
||||
onActivated: {
|
||||
window.detachVirtualWindow()
|
||||
window.attachVirtualWindow(Qt.resolvedUrl('Dialogs/About.qml'))
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Menu.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
MenuBar {
|
||||
Menu {
|
||||
id: menu
|
||||
|
||||
MenuItem {
|
||||
role: MenuItem.PreferencesRole
|
||||
shortcut: settingsShortcut.sequence
|
||||
text: qsTr('settings')
|
||||
|
||||
onTriggered: settingsShortcut.onActivated()
|
||||
}
|
||||
|
||||
MenuItem {
|
||||
role: MenuItem.AboutRole
|
||||
text: qsTr('about')
|
||||
|
||||
onTriggered: aboutShortcut.onActivated()
|
||||
}
|
||||
|
||||
MenuItem {
|
||||
role: MenuItem.QuitRole
|
||||
shortcut: quitShortcut.sequence
|
||||
text: qsTr('quit')
|
||||
|
||||
onTriggered: quitShortcut.onActivated()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.2
|
||||
import QtQuick.Layouts 1.3
|
||||
import Qt.labs.platform 1.0
|
||||
|
||||
import Common 1.0
|
||||
import Linphone 1.0
|
||||
|
|
@ -192,14 +193,14 @@ ApplicationWindow {
|
|||
visible: Qt.platform.os !== 'osx'
|
||||
|
||||
onClicked: menuBar.open()
|
||||
|
||||
MainWindowMenuBar {
|
||||
id: menuBar
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MainWindowTopMenuBar{}
|
||||
// -----------------------------------------------------------------------
|
||||
// Content.
|
||||
// -----------------------------------------------------------------------
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import QtQuick 2.7
|
||||
import QtQuick.Controls 2.3
|
||||
import Qt.labs.platform 1.0
|
||||
|
||||
import Linphone 1.0
|
||||
|
||||
|
|
@ -48,6 +49,7 @@ Item {
|
|||
|
||||
Menu {
|
||||
id: menu
|
||||
title: qsTr('settings')
|
||||
|
||||
MenuItem {
|
||||
text: qsTr('settings')
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
import QtQuick 2.7
|
||||
|
||||
// Experimental.
|
||||
import QtQuick.Controls 2.3
|
||||
import Qt.labs.platform 1.0
|
||||
|
||||
import Linphone 1.0
|
||||
|
||||
// =============================================================================
|
||||
|
||||
Item {
|
||||
MenuBar {
|
||||
function open () {
|
||||
menu.open()
|
||||
}
|
||||
|
|
@ -48,32 +47,26 @@ Item {
|
|||
// Menu.
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
MenuBar {
|
||||
Menu {
|
||||
id: menu
|
||||
Menu {
|
||||
id: menu
|
||||
title: qsTr('settings')
|
||||
|
||||
MenuItem {
|
||||
role: MenuItem.PreferencesRole
|
||||
shortcut: settingsShortcut.sequence
|
||||
text: qsTr('settings')
|
||||
MenuItem {
|
||||
text: qsTr('settings')
|
||||
|
||||
onTriggered: settingsShortcut.onActivated()
|
||||
}
|
||||
onTriggered: settingsShortcut.onActivated()
|
||||
}
|
||||
|
||||
MenuItem {
|
||||
role: MenuItem.AboutRole
|
||||
text: qsTr('about')
|
||||
MenuItem {
|
||||
text: qsTr('about')
|
||||
|
||||
onTriggered: aboutShortcut.onActivated()
|
||||
}
|
||||
onTriggered: aboutShortcut.onActivated()
|
||||
}
|
||||
|
||||
MenuItem {
|
||||
role: MenuItem.QuitRole
|
||||
shortcut: quitShortcut.sequence
|
||||
text: qsTr('quit')
|
||||
MenuItem {
|
||||
text: qsTr('quit')
|
||||
|
||||
onTriggered: quitShortcut.onActivated()
|
||||
}
|
||||
onTriggered: quitShortcut.onActivated()
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Reference in a new issue