Revert RUNTIME_OUTPUT_DIRECTORY to binary dir because of conflict with CMAKE_PREFIX_PATH.

Install rootca file if enabled.
Embed assistant files in qrc.
Fix mac build to respect target OSX.
This commit is contained in:
Julien Wadel 2023-10-11 16:42:56 +02:00
parent c951ef647a
commit 3c3473112d
6 changed files with 32 additions and 16 deletions

View file

@ -44,7 +44,7 @@ project(linphoneqt)
include(GNUInstallDirs) include(GNUInstallDirs)
include(CheckCXXCompilerFlag) include(CheckCXXCompilerFlag)
#include(linphone-app/application_info.cmake) include(Linphone/application_info.cmake)
set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD 17)
if(LINPHONEAPP_INSTALL_PREFIX) if(LINPHONEAPP_INSTALL_PREFIX)
@ -66,7 +66,7 @@ if( APPLE )
set(CMAKE_INSTALL_DATAROOTDIR "${APPLICATION_NAME}.app/Contents/Resources/share") set(CMAKE_INSTALL_DATAROOTDIR "${APPLICATION_NAME}.app/Contents/Resources/share")
if( NOT CMAKE_OSX_DEPLOYMENT_TARGET) if( NOT CMAKE_OSX_DEPLOYMENT_TARGET)
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.9" CACHE STRING "Minimum OS X deployment version") set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15")#Qt: 'path' is unavailable: introduced in macOS 10.15
endif() endif()
if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm64")# TODO: add universal build if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "arm64")# TODO: add universal build
set(LINPHONESDK_MACOS_ARCHS "x86_64" CACHE STRING "MacOS architectures to build for: comma-separated list of values in [x86_64]") set(LINPHONESDK_MACOS_ARCHS "x86_64" CACHE STRING "MacOS architectures to build for: comma-separated list of values in [x86_64]")
@ -80,7 +80,6 @@ elseif(WIN32)
else() else()
endif() endif()
if(NOT LINPHONE_OUTPUT_DIR)# set this variable only if you don't build the module if(NOT LINPHONE_OUTPUT_DIR)# set this variable only if you don't build the module
set(LINPHONE_OUTPUT_DIR "${CMAKE_INSTALL_PREFIX}")# Cannot be different from the current CMAKE_INSTALL_PREFIX set(LINPHONE_OUTPUT_DIR "${CMAKE_INSTALL_PREFIX}")# Cannot be different from the current CMAKE_INSTALL_PREFIX
endif() endif()

View file

@ -67,6 +67,7 @@ endif()
set(_LINPHONEAPP_SOURCES main.cpp) set(_LINPHONEAPP_SOURCES main.cpp)
set(_LINPHONEAPP_QML_FILES) set(_LINPHONEAPP_QML_FILES)
set(_LINPHONEAPP_RC_FILES)
add_subdirectory(data) add_subdirectory(data)
add_subdirectory(tool) add_subdirectory(tool)
@ -85,6 +86,10 @@ qt6_add_qml_module(Linphone
QML_FILES ${_LINPHONEAPP_QML_FILES} QML_FILES ${_LINPHONEAPP_QML_FILES}
) )
qt_add_resources(Linphone
PREFIX "/"
FILES ${_LINPHONEAPP_RC_FILES}
)
################################################################ ################################################################
# TARGETS LINKS # TARGETS LINKS
################################################################ ################################################################
@ -96,10 +101,10 @@ set_target_properties(${TARGET_NAME} PROPERTIES
MACOSX_BUNDLE TRUE MACOSX_BUNDLE TRUE
WIN32_EXECUTABLE TRUE WIN32_EXECUTABLE TRUE
OUTPUT_NAME "${EXECUTABLE_NAME}" OUTPUT_NAME "${EXECUTABLE_NAME}"
# Added for Qt to set the correct path on run configurations. ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}" RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}"
) )
if(MSVC) if(MSVC)
set_target_properties(${TARGET_NAME} PROPERTIES PDB_NAME "${EXECUTABLE_NAME}_app") set_target_properties(${TARGET_NAME} PROPERTIES PDB_NAME "${EXECUTABLE_NAME}_app")
@ -121,8 +126,11 @@ endforeach()
install(TARGETS ${TARGET_NAME} install(TARGETS ${TARGET_NAME}
BUNDLE DESTINATION . BUNDLE DESTINATION .
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/data/assistant" if(ENABLE_APP_PACKAGE_ROOTCA)
DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}" install(FILES "${LINPHONE_OUTPUT_DIR}/share/linphone/rootca.pem" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}")
USE_SOURCE_PERMISSIONS) endif()

View file

@ -190,7 +190,7 @@ QString Paths::getAppLocalDirPath() {
} }
QString Paths::getAssistantConfigDirPath() { QString Paths::getAssistantConfigDirPath() {
return getReadableDirPath(getAppAssistantConfigDirPath()); return "://data/assistant/";
} }
QString Paths::getAvatarsDirPath() { QString Paths::getAvatarsDirPath() {

View file

@ -0,0 +1,6 @@
list(APPEND _LINPHONEAPP_RC_FILES data/assistant/use-app-sip-account.rc
data/assistant/create-app-sip-account.rc
data/assistant/use-other-sip-account.rc
)
set(_LINPHONEAPP_RC_FILES ${_LINPHONEAPP_RC_FILES} PARENT_SCOPE)

View file

@ -21,6 +21,7 @@
#include "AccountManager.hpp" #include "AccountManager.hpp"
#include <QDebug> #include <QDebug>
#include <QTemporaryFile>
#include "core/path/Paths.hpp" #include "core/path/Paths.hpp"
#include "model/core/CoreModel.hpp" #include "model/core/CoreModel.hpp"
@ -31,9 +32,11 @@ AccountManager::AccountManager(QObject *parent) : QObject(parent) {
std::shared_ptr<linphone::Account> AccountManager::createAccount(const QString &assistantFile) { std::shared_ptr<linphone::Account> AccountManager::createAccount(const QString &assistantFile) {
auto core = CoreModel::getInstance()->getCore(); auto core = CoreModel::getInstance()->getCore();
QString assistantPath = Paths::getAssistantConfigDirPath() + assistantFile; QString assistantPath = "://data/assistant/" + assistantFile;
qInfo() << QStringLiteral("[AccountManager] Set config on assistant: `%1`.").arg(assistantPath); qInfo() << QStringLiteral("[AccountManager] Set config on assistant: `%1`.").arg(assistantPath);
core->getConfig()->loadFromXmlFile(Utils::appStringToCoreString(assistantPath)); QFile resource(assistantPath);
auto file = QTemporaryFile::createNativeFile(resource);
core->getConfig()->loadFromXmlFile(Utils::appStringToCoreString(file->fileName()));
return core->createAccount(core->createAccountParams()); return core->createAccount(core->createAccountParams());
} }

View file

@ -40,7 +40,7 @@ set(_MACOS_INSTALL_DIR "${APPLICATION_OUTPUT_DIR}/${_MACOS_INSTALL_RELATIVE_DIR}
#linphone_sdk_get_inherited_cmake_args(_CMAKE_CONFIGURE_ARGS _CMAKE_BUILD_ARGS) #linphone_sdk_get_inherited_cmake_args(_CMAKE_CONFIGURE_ARGS _CMAKE_BUILD_ARGS)
#linphone_sdk_get_enable_cmake_args(_MACOS_CMAKE_ARGS) #linphone_sdk_get_enable_cmake_args(_MACOS_CMAKE_ARGS)
set(_MACOS_CMAKE_ARGS -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET})
set(_MACOS_TARGETS) set(_MACOS_TARGETS)
foreach(_MACOS_ARCH IN LISTS _MACOS_ARCHS) foreach(_MACOS_ARCH IN LISTS _MACOS_ARCHS)
set(_TARGET_NAME ${SUB_TARGET}-${_MACOS_ARCH}) # app_macos-x86_64 set(_TARGET_NAME ${SUB_TARGET}-${_MACOS_ARCH}) # app_macos-x86_64
@ -48,7 +48,7 @@ foreach(_MACOS_ARCH IN LISTS _MACOS_ARCHS)
set(_MACOS_ARCH_INSTALL_DIR "${_MACOS_INSTALL_DIR}-${_MACOS_ARCH}") # build/OUTPUT/Linphone/macos-x86_64 set(_MACOS_ARCH_INSTALL_DIR "${_MACOS_INSTALL_DIR}-${_MACOS_ARCH}") # build/OUTPUT/Linphone/macos-x86_64
add_custom_target(${_TARGET_NAME} ALL add_custom_target(${_TARGET_NAME} ALL
COMMAND ${CMAKE_COMMAND} -B ${_MACOS_ARCH_BINARY_DIR} -DMONO_ARCH=${_MACOS_ARCH} ${USER_ARGS} ${OPTION_LIST} ${_MACOS_CMAKE_ARGS} -DLINPHONEAPP_INSTALL_PREFIX=${_MACOS_ARCH_INSTALL_DIR} -DCMAKE_TOOLCHAIN_FILE=${PROJECT_SOURCE_DIR}/cmake/toolchains/toolchain-mac-x86_64.cmake -DLINPHONEAPP_BUILD_TYPE="Normal" COMMAND ${CMAKE_COMMAND} -B ${_MACOS_ARCH_BINARY_DIR} -DMONO_ARCH=${_MACOS_ARCH} ${USER_ARGS} ${OPTION_LIST} ${_MACOS_CMAKE_ARGS} -DLINPHONEAPP_INSTALL_PREFIX=${_MACOS_ARCH_INSTALL_DIR} -DCMAKE_OSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} -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} COMMAND ${CMAKE_COMMAND} --build ${_MACOS_ARCH_BINARY_DIR} --target install ${_CMAKE_BUILD_ARGS}
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
COMMENT "Building Linphone APP for MacOS ${_MACOS_ARCH}" COMMENT "Building Linphone APP for MacOS ${_MACOS_ARCH}"