mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 11:28:07 +00:00
- Add CI and update to new plugin version
- Add plugin exportation - Use Q_DECL_* as attribute - Allow project to build shared library - Split plugin interface into dynamic library - Fix install include folder
This commit is contained in:
parent
5eba9a5ece
commit
39dc65266e
10 changed files with 98 additions and 47 deletions
|
|
@ -75,6 +75,7 @@ job-debian9-makefile-clang:
|
|||
only:
|
||||
variables:
|
||||
- $NIGHTLY_MASTER
|
||||
- $DEPLOY_PLUGINS
|
||||
variables:
|
||||
CMAKE_GENERATOR: Unix Makefiles
|
||||
CC: clang
|
||||
|
|
@ -123,7 +124,6 @@ job-debian9-makefile-clang-package:
|
|||
paths:
|
||||
- build/OUTPUT/Packages/*.AppImage
|
||||
expire_in: 1 week
|
||||
|
||||
|
||||
#################################################
|
||||
# Deploy - Nightly
|
||||
|
|
@ -141,6 +141,18 @@ job-debian9-makefile-clang-deploy:
|
|||
script:
|
||||
- rsync -rlv --ignore-existing build/OUTPUT/Packages/*.AppImage $DEPLOY_SERVER:$APPIMAGE_UPLOAD_DIRECTORY/
|
||||
|
||||
|
||||
job-debian9-makefile-clang-plugins-deploy:
|
||||
stage: deploy
|
||||
tags: [ "deploy" ]
|
||||
dependencies:
|
||||
- job-debian9-makefile-clang
|
||||
only:
|
||||
variables:
|
||||
- $DEPLOY_PLUGINS
|
||||
script:
|
||||
- rsync -rlv --ignore-existing build/OUTPUT/plugins/app/*.so $DEPLOY_SERVER:$APPIMAGE_UPLOAD_DIRECTORY/plugins/
|
||||
|
||||
#################################################
|
||||
# Debug
|
||||
#################################################
|
||||
|
|
|
|||
|
|
@ -51,6 +51,7 @@ job-macosx-makefile:
|
|||
only:
|
||||
variables:
|
||||
- $NIGHTLY_MASTER
|
||||
- $DEPLOY_PLUGINS
|
||||
variables:
|
||||
CMAKE_GENERATOR: Unix Makefiles
|
||||
ADDITIONAL_BUILD_OPTIONS: -j$MAKEFILE_JOBS
|
||||
|
|
@ -118,3 +119,16 @@ job-macosx-makefile-deploy:
|
|||
- $DEPLOY_MACOSX
|
||||
script:
|
||||
- rsync -rlv --ignore-existing build/OUTPUT/Packages/Linphone*.dmg $DEPLOY_SERVER:$MACOSX_UPLOAD_DIRECTORY
|
||||
|
||||
|
||||
job-macosx-makefile-plugins-deploy:
|
||||
stage: deploy
|
||||
tags: [ "macosx-xcode11" ]
|
||||
dependencies:
|
||||
- job-macosx-makefile
|
||||
only:
|
||||
variables:
|
||||
- $DEPLOY_PLUGINS
|
||||
script:
|
||||
- rsync -rlv --ignore-existing build/OUTPUT/plugins/app/*.dylib $DEPLOY_SERVER:$MACOSX_UPLOAD_DIRECTORY/plugins
|
||||
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ job-windows-vs2017:
|
|||
variables:
|
||||
- $NIGHTLY_MASTER
|
||||
- $NIGHTLY_RELEASE
|
||||
- $DEPLOY_PLUGINS
|
||||
before_script:
|
||||
#cache disabled on scheduled builds since we dot not need the fastest build
|
||||
- set "CLCACHE_DISABLE=1"
|
||||
|
|
@ -54,6 +55,9 @@ job-windows-vs2017-scheduled:
|
|||
|
||||
job-windows-vs2017-novideo:
|
||||
extends: .job-windows-vs2017-scheduled
|
||||
except:
|
||||
variables:
|
||||
- $DEPLOY_PLUGINS
|
||||
variables:
|
||||
CMAKE_OPTIONS: -DENABLE_LIME_X3DH=NO -DENABLE_VIDEO=NO
|
||||
|
||||
|
|
@ -75,17 +79,12 @@ job-windows-vs2017-package:
|
|||
script:
|
||||
- *build_all_windows_script
|
||||
- C:\PROGRA~1\Python37\Scripts\cl -s
|
||||
- mkdir "%CI_PROJECT_DIR%/results"
|
||||
- cd OUTPUT
|
||||
- cd Packages
|
||||
- copy /B *.exe "%CI_PROJECT_DIR%/results"
|
||||
artifacts:
|
||||
paths:
|
||||
- results\*
|
||||
- OUTPUT\*
|
||||
when: always
|
||||
expire_in: 1 weeks
|
||||
|
||||
|
||||
|
||||
#################################################
|
||||
# DEPLOY
|
||||
#################################################
|
||||
|
|
@ -100,7 +99,19 @@ job-windows-vs2017-win32-upload:
|
|||
dependencies:
|
||||
- job-windows-vs2017-package
|
||||
script:
|
||||
- scp "results/*.exe" "%DEPLOY_SERVER%:%WINDOWS_UPLOAD_DIRECTORY%"
|
||||
- scp "build/OUTPUT/Packages/*.exe" "%DEPLOY_SERVER%:%WINDOWS_UPLOAD_DIRECTORY%"
|
||||
|
||||
|
||||
job-windows-vs2017-plugins-upload:
|
||||
stage: deploy
|
||||
tags: [ "windows"]
|
||||
only:
|
||||
variables:
|
||||
- $DEPLOY_PLUGINS
|
||||
dependencies:
|
||||
- job-windows-vs2017-scheduled
|
||||
script:
|
||||
- scp "build/OUTPUT/plugins/*.dll" "%DEPLOY_SERVER%:%WINDOWS_UPLOAD_DIRECTORY%/plugins"
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -58,7 +58,7 @@ set(LINPHONE_OUTPUT_DIR "${CMAKE_BINARY_DIR}/linphone-sdk/desktop")
|
|||
|
||||
set(APPLICATION_OUTPUT_DIR "${CMAKE_BINARY_DIR}/OUTPUT")
|
||||
|
||||
set(CMAKE_PREFIX_PATH "${LINPHONE_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR}/include${PREFIX_PATH}")
|
||||
set(CMAKE_PREFIX_PATH "${LINPHONE_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR}/include${PREFIX_PATH};${CMAKE_BINARY_DIR}/linphone-app")
|
||||
string(REPLACE ";" "|" PREFIX_PATH "${CMAKE_PREFIX_PATH}")
|
||||
#set(PREFIX_PATH "${LINPHONE_OUTPUT_DIR}|${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
|
||||
|
||||
|
|
@ -225,6 +225,7 @@ else()
|
|||
add_dependencies(app-library ${APP_DEPENDS})
|
||||
if( ENABLE_BUILD_APP_PLUGINS)
|
||||
add_custom_command(TARGET sdk PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/linphone-app/include/" "${CMAKE_INSTALL_PREFIX}/include/")
|
||||
# set(CMAKE_PREFIX_PATH "${CMAKE_PREFIX_PATH};${CMAKE_BINARY_DIR}/linphone-app")
|
||||
add_subdirectory(${CMAKE_SOURCE_DIR}/plugins "plugins-app")
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
|||
|
|
@ -43,8 +43,9 @@ include(CheckCXXCompilerFlag)
|
|||
|
||||
|
||||
set(TARGET_NAME linphone-qt)
|
||||
|
||||
SET_PROPERTY(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS true)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CMAKE_ENABLE_EXPORTS ON)
|
||||
|
||||
if(UNIX AND NOT APPLE)
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
|
|
@ -53,6 +54,7 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake")
|
|||
list(APPEND CMAKE_MODULE_PATH "${LINPHONE_OUTPUT_DIR}/cmake")
|
||||
|
||||
set(APP_LIBRARY app-library)
|
||||
set(APP_PLUGIN app-plugin)
|
||||
include(application_info.cmake)
|
||||
|
||||
if(WIN32)
|
||||
|
|
@ -165,12 +167,12 @@ set(SOURCES
|
|||
src/utils/MediastreamerUtils.cpp
|
||||
src/utils/QExifImageHeader.cpp
|
||||
src/utils/Utils.cpp
|
||||
src/utils/plugins/PluginDataAPI.cpp
|
||||
src/utils/plugins/PluginNetworkHelper.cpp
|
||||
src/utils/plugins/LinphonePlugin.cpp
|
||||
src/utils/plugins/PluginsManager.cpp
|
||||
|
||||
src/utils/plugins/PluginsManager.cpp
|
||||
)
|
||||
set(PLUGIN_SOURCES src/utils/plugins/PluginDataAPI.cpp
|
||||
src/utils/plugins/PluginNetworkHelper.cpp
|
||||
src/utils/plugins/LinphonePlugin.cpp
|
||||
)
|
||||
|
||||
set(HEADERS
|
||||
src/app/App.hpp
|
||||
|
|
@ -238,10 +240,11 @@ set(HEADERS
|
|||
src/utils/QExifImageHeader.hpp
|
||||
src/utils/Utils.hpp
|
||||
src/utils/plugins/PluginsManager.hpp
|
||||
include/LinphoneApp/PluginDataAPI.hpp
|
||||
include/LinphoneApp/PluginNetworkHelper.hpp
|
||||
include/LinphoneApp/LinphonePlugin.hpp
|
||||
)
|
||||
set(PLUGIN_HEADERS
|
||||
include/LinphoneApp/PluginDataAPI.hpp
|
||||
include/LinphoneApp/PluginNetworkHelper.hpp
|
||||
include/LinphoneApp/LinphonePlugin.hpp)
|
||||
list(APPEND SOURCES include/LinphoneApp/PluginExample.json)
|
||||
set(MAIN_FILE src/app/main.cpp)
|
||||
|
||||
|
|
@ -310,6 +313,8 @@ endfunction ()
|
|||
# Force absolute paths.
|
||||
PREPEND(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/")
|
||||
PREPEND(HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/")
|
||||
PREPEND(PLUGIN_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/")
|
||||
PREPEND(PLUGIN_HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/")
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Compute QML files list.
|
||||
|
|
@ -401,11 +406,12 @@ if(WIN32)
|
|||
endif()
|
||||
|
||||
add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${QML_SOURCES} ${QRC_RESOURCES})
|
||||
add_library(${APP_PLUGIN} SHARED ${PLUGIN_SOURCES} ${PLUGIN_HEADERS})
|
||||
#add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${QML_SOURCES})
|
||||
|
||||
if (WIN32)
|
||||
add_executable(${TARGET_NAME} WIN32 $<TARGET_OBJECTS:${APP_LIBRARY}> ${MAIN_FILE} ${QRC_BIG_RESOURCES} ${RC_FILE})
|
||||
install(TARGETS linphone-qt RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
add_executable(${TARGET_NAME} WIN32 $<TARGET_OBJECTS:${APP_LIBRARY}> $<TARGET_OBJECTS:${APP_PLUGIN}> ${MAIN_FILE} ${QRC_BIG_RESOURCES} ${RC_FILE})
|
||||
install(TARGETS linphone-qt RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
if(MSVC AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo"))
|
||||
install(FILES "$<TARGET_PDB_FILE:${TARGET_NAME}>" DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
endif()
|
||||
|
|
@ -438,9 +444,11 @@ endif()
|
|||
|
||||
#add_dependencies(project_b_exe project_a)
|
||||
#target_link_libraries(project_b_exe ${install_dir}/lib/alib.lib)
|
||||
if(ENABLE_APP_EXPORT_PLUGIN)
|
||||
add_definitions(-DENABLE_APP_EXPORT_PLUGIN)
|
||||
endif()
|
||||
|
||||
# add_definitions(-DENABLE_APP_EXPORT_PLUGIN)
|
||||
target_compile_definitions(${APP_PLUGIN} PUBLIC "-DENABLE_APP_EXPORT_PLUGIN")
|
||||
set_property(TARGET ${APP_PLUGIN} PROPERTY WINDOWS_EXPORT_ALL_SYMBOLS ON) #Need by Qt
|
||||
|
||||
|
||||
set(INCLUDED_DIRECTORIES "${LINPHONECXX_INCLUDE_DIRS}" )
|
||||
list(APPEND INCLUDED_DIRECTORIES "${CMAKE_INSTALL_PREFIX}/include")
|
||||
|
|
@ -493,9 +501,13 @@ if (APPLE)
|
|||
endif ()
|
||||
|
||||
target_include_directories(${APP_LIBRARY} SYSTEM PRIVATE ${INCLUDED_DIRECTORIES})
|
||||
target_include_directories(${APP_PLUGIN} SYSTEM PRIVATE ${INCLUDED_DIRECTORIES})
|
||||
target_include_directories(${TARGET_NAME} SYSTEM PRIVATE ${INCLUDED_DIRECTORIES})
|
||||
|
||||
target_link_libraries(${TARGET_NAME} ${LIBRARIES})
|
||||
target_link_libraries(${APP_PLUGIN} ${LIBRARIES})
|
||||
target_link_libraries(${APP_LIBRARY} ${APP_PLUGIN})
|
||||
|
||||
target_link_libraries(${TARGET_NAME} ${LIBRARIES} ${APP_PLUGIN})
|
||||
|
||||
if(WIN32)
|
||||
target_link_libraries(${TARGET_NAME} wsock32 ws2_32)
|
||||
|
|
@ -503,7 +515,7 @@ endif()
|
|||
target_compile_definitions(${APP_LIBRARY} PUBLIC ENABLE_APP_EXPORT_PLUGIN)
|
||||
|
||||
add_dependencies(${APP_LIBRARY} update_translations ${TARGET_NAME}-git-version)
|
||||
add_dependencies(${TARGET_NAME} ${APP_LIBRARY})
|
||||
add_dependencies(${TARGET_NAME} ${APP_LIBRARY} ${APP_PLUGIN})
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
|
|
@ -514,7 +526,8 @@ set(LINPHONE_BUILDER_SIGNING_IDENTITY ${LINPHONE_BUILDER_SIGNING_IDENTITY})
|
|||
add_custom_command(TARGET ${TARGET_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_SOURCE_DIR}/include/" "${CMAKE_INSTALL_PREFIX}/include/")
|
||||
#add_custom_command(TARGET ${TARGET_NAME} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/include/LinphoneApp/*" "${CMAKE_INSTALL_PREFIX}/include/LinphoneApp/")
|
||||
#configure_file("${CMAKE_CURRENT_SOURCE_DIR}/include/*" "${CMAKE_INSTALL_PREFIX}/include/LinphoneApp/" COPYONLY)
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include" DESTINATION ${CMAKE_INSTALL_PREFIX})
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include" DESTINATION ".")
|
||||
|
||||
|
||||
add_subdirectory(build)
|
||||
add_subdirectory(cmake_builder/linphone_package)
|
||||
|
|
|
|||
|
|
@ -129,7 +129,7 @@ if (WIN32)
|
|||
install(FILES ${GRAMMAR_FILES} DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/" )
|
||||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS OPTIONAL)
|
||||
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS)
|
||||
install(DIRECTORY "${CMAKE_INSTALL_PREFIX}/plugins/" DESTINATION "plugins" USE_SOURCE_PERMISSIONS OPTIONAL)
|
||||
|
||||
install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Linphone/rootca.pem" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}/")
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/linphonerc-factory" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}")
|
||||
set(APP_QT_CONF_DPI "0")
|
||||
|
|
@ -137,7 +137,8 @@ if (WIN32)
|
|||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/../../assets/qt.conf.in" "${CMAKE_CURRENT_BINARY_DIR}/../../qt.conf" @ONLY)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../qt.conf" DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/assistant" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}" USE_SOURCE_PERMISSIONS)
|
||||
install( CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/${EXECUTABLE_NAME}.exe\" -qmldir=${LINPHONE_QML_DIR} --compiler-runtime)")# -verbose=2)" COMPONENT binary_application)
|
||||
install(TARGETS ${APP_PLUGIN} DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||
install(CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/${EXECUTABLE_NAME}.exe\" -qmldir=${LINPHONE_QML_DIR} --compiler-runtime)")# -verbose=2)" COMPONENT binary_application)
|
||||
|
||||
# list(REMOVE_ITEM SHARE_CONTENT "${CMAKE_INSTALL_DATAROOTDIR}/belr" "${CMAKE_INSTALL_DATAROOTDIR}/Belr" "${CMAKE_INSTALL_DATAROOTDIR}/images" "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}" "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}" "${CMAKE_INSTALL_DATAROOTDIR}/sounds")
|
||||
# foreach (ITEM IN LISTS SHARE_CONTENT)
|
||||
|
|
@ -156,7 +157,7 @@ elseif (APPLE)
|
|||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../qt.conf" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../Info.plist" DESTINATION "${APPLICATION_NAME}.app/Contents")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/../../${EXECUTABLE_NAME}.icns" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources")
|
||||
install( CODE "execute_process(COMMAND rsync -a \"${LINPHONE_OUTPUT_DIR}/Frameworks\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/\" )") #Use rsync to bypass symlinks override issues of frameworks
|
||||
install(CODE "execute_process(COMMAND rsync -a \"${LINPHONE_OUTPUT_DIR}/Frameworks\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/\" )") #Use rsync to bypass symlinks override issues of frameworks
|
||||
file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/lib*.dylib")
|
||||
if( ENABLE_OPENH264 )# Remove openH264 lib from the installation. this codec will be download by user
|
||||
foreach(item ${SHARED_LIBRARIES})
|
||||
|
|
@ -182,22 +183,23 @@ elseif (APPLE)
|
|||
message("Changing RPATH of ${LIBRARY_FILENAME} from '${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}' to '@executable_path/../Frameworks'")
|
||||
execute_process(COMMAND install_name_tool -rpath "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}" "@executable_path/../Frameworks" "${LIBRARY}")
|
||||
endforeach ()
|
||||
install( CODE "execute_process(COMMAND install_name_tool -add_rpath \"@executable_path/../Frameworks/\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\")")
|
||||
install( CODE "execute_process(COMMAND install_name_tool -add_rpath \"@executable_path/../lib/\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\")")
|
||||
install(TARGETS ${APP_PLUGIN} DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks")
|
||||
install(CODE "execute_process(COMMAND install_name_tool -add_rpath \"@executable_path/../Frameworks/\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\")")
|
||||
install(CODE "execute_process(COMMAND install_name_tool -add_rpath \"@executable_path/../lib/\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\")")
|
||||
if(ENABLE_APP_PACKAGING)
|
||||
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()
|
||||
install( CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} \${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app -qmldir=${LINPHONE_QML_DIR})")
|
||||
install(CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} \${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app -qmldir=${LINPHONE_QML_DIR})")
|
||||
endif()
|
||||
if (LINPHONE_BUILDER_SIGNING_IDENTITY)
|
||||
install(CODE "file(GLOB FRAMEWORKS_NAMES \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/Frameworks/*\")
|
||||
foreach (FRAMEWORK \${FRAMEWORKS_NAMES})
|
||||
execute_process(COMMAND \"codesign\" \"--options\" \"runtime,library\" \"--force\" \"--deep\" \"--verbose\" \"-s\" \"${LINPHONE_BUILDER_SIGNING_IDENTITY}\" \"\${FRAMEWORK}\")
|
||||
endforeach ()")
|
||||
install( CODE "execute_process(COMMAND \"codesign\" \"--force\" \"--deep\" \"--options\" \"runtime,library\" \"--verbose\" \"-s\" \"${LINPHONE_BUILDER_SIGNING_IDENTITY}\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/Frameworks/mediastreamer2.framework/Versions/A/Libraries/libmswebrtc.so\")")
|
||||
install( CODE "execute_process(COMMAND \"codesign\" \"--entitlements\" \"${CMAKE_CURRENT_BINARY_DIR}/../../entitlements.xml\" \"--force\" \"--deep\" \"--options\" \"runtime,library\" \"--verbose\" \"-s\" \"${LINPHONE_BUILDER_SIGNING_IDENTITY}\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app\")")
|
||||
install(CODE "execute_process(COMMAND \"codesign\" \"--force\" \"--deep\" \"--options\" \"runtime,library\" \"--verbose\" \"-s\" \"${LINPHONE_BUILDER_SIGNING_IDENTITY}\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/Frameworks/mediastreamer2.framework/Versions/A/Libraries/libmswebrtc.so\")")
|
||||
install(CODE "execute_process(COMMAND \"codesign\" \"--entitlements\" \"${CMAKE_CURRENT_BINARY_DIR}/../../entitlements.xml\" \"--force\" \"--deep\" \"--options\" \"runtime,library\" \"--verbose\" \"-s\" \"${LINPHONE_BUILDER_SIGNING_IDENTITY}\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app\")")
|
||||
endif ()
|
||||
# install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app" DESTINATION "." USE_SOURCE_PERMISSIONS)
|
||||
else()# Not Windows and Apple
|
||||
|
|
@ -254,6 +256,7 @@ else()# Not Windows and Apple
|
|||
foreach (DIR ${ICON_DIRS})
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../assets/icons/hicolor/${DIR}/apps/icon.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/${DIR}/apps/" RENAME "${EXECUTABLE_NAME}.png")
|
||||
endforeach ()
|
||||
install(TARGETS ${APP_PLUGIN} DESTINATION "${CMAKE_INSTALL_LIBDIR}")
|
||||
endif ()
|
||||
|
||||
if (MSVC)
|
||||
|
|
|
|||
|
|
@ -5,18 +5,10 @@
|
|||
#include <QVersionNumber>
|
||||
// Overload this class to make a plugin for the address book importer
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#ifdef ENABLE_APP_EXPORT_PLUGIN
|
||||
#define LINPHONEAPP_DLL_API __declspec(dllexport)
|
||||
#else
|
||||
#define LINPHONEAPP_DLL_API __declspec(dllimport)
|
||||
#endif
|
||||
#ifdef ENABLE_APP_EXPORT_PLUGIN
|
||||
#define LINPHONEAPP_DLL_API Q_DECL_EXPORT
|
||||
#else
|
||||
#ifdef ENABLE_APP_EXPORT_PLUGIN
|
||||
#define LINPHONEAPP_DLL_API __attribute__((visibility("default")))
|
||||
#else
|
||||
#define LINPHONEAPP_DLL_API
|
||||
#endif
|
||||
#define LINPHONEAPP_DLL_API Q_DECL_IMPORT
|
||||
#endif
|
||||
|
||||
class QPluginLoader;
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ rm -rf "${WORK_DIR}/AppDir/usr/lib64"
|
|||
#Copy soci sqlite3 backend
|
||||
mkdir -p "${WORK_DIR}/AppDir/usr/lib"
|
||||
cp -f "${BIN_SOURCE_DIR}/lib"/libsoci_sqlite3* "${WORK_DIR}/AppDir/usr/lib/"
|
||||
cp -f "${BIN_SOURCE_DIR}/lib"/libapp-plugin* "${WORK_DIR}/AppDir/usr/lib/"
|
||||
|
||||
if [ -d "${BIN_SOURCE_DIR}/lib64/mediastreamer" ]; then
|
||||
mkdir -p "${WORK_DIR}/AppDir/usr/plugins/"
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@
|
|||
################################################################################
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
|
||||
project(app-plugins)
|
||||
|
||||
## Add custom plugins
|
||||
macro(get_all_subdirs result curdir)
|
||||
file(GLOB children RELATIVE ${curdir} ${curdir}/*)
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ find_package(Qt5 COMPONENTS ${QT5_PACKAGES_OPTIONAL} QUIET)
|
|||
find_package(LinphoneCxx CONFIG)
|
||||
find_package(bctoolbox CONFIG)
|
||||
|
||||
find_library(APP_PLUGIN_LIBRARY NAMES "app-plugin" PATHS "${APP_PLUGIN_LIB_PATH}" REQUIRED)
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Build.
|
||||
|
|
@ -108,9 +109,10 @@ find_package(bctoolbox CONFIG)
|
|||
|
||||
add_library(${TARGET_NAME} SHARED ${SOURCES} ${HEADERS})
|
||||
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE Qt5::Widgets Qt5::Network ${LINPHONECXX_LIBRARIES})
|
||||
target_link_libraries(${TARGET_NAME} PRIVATE Qt5::Widgets Qt5::Network ${LINPHONECXX_LIBRARIES} ${APP_PLUGIN_LIBRARY})
|
||||
target_compile_options(${TARGET_NAME} PRIVATE ${COMPILE_OPTIONS})
|
||||
set_source_files_properties( ${TARGET_NAME} PROPERTIES EXTERNAL_OBJECT true GENERATED true )
|
||||
|
||||
set_property(TARGET ${TARGET_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON) #Need by Qt
|
||||
target_include_directories(${TARGET_NAME} PRIVATE ${CMAKE_PREFIX_PATH} ${LINPHONECXX_INCLUDE_DIRS})
|
||||
set_target_properties(${TARGET_NAME} PROPERTIES OUTPUT_NAME "${TARGET_NAME}-${PLUGIN_VERSION}")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue