diff --git a/CMakeLists.txt b/CMakeLists.txt
index 41879cd52..e27064832 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -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)
@@ -97,6 +100,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)
@@ -386,7 +390,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}")
@@ -414,7 +418,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})
@@ -475,8 +478,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.
diff --git a/build_all_macos.sh b/build_all_macos.sh
index 4c2f313b3..6e81f98bf 100755
--- a/build_all_macos.sh
+++ b/build_all_macos.sh
@@ -45,7 +45,7 @@ cd ../..
#MiniZip Building
cd submodules/externals/minizip/build-minizip
-cmake .. -DCMAKE_INSTALL_PREFIX=../../../../build-desktop/OUTPUT -DCMAKE_PREFIX_PATH=../../../build-desktop/OUTPUT -DCMAKE_BUILD_TYPE=RelWithDebInfo
+cmake .. -DCMAKE_INSTALL_PREFIX=OUTPUT -DCMAKE_PREFIX_PATH=../../../build-desktop/OUTPUT -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build . --target all --config RelWithDebInfo --parallel 5
cmake --build . --target install
cd ../../../..
diff --git a/cmake_builder/install.cmake b/cmake_builder/install.cmake
index 05b88cc53..a2ab59415 100644
--- a/cmake_builder/install.cmake
+++ b/cmake_builder/install.cmake
@@ -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 ()
diff --git a/cmake_builder/linphone_package/CMakeLists.txt b/cmake_builder/linphone_package/CMakeLists.txt
index 209dfed9a..eb82d6271 100644
--- a/cmake_builder/linphone_package/CMakeLists.txt
+++ b/cmake_builder/linphone_package/CMakeLists.txt
@@ -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")
diff --git a/cmake_builder/linphone_package/macos/Info.plist.in b/cmake_builder/linphone_package/macos/Info.plist.in
index 6e4b7c817..1703aa7e8 100644
--- a/cmake_builder/linphone_package/macos/Info.plist.in
+++ b/cmake_builder/linphone_package/macos/Info.plist.in
@@ -27,7 +27,7 @@
CFBundleVersion
@PACKAGE_VERSION@
NSHumanReadableCopyright
- Copyright 2011-2018 @APPLICATION_VENDOR@
+ Copyright 2011-2020 @APPLICATION_VENDOR@
LSMinimumSystemVersion
@CMAKE_OSX_DEPLOYMENT_TARGET@
NSAppSleepDisabled
@@ -50,5 +50,7 @@
NSApplication
NSHighResolutionCapable
True
+ NSCameraUsageDescription
+ Streaming Video between devices