mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-02-07 15:08:24 +00:00
Fix mac build.
Move call history to correct items after loading new items. Display menu options on Mac. Update SDK master.
This commit is contained in:
parent
4446a677fe
commit
31011b2b4c
6 changed files with 147 additions and 79 deletions
|
|
@ -31,7 +31,7 @@
|
|||
CMAKE_TOOLCHAIN_FILE: linphone-sdk/cmake/toolchains/toolchain-mac-x86_64.cmake
|
||||
artifacts:
|
||||
paths:
|
||||
- build/OUTPUT
|
||||
- build/OUTPUT/linphone-app/macos
|
||||
when: always
|
||||
expire_in: 1 week
|
||||
|
||||
|
|
@ -108,7 +108,7 @@ job-macosx-makefile-package:
|
|||
artifacts:
|
||||
when: always
|
||||
paths:
|
||||
- build/OUTPUT/*
|
||||
- build/OUTPUT/linphone-app/macos/*
|
||||
when: always
|
||||
expire_in: 1 week
|
||||
|
||||
|
|
@ -124,7 +124,7 @@ job-macosx-codesigning:
|
|||
- $DEPLOY_MACOSX
|
||||
script:
|
||||
- cd build
|
||||
- codesign --options runtime,library --verbose -s "$MACOS_SIGNING_IDENTITY" OUTPUT/Packages/*.dmg
|
||||
- codesign --options runtime,library --verbose -s "$MACOS_SIGNING_IDENTITY" OUTPUT/linphone-app/macos/Packages/*.dmg
|
||||
- ./../tools/app_notarization.sh
|
||||
artifacts:
|
||||
when: always
|
||||
|
|
@ -147,11 +147,11 @@ job-macosx-makefile-deploy:
|
|||
- $NIGHTLY_MASTER
|
||||
- $DEPLOY_MACOSX
|
||||
script:
|
||||
- rsync -rlv --ignore-existing build/OUTPUT/Packages/Linphone*.dmg $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM/$APP_FOLDER
|
||||
- rsync -rlv --ignore-existing build/OUTPUT/linphone-app/macos/Packages/Linphone*.dmg $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM/$APP_FOLDER
|
||||
- |-
|
||||
if [[ $MAKE_RELEASE_FILE_URL != "" ]]; then
|
||||
rsync -rlv build/OUTPUT/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM
|
||||
rsync -rlv build/OUTPUT/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM
|
||||
rsync -rlv build/OUTPUT/linphone-app/macos/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM
|
||||
rsync -rlv build/OUTPUT/linphone-app/macos/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM
|
||||
fi
|
||||
|
||||
|
||||
|
|
@ -164,5 +164,5 @@ job-macosx-makefile-plugins-deploy:
|
|||
variables:
|
||||
- $DEPLOY_PLUGINS
|
||||
script:
|
||||
- rsync -rlv --ignore-existing build/OUTPUT/plugins/app/*.dylib $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM/$APP_FOLDER/plugins
|
||||
- rsync -rlv --ignore-existing build/OUTPUT/linphone-app/macos/plugins/app/*.dylib $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM/$APP_FOLDER/plugins
|
||||
|
||||
|
|
|
|||
102
cmake/GenerateAppMacos.cmake
Normal file
102
cmake/GenerateAppMacos.cmake
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
################################################################################
|
||||
# GenerateFrameworks.cmake
|
||||
# Copyright (c) 2021-2023 Belledonne Communications SARL.
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
cmake_policy(SET CMP0009 NEW) # Do not follow symlinks when doing file(GLOB_RECURSE)
|
||||
|
||||
include("${LINPHONESDK_DIR}/cmake/LinphoneSdkUtils.cmake")
|
||||
|
||||
|
||||
linphone_sdk_convert_comma_separated_list_to_cmake_list("${LINPHONEAPP_MACOS_ARCHS}" _MACOS_ARCHS)
|
||||
|
||||
|
||||
# Create the desktop directory that will contain the merged content of all architectures
|
||||
execute_process(
|
||||
COMMAND "${CMAKE_COMMAND}" "-E" "remove_directory" "${CMAKE_INSTALL_PREFIX}"
|
||||
COMMAND "${CMAKE_COMMAND}" "-E" "make_directory" "${CMAKE_INSTALL_PREFIX}"
|
||||
)
|
||||
|
||||
# Copy and merge content of all architectures in the desktop directory
|
||||
list(GET _MACOS_ARCHS 0 _FIRST_ARCH)
|
||||
execute_process(# Do not use copy_directory because of symlinks
|
||||
COMMAND "cp" "-R" "${LINPHONEAPP_NAME}/${LINPHONEAPP_PLATFORM}-${_FIRST_ARCH}/" "${CMAKE_INSTALL_PREFIX}"
|
||||
WORKING_DIRECTORY "${LINPHONEAPP_BUILD_DIR}"
|
||||
)
|
||||
|
||||
#message(FATAL_ERROR "${LINPHONEAPP_NAME}/${LINPHONEAPP_PLATFORM}-${_FIRST_ARCH}/ == ${CMAKE_INSTALL_PREFIX} == ${LINPHONEAPP_BUILD_DIR}")
|
||||
#if(NOT ENABLE_FAT_BINARY)
|
||||
# execute_process(
|
||||
# COMMAND "${CMAKE_COMMAND}" "-E" "remove_directory" "${CMAKE_INSTALL_PREFIX}/Frameworks"
|
||||
# COMMAND "${CMAKE_COMMAND}" "-E" "make_directory" "${CMAKE_INSTALL_PREFIX}/XCFrameworks"
|
||||
# )
|
||||
#endif()
|
||||
|
||||
##### MIX
|
||||
# Get all files in output
|
||||
file(GLOB_RECURSE _BINARIES RELATIVE "${LINPHONEAPP_BUILD_DIR}/${LINPHONEAPP_NAME}/${LINPHONEAPP_PLATFORM}-${_FIRST_ARCH}/" "${LINPHONEAPP_BUILD_DIR}/${LINPHONEAPP_NAME}/${LINPHONEAPP_PLATFORM}-${_FIRST_ARCH}/*")
|
||||
|
||||
if(NOT ENABLE_FAT_BINARY)
|
||||
# Remove all .framework inputs from the result
|
||||
list(FILTER _BINARIES EXCLUDE REGEX ".*\\.framework.*")
|
||||
endif()
|
||||
|
||||
foreach(_FILE IN LISTS ${_BINARIES})
|
||||
get_filename_component(ABSOLUTE_FILE "${LINPHONEAPP_NAME}/${LINPHONEAPP_PLATFORM}-${_FIRST_ARCH}/${_FILE}" ABSOLUTE)
|
||||
if(NOT IS_SYMLINK ${ABSOLUTE_FILE})
|
||||
# Check if lipo can detect an architecture
|
||||
execute_process(COMMAND lipo -archs "${LINPHONEAPP_NAME}/${LINPHONEAPP_PLATFORM}-${_FIRST_ARCH}/${_FILE}"
|
||||
OUTPUT_VARIABLE FILE_ARCHITECTURE
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
WORKING_DIRECTORY "${LINPHONEAPP_BUILD_DIR}"
|
||||
ERROR_QUIET
|
||||
)
|
||||
if(NOT "${FILE_ARCHITECTURE}" STREQUAL "")
|
||||
# There is at least one architecture : Use this candidate to mix with another architecture
|
||||
set(_ALL_ARCH_FILES)
|
||||
foreach(_ARCH IN LISTS ${_ARCHS})
|
||||
list(APPEND _ALL_ARCH_FILES "${LINPHONEAPP_NAME}/${LINPHONEAPP_PLATFORM}-${_ARCH}/${_FILE}")
|
||||
endforeach()
|
||||
string(REPLACE ";" " " _ARCH_STRING "${_ARCHS}")
|
||||
message(STATUS "Mixing ${_FILE} for archs [${_ARCH_STRING}]")
|
||||
execute_process(
|
||||
COMMAND "lipo" "-create" "-output" "${CMAKE_INSTALL_PREFIX}/${_FILE}" ${_ALL_ARCH_FILES}
|
||||
WORKING_DIRECTORY "${LINPHONEAPP_BUILD_DIR}"
|
||||
)
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
#[[
|
||||
if(NOT ENABLE_FAT_BINARY)
|
||||
# Generate XCFrameworks
|
||||
file(GLOB _FRAMEWORKS "${LINPHONEAPP_BUILD_DIR}/${LINPHONEAPP_NAME}/${LINPHONEAPP_PLATFORM}-${_FIRST_ARCH}/Frameworks/*.framework")
|
||||
foreach(_FRAMEWORK IN LISTS _FRAMEWORKS)
|
||||
get_filename_component(_FRAMEWORK_NAME "${_FRAMEWORK}" NAME_WE)
|
||||
set(_ALL_ARCH_FRAMEWORKS)
|
||||
foreach(_ARCH IN LISTS _MACOS_ARCHS)
|
||||
list(APPEND _ALL_ARCH_FRAMEWORKS "-framework")
|
||||
list(APPEND _ALL_ARCH_FRAMEWORKS "${LINPHONEAPP_BUILD_DIR}/${LINPHONEAPP_NAME}/${LINPHONEAPP_PLATFORM}-${_ARCH}/Frameworks/${_FRAMEWORK_NAME}.framework")
|
||||
endforeach()
|
||||
string(REPLACE ";" " " _ARCH_STRING "${_MACOS_ARCHS}")
|
||||
message(STATUS "Creating XCFramework for ${_FRAMEWORK_NAME} for archs [${_ARCH_STRING}]")
|
||||
execute_process(
|
||||
COMMAND "xcodebuild" "-create-xcframework" "-output" "${CMAKE_INSTALL_PREFIX}/XCFrameworks/${_FRAMEWORK_NAME}.xcframework" ${_ALL_ARCH_FRAMEWORKS}
|
||||
WORKING_DIRECTORY "${LINPHONEAPP_BUILD_DIR}"
|
||||
)
|
||||
endforeach()
|
||||
endif()
|
||||
#]]
|
||||
|
|
@ -26,88 +26,55 @@ option(ENABLE_FAT_BINARY "Enable fat binary generation using lipo." ON)
|
|||
set(_MACOS_ARCHS ${LINPHONEAPP_MACOS_ARCHS})
|
||||
#linphone_sdk_convert_comma_separated_list_to_cmake_list("${LINPHONESDK_MACOS_ARCHS}" _MACOS_ARCHS)
|
||||
|
||||
|
||||
############################################################################
|
||||
# Clean previously generated SDK
|
||||
############################################################################
|
||||
|
||||
#add_custom_target(clean-sdk ALL
|
||||
# COMMAND "${CMAKE_COMMAND}"
|
||||
# "-DLINPHONESDK_DIR=${PROJECT_SOURCE_DIR}"
|
||||
# "-DLINPHONESDK_BUILD_DIR=${PROJECT_BINARY_DIR}"
|
||||
# "-DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX}"
|
||||
# "-P" "${PROJECT_SOURCE_DIR}/cmake/macos/CleanSDK.cmake"
|
||||
# WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
# COMMENT "Cleaning SDK"
|
||||
# USES_TERMINAL
|
||||
#)
|
||||
|
||||
set(LINPHONEAPP_NAME "linphone-app")
|
||||
set(LINPHONEAPP_PLATFORM "macos")
|
||||
string(TOLOWER "${LINPHONEAPP_PLATFORM}" LINPHONEAPP_PLATFORM_LOWER)
|
||||
set(_MACOS_INSTALL_RELATIVE_DIR "${LINPHONEAPP_NAME}/${LINPHONEAPP_PLATFORM_LOWER}")
|
||||
set(_MACOS_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${_MACOS_INSTALL_RELATIVE_DIR}")
|
||||
|
||||
############################################################################
|
||||
# Build each selected architecture
|
||||
############################################################################
|
||||
|
||||
#linphone_sdk_get_inherited_cmake_args(_CMAKE_CONFIGURE_ARGS _CMAKE_BUILD_ARGS)
|
||||
#linphone_sdk_get_enable_cmake_args(_MACOS_CMAKE_ARGS)
|
||||
|
||||
|
||||
#-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}
|
||||
|
||||
|
||||
set(_MACOS_TARGETS)
|
||||
foreach(_MACOS_ARCH IN LISTS _MACOS_ARCHS)
|
||||
set(_MACOS_ARCH_BINARY_DIR "${PROJECT_BINARY_DIR}/app_mac-${_MACOS_ARCH}")
|
||||
set(_MACOS_ARCH_INSTALL_DIR "${PROJECT_BINARY_DIR}/OUTPUT/mac-${_MACOS_ARCH}")
|
||||
add_custom_target(app_mac-${_MACOS_ARCH} ALL
|
||||
COMMAND ${CMAKE_COMMAND} -B ${_MACOS_ARCH_BINARY_DIR} ${USER_ARGS} ${OPTION_LIST} -DCMAKE_INSTALL_PREFIX=${_MACOS_ARCH_INSTALL_DIR} -DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR} -DCMAKE_TOOLCHAIN_FILE=${PROJECT_SOURCE_DIR}/cmake/toolchains/toolchain-mac-x86_64.cmake -DLINPHONEAPP_BUILD_TYPE="Normal"
|
||||
COMMAND ${CMAKE_COMMAND} --build ${_MACOS_ARCH_BINARY_DIR} --target install ${_CMAKE_BUILD_ARGS}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/linphone-app
|
||||
DEPENDS sdk
|
||||
COMMENT "Building Linphone APP for MacOS ${_MACOS_ARCH}"
|
||||
USES_TERMINAL
|
||||
COMMAND_EXPAND_LISTS
|
||||
)
|
||||
list(APPEND _MACOS_TARGETS mac-${_MACOS_ARCH})
|
||||
set(_TARGET_NAME app_macos-${_MACOS_ARCH})
|
||||
set(_MACOS_ARCH_BINARY_DIR "${PROJECT_BINARY_DIR}/${_TARGET_NAME}")
|
||||
#set(_MACOS_ARCH_INSTALL_DIR "${PROJECT_BINARY_DIR}/${LINPHONEAPP_NAME}/mac-${_MACOS_ARCH}")
|
||||
set(_MACOS_ARCH_INSTALL_DIR "${_MACOS_INSTALL_DIR}-${_MACOS_ARCH}")
|
||||
|
||||
add_custom_target(${_TARGET_NAME} ALL
|
||||
COMMAND ${CMAKE_COMMAND} -B ${_MACOS_ARCH_BINARY_DIR} ${USER_ARGS} ${OPTION_LIST} -DCMAKE_INSTALL_PREFIX=${_MACOS_ARCH_INSTALL_DIR} -DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR} -DCMAKE_TOOLCHAIN_FILE=${PROJECT_SOURCE_DIR}/cmake/toolchains/toolchain-mac-x86_64.cmake -DLINPHONEAPP_BUILD_TYPE="Normal"
|
||||
COMMAND ${CMAKE_COMMAND} --build ${_MACOS_ARCH_BINARY_DIR} --target install ${_CMAKE_BUILD_ARGS}
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/linphone-app
|
||||
DEPENDS sdk
|
||||
COMMENT "Building Linphone APP for MacOS ${_MACOS_ARCH}"
|
||||
USES_TERMINAL
|
||||
COMMAND_EXPAND_LISTS
|
||||
)
|
||||
list(APPEND _MACOS_TARGETS ${_TARGET_NAME})
|
||||
endforeach()
|
||||
|
||||
|
||||
############################################################################
|
||||
# Generate the aggregated frameworks
|
||||
# Generate the aggregated apps
|
||||
############################################################################
|
||||
|
||||
#add_custom_target(gen-frameworks ALL
|
||||
# COMMAND "${CMAKE_COMMAND}"
|
||||
# "-DLINPHONESDK_DIR=${PROJECT_SOURCE_DIR}"
|
||||
# "-DLINPHONESDK_BUILD_DIR=${PROJECT_BINARY_DIR}"
|
||||
# "-DLINPHONESDK_MACOS_ARCHS=${LINPHONESDK_MACOS_ARCHS}"
|
||||
# "-DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR}/linphone-sdk/mac"
|
||||
# "-DENABLE_FAT_BINARY=${ENABLE_FAT_BINARY}"
|
||||
# "-P" "${PROJECT_SOURCE_DIR}/cmake/macos/GenerateFrameworks.cmake"
|
||||
# DEPENDS ${_MACOS_TARGETS}
|
||||
# WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
# COMMENT "Aggregating frameworks of all architectures"
|
||||
# USES_TERMINAL
|
||||
#)
|
||||
add_custom_target(gen-apps ALL
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
"-DLINPHONESDK_DIR=${PROJECT_SOURCE_DIR}/linphone-sdk"
|
||||
"-DLINPHONEAPP_BUILD_DIR=${CMAKE_INSTALL_PREFIX}"
|
||||
"-DLINPHONEAPP_MACOS_ARCHS=${LINPHONEAPP_MACOS_ARCHS}"
|
||||
"-DLINPHONEAPP_NAME=${LINPHONEAPP_NAME}"
|
||||
"-DLINPHONEAPP_PLATFORM=${LINPHONEAPP_PLATFORM_LOWER}"
|
||||
"-DCMAKE_INSTALL_PREFIX=${_MACOS_INSTALL_DIR}"
|
||||
"-DENABLE_FAT_BINARY=${ENABLE_FAT_BINARY}"
|
||||
"-P" "${PROJECT_SOURCE_DIR}/cmake/GenerateAppMacos.cmake"
|
||||
DEPENDS ${_MACOS_TARGETS}
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
COMMENT "Aggregating applications of all architectures"
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
||||
|
||||
############################################################################
|
||||
# Generate the SDK
|
||||
############################################################################
|
||||
|
||||
#list(GET _MACOS_ARCHS 0 _FIRST_ARCH)
|
||||
#add_custom_target(sdk ALL
|
||||
# COMMAND "${CMAKE_COMMAND}"
|
||||
# "-DLINPHONESDK_PLATFORM=${LINPHONESDK_PLATFORM}"
|
||||
# "-DLINPHONESDK_DIR=${PROJECT_SOURCE_DIR}"
|
||||
# "-DLINPHONESDK_BUILD_DIR=${PROJECT_BINARY_DIR}"
|
||||
# "-DLINPHONESDK_VERSION=${LINPHONESDK_VERSION}"
|
||||
# "-DLINPHONESDK_ENABLED_FEATURES_FILENAME=${CMAKE_BINARY_DIR}/enabled_features.txt"
|
||||
# "-DLINPHONESDK_MACOS_ARCHS=${LINPHONESDK_MACOS_ARCHS}"
|
||||
# "-DLINPHONESDK_MACOS_BASE_URL=${LINPHONESDK_MACOS_BASE_URL}"
|
||||
# "-DENABLE_FAT_BINARY=${ENABLE_FAT_BINARY}"
|
||||
# "-P" "${PROJECT_SOURCE_DIR}/cmake/macos/GenerateSDK.cmake"
|
||||
# DEPENDS gen-frameworks
|
||||
# WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
# COMMENT "Generating the SDK (zip file and podspec)"
|
||||
# USES_TERMINAL
|
||||
#)
|
||||
|
|
|
|||
|
|
@ -50,7 +50,7 @@ function getComponentFromEntry (historyEntry) {
|
|||
}
|
||||
|
||||
function handleMoreEntriesLoaded (n) {
|
||||
history.positionViewAtIndex(n - 1, QtQuick.ListView.Beginning)
|
||||
history.positionViewAtIndex(history.count - n, QtQuick.ListView.Beginning)
|
||||
history.tryToLoadMoreEntries = false
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -359,7 +359,6 @@ ApplicationWindow {
|
|||
isCustom: true
|
||||
backgroundRadius: 4
|
||||
colorSet: MainWindowStyle.buttons.settingsMenu
|
||||
visible: Qt.platform.os !== 'osx'
|
||||
|
||||
toggled: menuBar.isOpenned
|
||||
onClicked: toggled ? menuBar.close() : menuBar.open()// a bit useless as Menu will depopup on losing focus but this code is kept for giving idea
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit fd870238723c152091426e6554e41e0e59fefe0a
|
||||
Subproject commit 1b6299a81396aabec600071565ad86fc374d1374
|
||||
Loading…
Add table
Reference in a new issue