diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b5e12b67..618b2a811 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,9 +29,16 @@ cmake_minimum_required(VERSION 3.1) project(linphoneqt VERSION 4.1.1) # Prepare gobal CMAKE configuration specific to the current project -list(APPEND CMAKE_PREFIX_PATH "${CMAKE_BINARY_DIR}/linphone-sdk/desktop;${CMAKE_BINARY_DIR}/OUTPUT") -message("${CMAKE_PREFIX_PATH}") -set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/OUTPUT") +set(SDK_BUILD_DIR "${CMAKE_BINARY_DIR}/WORK") # SDK build in WORK. Keep all in it. +set(LINPHONE_OUTPUT_DIR "${CMAKE_BINARY_DIR}/linphone-sdk/desktop") #This is fixed by the SDK +set(MINIZIP_OUTPUT_DIR "${CMAKE_BINARY_DIR}/minizip_OUTPUT") + +set(APPLICATION_OUTPUT_DIR "${CMAKE_BINARY_DIR}/OUTPUT") + +message("minizip=${MINIZIP_OUTPUT_DIR} sdk=${LINPHONE_OUTPUT_DIR}") + +list(APPEND CMAKE_PREFIX_PATH "${LINPHONE_OUTPUT_DIR};${MINIZIP_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR}") + if(UNIX AND NOT APPLE) set(CMAKE_INSTALL_RPATH "$ORIGIN;$ORIGIN/lib64;$ORIGIN/../lib64;$ORIGIN/lib;$ORIGIN/../lib") set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) @@ -87,447 +94,447 @@ find_package(ortp CONFIG) if( NOT (LinphoneCxx_FOUND) OR NOT (Linphone_FOUND) OR NOT (bctoolbox_FOUND) OR NOT (belcard_FOUND) OR NOT (Mediastreamer2_FOUND) OR NOT (ortp_FOUND)) message("Linphone packages are not installed. Build and install it in order to build Minizip and then Desktop Application.") - add_subdirectory("linphone-sdk" "linphone-sdk/build-sdk") + set(CMAKE_INSTALL_PREFIX "${LINPHONE_OUTPUT_DIR}") + add_subdirectory("linphone-sdk" "${SDK_BUILD_DIR}") else() # Linphone SDK has been builded message("LINPHONECXX : ${LINPHONECXX_INCLUDE_DIRS} => ${LINPHONECXX_LIBRARIES}") find_package(Minizip) if( NOT(Minizip_FOUND)) - message("Minizip are not installed. Build and install it in order to build Desktop Application.") - add_subdirectory(submodules/externals/minizip "submodules/externals/minizip/build-minizip") + message("Minizip are not installed. Build and install it in order to build Desktop Application.") + set(CMAKE_INSTALL_PREFIX "${MINIZIP_OUTPUT_DIR}") + add_subdirectory(submodules/externals/minizip "submodules/externals/minizip/build-minizip") else() - message("MINIZIP : ${MINIZIP_INCLUDE_DIRS} => ${MINIZIP_LIBRARIES}") - message("INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} FRAMEWORK_PATH=${CMAKE_FRAMEWORK_PATH}") - message("LINPHONE : ${LINPHONE_INCLUDE_DIRS} => ${LINPHONE_LIBRARIES}") - message("LINPHONECXX : ${LINPHONECXX_INCLUDE_DIRS} => ${LINPHONECXX_LIBRARIES}") + set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}") + message("MINIZIP : ${MINIZIP_INCLUDE_DIRS} => ${MINIZIP_LIBRARIES}") + message("INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} FRAMEWORK_PATH=${CMAKE_FRAMEWORK_PATH}") + message("LINPHONE : ${LINPHONE_INCLUDE_DIRS} => ${LINPHONE_LIBRARIES}") + message("LINPHONECXX : ${LINPHONECXX_INCLUDE_DIRS} => ${LINPHONECXX_LIBRARIES}") - # Build configuration - set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG -DQT_NO_DEBUG") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG") - if( WIN32) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WINSOCKAPI_")#remove error from windows headers order - endif() - set(CMAKE_INCLUDE_CURRENT_DIR ON)#useful for config.h + # Build configuration + set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNDEBUG -DQT_NO_DEBUG") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG") + if( WIN32) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WINSOCKAPI_")#remove error from windows headers order + endif() + set(CMAKE_INCLUDE_CURRENT_DIR ON)#useful for config.h - set(QT5_PACKAGES Core Gui Quick Widgets QuickControls2 Svg LinguistTools Concurrent Network) - if (UNIX AND NOT APPLE) - list(APPEND QT5_PACKAGES DBus) - endif () - set(QT5_PACKAGES_OPTIONAL TextToSpeech) - set(CMAKE_AUTOMOC ON) - #------------------------------------------------- - set(ASSETS_DIR "assets") - set(SOURCES - src/app/App.cpp - src/app/AppController.cpp - src/app/cli/Cli.cpp - src/app/logger/Logger.cpp - src/app/paths/Paths.cpp - src/app/providers/AvatarProvider.cpp - src/app/providers/ImageProvider.cpp - src/app/providers/ThumbnailProvider.cpp - src/app/translator/DefaultTranslator.cpp - src/components/assistant/AssistantModel.cpp - src/components/authentication/AuthenticationNotifier.cpp - src/components/call/CallModel.cpp - src/components/calls/CallsListModel.cpp - src/components/calls/CallsListProxyModel.cpp - src/components/camera/Camera.cpp - src/components/camera/CameraPreview.cpp - src/components/camera/MSFunctions.cpp - src/components/chat/ChatModel.cpp - src/components/chat/ChatProxyModel.cpp - src/components/codecs/AbstractCodecsModel.cpp - src/components/codecs/AudioCodecsModel.cpp - src/components/codecs/VideoCodecsModel.cpp - src/components/conference/ConferenceAddModel.cpp - src/components/conference/ConferenceHelperModel.cpp - src/components/conference/ConferenceModel.cpp - src/components/contact/ContactModel.cpp - src/components/contact/VcardModel.cpp - src/components/contacts/ContactsListModel.cpp - src/components/contacts/ContactsListProxyModel.cpp - src/components/core/CoreHandlers.cpp - src/components/core/CoreManager.cpp - src/components/core/event-count-notifier/AbstractEventCountNotifier.cpp - src/components/file/FileDownloader.cpp - src/components/file/FileExtractor.cpp - src/components/notifier/Notifier.cpp - src/components/other/clipboard/Clipboard.cpp - src/components/other/colors/Colors.cpp - src/components/other/text-to-speech/TextToSpeech.cpp - src/components/other/units/Units.cpp - src/components/presence/OwnPresenceModel.cpp - src/components/presence/Presence.cpp - src/components/settings/AccountSettingsModel.cpp - src/components/settings/SettingsModel.cpp - src/components/sip-addresses/SipAddressesModel.cpp - src/components/sip-addresses/SipAddressesProxyModel.cpp - src/components/sip-addresses/SipAddressObserver.cpp - src/components/sound-player/SoundPlayer.cpp - src/components/telephone-numbers/TelephoneNumbersModel.cpp - src/components/timeline/TimelineModel.cpp - src/components/url-handlers/UrlHandlers.cpp - src/utils/LinphoneUtils.cpp - src/utils/MediastreamerUtils.cpp - src/utils/QExifImageHeader.cpp - src/utils/Utils.cpp - ) + set(QT5_PACKAGES Core Gui Quick Widgets QuickControls2 Svg LinguistTools Concurrent Network) + if (UNIX AND NOT APPLE) + list(APPEND QT5_PACKAGES DBus) + endif () + set(QT5_PACKAGES_OPTIONAL TextToSpeech) + set(CMAKE_AUTOMOC ON) + #------------------------------------------------- + set(ASSETS_DIR "assets") + set(SOURCES + src/app/App.cpp + src/app/AppController.cpp + src/app/cli/Cli.cpp + src/app/logger/Logger.cpp + src/app/paths/Paths.cpp + src/app/providers/AvatarProvider.cpp + src/app/providers/ImageProvider.cpp + src/app/providers/ThumbnailProvider.cpp + src/app/translator/DefaultTranslator.cpp + src/components/assistant/AssistantModel.cpp + src/components/authentication/AuthenticationNotifier.cpp + src/components/call/CallModel.cpp + src/components/calls/CallsListModel.cpp + src/components/calls/CallsListProxyModel.cpp + src/components/camera/Camera.cpp + src/components/camera/CameraPreview.cpp + src/components/camera/MSFunctions.cpp + src/components/chat/ChatModel.cpp + src/components/chat/ChatProxyModel.cpp + src/components/codecs/AbstractCodecsModel.cpp + src/components/codecs/AudioCodecsModel.cpp + src/components/codecs/VideoCodecsModel.cpp + src/components/conference/ConferenceAddModel.cpp + src/components/conference/ConferenceHelperModel.cpp + src/components/conference/ConferenceModel.cpp + src/components/contact/ContactModel.cpp + src/components/contact/VcardModel.cpp + src/components/contacts/ContactsListModel.cpp + src/components/contacts/ContactsListProxyModel.cpp + src/components/core/CoreHandlers.cpp + src/components/core/CoreManager.cpp + src/components/core/event-count-notifier/AbstractEventCountNotifier.cpp + src/components/file/FileDownloader.cpp + src/components/file/FileExtractor.cpp + src/components/notifier/Notifier.cpp + src/components/other/clipboard/Clipboard.cpp + src/components/other/colors/Colors.cpp + src/components/other/text-to-speech/TextToSpeech.cpp + src/components/other/units/Units.cpp + src/components/presence/OwnPresenceModel.cpp + src/components/presence/Presence.cpp + src/components/settings/AccountSettingsModel.cpp + src/components/settings/SettingsModel.cpp + src/components/sip-addresses/SipAddressesModel.cpp + src/components/sip-addresses/SipAddressesProxyModel.cpp + src/components/sip-addresses/SipAddressObserver.cpp + src/components/sound-player/SoundPlayer.cpp + src/components/telephone-numbers/TelephoneNumbersModel.cpp + src/components/timeline/TimelineModel.cpp + src/components/url-handlers/UrlHandlers.cpp + src/utils/LinphoneUtils.cpp + src/utils/MediastreamerUtils.cpp + src/utils/QExifImageHeader.cpp + src/utils/Utils.cpp + ) - set(HEADERS - src/app/App.hpp - src/app/AppController.hpp - src/app/cli/Cli.hpp - src/app/logger/Logger.hpp - src/app/paths/Paths.hpp - src/app/providers/AvatarProvider.hpp - src/app/providers/ImageProvider.hpp - src/app/providers/ThumbnailProvider.hpp - src/app/single-application/SingleApplication.hpp - src/app/translator/DefaultTranslator.hpp - src/components/assistant/AssistantModel.hpp - src/components/authentication/AuthenticationNotifier.hpp - src/components/call/CallModel.hpp - src/components/calls/CallsListModel.hpp - src/components/calls/CallsListProxyModel.hpp - src/components/camera/Camera.hpp - src/components/camera/CameraPreview.hpp - src/components/camera/MSFunctions.hpp - src/components/chat/ChatModel.hpp - src/components/chat/ChatProxyModel.hpp - src/components/codecs/AbstractCodecsModel.hpp - src/components/codecs/AudioCodecsModel.hpp - src/components/codecs/VideoCodecsModel.hpp - src/components/Components.hpp - src/components/conference/ConferenceAddModel.hpp - src/components/conference/ConferenceHelperModel.hpp - src/components/conference/ConferenceModel.hpp - src/components/contact/ContactModel.hpp - src/components/contact/VcardModel.hpp - src/components/contacts/ContactsListModel.hpp - src/components/contacts/ContactsListProxyModel.hpp - src/components/core/CoreHandlers.hpp - src/components/core/CoreManager.hpp - src/components/core/event-count-notifier/AbstractEventCountNotifier.hpp - src/components/file/FileDownloader.hpp - src/components/file/FileExtractor.hpp - src/components/notifier/Notifier.hpp - src/components/other/clipboard/Clipboard.hpp - src/components/other/colors/Colors.hpp - src/components/other/desktop-tools/DesktopTools.hpp - src/components/other/text-to-speech/TextToSpeech.hpp - src/components/other/units/Units.hpp - src/components/presence/OwnPresenceModel.hpp - src/components/presence/Presence.hpp - src/components/settings/AccountSettingsModel.hpp - src/components/settings/SettingsModel.hpp - src/components/sip-addresses/SipAddressesModel.hpp - src/components/sip-addresses/SipAddressesProxyModel.hpp - src/components/sip-addresses/SipAddressObserver.hpp - src/components/sound-player/SoundPlayer.hpp - src/components/telephone-numbers/TelephoneNumbersModel.hpp - src/components/timeline/TimelineModel.hpp - src/components/url-handlers/UrlHandlers.hpp - src/utils/LinphoneUtils.hpp - src/utils/MediastreamerUtils.hpp - src/utils/QExifImageHeader.hpp - src/utils/Utils.hpp - ) + set(HEADERS + src/app/App.hpp + src/app/AppController.hpp + src/app/cli/Cli.hpp + src/app/logger/Logger.hpp + src/app/paths/Paths.hpp + src/app/providers/AvatarProvider.hpp + src/app/providers/ImageProvider.hpp + src/app/providers/ThumbnailProvider.hpp + src/app/single-application/SingleApplication.hpp + src/app/translator/DefaultTranslator.hpp + src/components/assistant/AssistantModel.hpp + src/components/authentication/AuthenticationNotifier.hpp + src/components/call/CallModel.hpp + src/components/calls/CallsListModel.hpp + src/components/calls/CallsListProxyModel.hpp + src/components/camera/Camera.hpp + src/components/camera/CameraPreview.hpp + src/components/camera/MSFunctions.hpp + src/components/chat/ChatModel.hpp + src/components/chat/ChatProxyModel.hpp + src/components/codecs/AbstractCodecsModel.hpp + src/components/codecs/AudioCodecsModel.hpp + src/components/codecs/VideoCodecsModel.hpp + src/components/Components.hpp + src/components/conference/ConferenceAddModel.hpp + src/components/conference/ConferenceHelperModel.hpp + src/components/conference/ConferenceModel.hpp + src/components/contact/ContactModel.hpp + src/components/contact/VcardModel.hpp + src/components/contacts/ContactsListModel.hpp + src/components/contacts/ContactsListProxyModel.hpp + src/components/core/CoreHandlers.hpp + src/components/core/CoreManager.hpp + src/components/core/event-count-notifier/AbstractEventCountNotifier.hpp + src/components/file/FileDownloader.hpp + src/components/file/FileExtractor.hpp + src/components/notifier/Notifier.hpp + src/components/other/clipboard/Clipboard.hpp + src/components/other/colors/Colors.hpp + src/components/other/desktop-tools/DesktopTools.hpp + src/components/other/text-to-speech/TextToSpeech.hpp + src/components/other/units/Units.hpp + src/components/presence/OwnPresenceModel.hpp + src/components/presence/Presence.hpp + src/components/settings/AccountSettingsModel.hpp + src/components/settings/SettingsModel.hpp + src/components/sip-addresses/SipAddressesModel.hpp + src/components/sip-addresses/SipAddressesProxyModel.hpp + src/components/sip-addresses/SipAddressObserver.hpp + src/components/sound-player/SoundPlayer.hpp + src/components/telephone-numbers/TelephoneNumbersModel.hpp + src/components/timeline/TimelineModel.hpp + src/components/url-handlers/UrlHandlers.hpp + src/utils/LinphoneUtils.hpp + src/utils/MediastreamerUtils.hpp + src/utils/QExifImageHeader.hpp + src/utils/Utils.hpp + ) - set(MAIN_FILE src/app/main.cpp) + set(MAIN_FILE src/app/main.cpp) - if (APPLE) - list(APPEND SOURCES - src/app/single-application/SingleApplication.cpp - 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 - src/components/core/event-count-notifier/EventCountNotifierMacOs.hpp - src/components/other/desktop-tools/DesktopToolsMacOs.hpp - ) - elseif (WIN32) - list(APPEND SOURCES - src/app/single-application/SingleApplication.cpp - src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.cpp - src/components/other/desktop-tools/DesktopToolsWindows.cpp - ) - list(APPEND HEADERS - src/app/single-application/SingleApplicationPrivate.hpp - src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.hpp - src/components/other/desktop-tools/DesktopToolsWindows.hpp - ) - else () - list(APPEND SOURCES - src/app/single-application/SingleApplicationDBus.cpp - src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.cpp - src/components/other/desktop-tools/DesktopToolsLinux.cpp - src/components/other/desktop-tools/screen-saver/ScreenSaverDBus.cpp - src/components/other/desktop-tools/screen-saver/ScreenSaverXdg.cpp - ) - list(APPEND HEADERS - src/app/single-application/SingleApplicationDBusPrivate.hpp - src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.hpp - src/components/other/desktop-tools/DesktopToolsLinux.hpp - src/components/other/desktop-tools/screen-saver/ScreenSaverDBus.hpp - src/components/other/desktop-tools/screen-saver/ScreenSaverXdg.hpp - ) - endif () + if (APPLE) + list(APPEND SOURCES + src/app/single-application/SingleApplication.cpp + 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 + src/components/core/event-count-notifier/EventCountNotifierMacOs.hpp + src/components/other/desktop-tools/DesktopToolsMacOs.hpp + ) + elseif (WIN32) + list(APPEND SOURCES + src/app/single-application/SingleApplication.cpp + src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.cpp + src/components/other/desktop-tools/DesktopToolsWindows.cpp + ) + list(APPEND HEADERS + src/app/single-application/SingleApplicationPrivate.hpp + src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.hpp + src/components/other/desktop-tools/DesktopToolsWindows.hpp + ) + else () + list(APPEND SOURCES + src/app/single-application/SingleApplicationDBus.cpp + src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.cpp + src/components/other/desktop-tools/DesktopToolsLinux.cpp + src/components/other/desktop-tools/screen-saver/ScreenSaverDBus.cpp + src/components/other/desktop-tools/screen-saver/ScreenSaverXdg.cpp + ) + list(APPEND HEADERS + src/app/single-application/SingleApplicationDBusPrivate.hpp + src/components/core/event-count-notifier/EventCountNotifierSystemTrayIcon.hpp + src/components/other/desktop-tools/DesktopToolsLinux.hpp + src/components/other/desktop-tools/screen-saver/ScreenSaverDBus.hpp + src/components/other/desktop-tools/screen-saver/ScreenSaverXdg.hpp + ) + endif () - set(QRC_RESOURCES resources.qrc) + set(QRC_RESOURCES resources.qrc) - set(LANGUAGES_DIRECTORY "${ASSETS_DIR}/languages") - set(I18N_FILENAME i18n.qrc) - set(LANGUAGES de en fr_FR ja lt ru sv tr pt_BR) + set(LANGUAGES_DIRECTORY "${ASSETS_DIR}/languages") + set(I18N_FILENAME i18n.qrc) + set(LANGUAGES de en fr_FR ja lt ru sv tr pt_BR) - # ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ - function (PREPEND list prefix) - set(new_list "") + function (PREPEND list prefix) + set(new_list "") - foreach (elem ${${list}}) - list(APPEND new_list "${prefix}${elem}") - endforeach () + foreach (elem ${${list}}) + list(APPEND new_list "${prefix}${elem}") + endforeach () - set(${list} ${new_list} PARENT_SCOPE) - endfunction () + set(${list} ${new_list} PARENT_SCOPE) + endfunction () - # Force absolute paths. - PREPEND(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/") - PREPEND(HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/") + # Force absolute paths. + PREPEND(SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/") + PREPEND(HEADERS "${CMAKE_CURRENT_SOURCE_DIR}/") - # ------------------------------------------------------------------------------ - # Compute QML files list. - # ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # Compute QML files list. + # ------------------------------------------------------------------------------ - set(QML_SOURCES) - file(STRINGS ${QRC_RESOURCES} QRC_RESOURCES_CONTENT) - foreach (line ${QRC_RESOURCES_CONTENT}) - set(result) - string(REGEX REPLACE - "^[ \t]*<[ \t]*file[ \t]*>[ \t]*(.+\\.[a-z]+)[ \t]*<[ \t]*/[ \t]*file[ \t]*>[ \t]*$" - "\\1" - result - "${line}" - ) - string(REGEX MATCH "\\.[a-z]+$" is_ui ${result}) - if (NOT ${is_ui} STREQUAL "") - list(APPEND QML_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/${result}") - endif () - endforeach () + set(QML_SOURCES) + file(STRINGS ${QRC_RESOURCES} QRC_RESOURCES_CONTENT) + foreach (line ${QRC_RESOURCES_CONTENT}) + set(result) + string(REGEX REPLACE + "^[ \t]*<[ \t]*file[ \t]*>[ \t]*(.+\\.[a-z]+)[ \t]*<[ \t]*/[ \t]*file[ \t]*>[ \t]*$" + "\\1" + result + "${line}" + ) + string(REGEX MATCH "\\.[a-z]+$" is_ui ${result}) + if (NOT ${is_ui} STREQUAL "") + list(APPEND QML_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/${result}") + endif () + endforeach () - # ------------------------------------------------------------------------------ - # Init git hooks. - # ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # Init git hooks. + # ------------------------------------------------------------------------------ - if (NOT WIN32) - add_custom_target( - check_qml DEPENDS ${QML_SOURCES} - COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/check_qml_syntax" - ) - endif() + if (NOT WIN32) + add_custom_target( + check_qml DEPENDS ${QML_SOURCES} + COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/check_qml_syntax" + ) + endif() - 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") + 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_PATH ${_QML_IMPORT_PATHS} CACHE STRING "Path used to locate CMake modules by Qt Creator" FORCE) - if(APPLE) - if(MS2_PLUGINS_LOCATION) - set(MSPLUGINS_DIR ${MS2_PLUGINS_LOCATION}) - else() - set(MSPLUGINS_DIR "Frameworks/mediastreamer2.framework/Versions/A/Libraries") - endif() - else() - set(MSPLUGINS_DIR "${CMAKE_INSTALL_LIBDIR}/mediastreamer/plugins") - endif() - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/config.h") - # ------------------------------------------------------------------------------ - # Build. - # ------------------------------------------------------------------------------ + if(APPLE) + if(MS2_PLUGINS_LOCATION) + set(MSPLUGINS_DIR ${MS2_PLUGINS_LOCATION}) + else() + set(MSPLUGINS_DIR "Frameworks/mediastreamer2.framework/Versions/A/Libraries") + endif() + else() + set(MSPLUGINS_DIR "${CMAKE_INSTALL_LIBDIR}/mediastreamer/plugins") + endif() + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/config.h") + # ------------------------------------------------------------------------------ + # Build. + # ------------------------------------------------------------------------------ - include_directories(src/) + include_directories(src/) - find_package(Qt5 COMPONENTS ${QT5_PACKAGES} REQUIRED) - find_package(Qt5 COMPONENTS ${QT5_PACKAGES_OPTIONAL} QUIET) + find_package(Qt5 COMPONENTS ${QT5_PACKAGES} REQUIRED) + find_package(Qt5 COMPONENTS ${QT5_PACKAGES_OPTIONAL} QUIET) - if (CMAKE_INSTALL_RPATH) - #Retrieve lib path from a know QT executable - get_target_property(LUPDATE_PATH Qt5::lupdate LOCATION) - get_filename_component(LUPDATE_PATH "${LUPDATE_PATH}" DIRECTORY) - get_filename_component(QT_PATH "${LUPDATE_PATH}/../lib" ABSOLUTE) - list(APPEND CMAKE_INSTALL_RPATH "${QT_PATH}") - endif () - # Add languages support. - add_subdirectory(${LANGUAGES_DIRECTORY}) + if (CMAKE_INSTALL_RPATH) + #Retrieve lib path from a know QT executable + get_target_property(LUPDATE_PATH Qt5::lupdate LOCATION) + get_filename_component(LUPDATE_PATH "${LUPDATE_PATH}" DIRECTORY) + get_filename_component(QT_PATH "${LUPDATE_PATH}/../lib" ABSOLUTE) + list(APPEND CMAKE_INSTALL_RPATH "${QT_PATH}") + endif () + # Add languages support. + add_subdirectory(${LANGUAGES_DIRECTORY}) - list(APPEND SOURCES "${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGES_DIRECTORY}/${I18N_FILENAME}") + list(APPEND SOURCES "${CMAKE_CURRENT_BINARY_DIR}/${LANGUAGES_DIRECTORY}/${I18N_FILENAME}") - # Build. - #add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${RESOURCES} ${QML_SOURCES}) - add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${QML_SOURCES} ${QRC_RESOURCES}) - set_property(TARGET ${APP_LIBRARY} PROPERTY POSITION_INDEPENDENT_CODE ON) + # Build. + #add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${RESOURCES} ${QML_SOURCES}) + add_library(${APP_LIBRARY} OBJECT ${SOURCES} ${HEADERS} ${QML_SOURCES} ${QRC_RESOURCES}) + set_property(TARGET ${APP_LIBRARY} PROPERTY POSITION_INDEPENDENT_CODE ON) - #Turn on automatic resources compilation by cmake - #Instead of excplicitely calling qt5_add_resources - set_property(TARGET ${APP_LIBRARY} PROPERTY AUTORCC ON) + #Turn on automatic resources compilation by cmake + #Instead of excplicitely calling qt5_add_resources + set_property(TARGET ${APP_LIBRARY} PROPERTY AUTORCC ON) - bc_git_version(${TARGET_NAME} ${PROJECT_VERSION}) - add_dependencies(${APP_LIBRARY} ${TARGET_NAME}-git-version) - add_dependencies(${APP_LIBRARY} update_translations) - if (WIN32) - add_executable(${TARGET_NAME} WIN32 $ ${ASSETS_DIR}/app-icon.rc ${MAIN_FILE}) - else () - add_executable(${TARGET_NAME} $ ${MAIN_FILE}) - endif () + bc_git_version(${TARGET_NAME} ${PROJECT_VERSION}) + add_dependencies(${APP_LIBRARY} ${TARGET_NAME}-git-version) + add_dependencies(${APP_LIBRARY} update_translations) + if (WIN32) + add_executable(${TARGET_NAME} WIN32 $ ${ASSETS_DIR}/app-icon.rc ${MAIN_FILE}) + else () + add_executable(${TARGET_NAME} $ ${MAIN_FILE}) + 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} ${OPUS_LIBRARIES}) - if(WIN32) - list(APPEND LIBRARIES ${MINIZIP_LIBRARIES}) - endif() - foreach (package ${QT5_PACKAGES}) - list(APPEND INCLUDED_DIRECTORIES "${Qt5${package}_INCLUDE_DIRS}") - # `qt5_create_translation` is provided from `LinguistTools` package. - # But the `Qt5::LinguistTools` lib does not exist. Remove it. - if (NOT (${package} STREQUAL LinguistTools)) - list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES}) - endif () - endforeach () + 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} ${OPUS_LIBRARIES}) + if(WIN32) + list(APPEND LIBRARIES ${MINIZIP_LIBRARIES}) + endif() + foreach (package ${QT5_PACKAGES}) + list(APPEND INCLUDED_DIRECTORIES "${Qt5${package}_INCLUDE_DIRS}") + # `qt5_create_translation` is provided from `LinguistTools` package. + # But the `Qt5::LinguistTools` lib does not exist. Remove it. + if (NOT (${package} STREQUAL LinguistTools)) + list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES}) + endif () + endforeach () - foreach (package ${QT5_PACKAGES_OPTIONAL}) - if ("${Qt5${package}_FOUND}") - message("Optional package ${package} found.") - list(APPEND INCLUDED_DIRECTORIES "${Qt5${package}_INCLUDE_DIRS}") - list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES}) + foreach (package ${QT5_PACKAGES_OPTIONAL}) + if ("${Qt5${package}_FOUND}") + message("Optional package ${package} found.") + list(APPEND INCLUDED_DIRECTORIES "${Qt5${package}_INCLUDE_DIRS}") + list(APPEND LIBRARIES ${Qt5${package}_LIBRARIES}) - string(TOUPPER "${package}" INCLUDE_NAME) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D${INCLUDE_NAME}_ENABLED") - else () - message("Optional package ${package} not found.") - endif () - endforeach () + string(TOUPPER "${package}" INCLUDE_NAME) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D${INCLUDE_NAME}_ENABLED") + else () + message("Optional package ${package} not found.") + endif () + endforeach () - 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}) + 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}) - target_link_libraries(${TARGET_NAME} ${LIBRARIES}) - if(WIN32) - target_link_libraries(${TARGET_NAME} wsock32 ws2_32) - endif() + target_link_libraries(${TARGET_NAME} ${LIBRARIES}) + if(WIN32) + target_link_libraries(${TARGET_NAME} wsock32 ws2_32) + endif() - foreach (target ${TARGET_NAME}) - install(TARGETS ${target} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE - ) - endforeach () + foreach (target ${TARGET_NAME}) + message("Available target : ${target}") + # install(TARGETS ${target} + # RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + # LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + # ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + # PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE + # ) + endforeach () - if (UNIX AND NOT APPLE) - # Install desktop/icon files. - configure_file("${ASSETS_DIR}/linphone.desktop.cmake" "${EXECUTABLE_NAME}.desktop" @ONLY) + if (UNIX AND NOT APPLE) + # Install desktop/icon files. + configure_file("${ASSETS_DIR}/linphone.desktop.cmake" "${EXECUTABLE_NAME}.desktop" @ONLY) - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_NAME}.desktop" - DESTINATION "${CMAKE_INSTALL_DATADIR}/applications" - ) - install(FILES "${ASSETS_DIR}/images/linphone_logo.svg" - DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps/" - RENAME "${EXECUTABLE_NAME}.svg" - ) + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_NAME}.desktop" + DESTINATION "${CMAKE_INSTALL_DATADIR}/applications" + ) + install(FILES "${ASSETS_DIR}/images/linphone_logo.svg" + DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps/" + RENAME "${EXECUTABLE_NAME}.svg" + ) - 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/" - RENAME "${EXECUTABLE_NAME}.png" - ) - endforeach () - endif () + 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/" + RENAME "${EXECUTABLE_NAME}.png" + ) + endforeach () + endif () - # ------------------------------------------------------------------------------ - # Install rc files. - # ------------------------------------------------------------------------------ + # ------------------------------------------------------------------------------ + # Install rc files. + # ------------------------------------------------------------------------------ + if(APPLE) + set(PACKAGING_DIR "${APPLICATION_NAME}.app/Contents/Resources") + else() + set(PACKAGING_DIR "") + endif() + install(FILES "${ASSETS_DIR}/linphonerc-factory" + DESTINATION "${PACKAGING_DIR}/${CMAKE_INSTALL_DATADIR}/${APPLICATION_NAME}" + ) - install(FILES "${ASSETS_DIR}/linphonerc-factory" - DESTINATION "${CMAKE_INSTALL_DATADIR}/${APPLICATION_NAME}" - ) + set(ASSETS_ASSISTANT_DIR "${ASSETS_DIR}/assistant") + set(ASSISTANT_INSTALL_DATADIR "${PACKAGING_DIR}/${CMAKE_INSTALL_DATADIR}/${APPLICATION_NAME}/assistant") - set(ASSETS_ASSISTANT_DIR "${ASSETS_DIR}/assistant") - set(ASSISTANT_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/${APPLICATION_NAME}/assistant") + install(FILES "${ASSETS_ASSISTANT_DIR}/use-other-sip-account.rc" + DESTINATION "${ASSISTANT_INSTALL_DATADIR}" + ) + install(FILES "${ASSETS_ASSISTANT_DIR}/create-app-sip-account.rc" + DESTINATION "${ASSISTANT_INSTALL_DATADIR}" + ) + install(FILES "${ASSETS_ASSISTANT_DIR}/use-app-sip-account.rc" + DESTINATION "${ASSISTANT_INSTALL_DATADIR}" + ) - install(FILES "${ASSETS_ASSISTANT_DIR}/use-other-sip-account.rc" - DESTINATION "${ASSISTANT_INSTALL_DATADIR}" - ) - install(FILES "${ASSETS_ASSISTANT_DIR}/create-app-sip-account.rc" - DESTINATION "${ASSISTANT_INSTALL_DATADIR}" - ) - install(FILES "${ASSETS_ASSISTANT_DIR}/use-app-sip-account.rc" - DESTINATION "${ASSISTANT_INSTALL_DATADIR}" - ) + # ------------------------------------------------------------------------------ + # CPack settings & RPM. + # ------------------------------------------------------------------------------ + set(LINPHONE_DESKTOP_DIR "${CMAKE_SOURCE_DIR}") + set(LINPHONE_SDK_DIR "${CMAKE_BINARY_DIR}/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}) + set(LINPHONE_SDK_TMP "${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_NAME}-sdk-tmp") - # ------------------------------------------------------------------------------ - # CPack settings & RPM. - # ------------------------------------------------------------------------------ - set(LINPHONE_DESKTOP_DIR "${CMAKE_SOURCE_DIR}") - set(LINPHONE_OUTPUT_DIR "${CMAKE_INSTALL_PREFIX}") - set(LINPHONE_SDK_DIR "${CMAKE_BINARY_DIR}/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}) - set(LINPHONE_SDK_TMP "${CMAKE_CURRENT_BINARY_DIR}/${EXECUTABLE_NAME}-sdk-tmp") + add_subdirectory(build) + add_subdirectory(cmake_builder/linphone_package) - add_subdirectory(build) - add_subdirectory(cmake_builder/linphone_package) + # ------------------------------------------------------------------------------ + # To start better integration into IDE. + # ------------------------------------------------------------------------------ - # ------------------------------------------------------------------------------ - # To start better integration into IDE. - # ------------------------------------------------------------------------------ + source_group( + "Qml" REGULAR_EXPRESSION ".+\.qml$" + ) + source_group( + "Js" REGULAR_EXPRESSION ".+\.js$" + ) + source_group( + "Svg" REGULAR_EXPRESSION ".+\.svg$" + ) - source_group( - "Qml" REGULAR_EXPRESSION ".+\.qml$" - ) - source_group( - "Js" REGULAR_EXPRESSION ".+\.js$" - ) - source_group( - "Svg" REGULAR_EXPRESSION ".+\.svg$" - ) - - # ------------------------------ - # Installation - # ------------------------------ - install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/cmake_builder/install.cmake") - #endif () - - if(APPLE) - target_link_libraries(${TARGET_NAME} "${CMAKE_INSTALL_PREFIX}/lib/libminizip.dylib") - elseif(NOT WIN32) - if( EXISTS "${CMAKE_INSTALL_PREFIX}/lib64/libminizip.so") - target_link_libraries(${TARGET_NAME} "${CMAKE_INSTALL_PREFIX}/lib64/libminizip.so") - elseif(EXISTS "${CMAKE_INSTALL_PREFIX}/lib/libminizip.so") - target_link_libraries(${TARGET_NAME} "${CMAKE_INSTALL_PREFIX}/lib/libminizip.so") - else() - message("Error cannot find ${CMAKE_INSTALL_PREFIX}/lib*/libminizip.so while linking") - endif() - endif() + # ------------------------------ + # Installation + # ------------------------------ + install(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/cmake_builder/install.cmake") + if(APPLE) + target_link_libraries(${TARGET_NAME} "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib") + execute_process(COMMAND install_name_tool -id "@executable_path/../Frameworks/libminizip.dylib" "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib") + elseif(NOT WIN32) + target_link_libraries(${TARGET_NAME} "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.so") + endif() endif()#If (LinphoneCxx_FOUND AND Minizip_FOUND) endif()#If (LinphoneCxx_FOUND) diff --git a/cmake_builder/install.cmake b/cmake_builder/install.cmake index b327360e8..1764be3d6 100644 --- a/cmake_builder/install.cmake +++ b/cmake_builder/install.cmake @@ -22,7 +22,7 @@ include(../application_info.cmake) 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 -add_rpath "@executable_path/../Frameworks/" "${CMAKE_INSTALL_PREFIX}/bin/${EXECUTABLE_NAME}") - execute_process(COMMAND install_name_tool -add_rpath "@executable_path/../lib/" "${CMAKE_INSTALL_PREFIX}/bin/${EXECUTABLE_NAME}") + execute_process(COMMAND install_name_tool -add_rpath "@executable_path/../Frameworks/" "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}") + execute_process(COMMAND install_name_tool -add_rpath "@executable_path/../lib/" "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}") else () endif () diff --git a/cmake_builder/linphone_package/CMakeLists.txt b/cmake_builder/linphone_package/CMakeLists.txt index 67fc91ff0..507cacf2e 100644 --- a/cmake_builder/linphone_package/CMakeLists.txt +++ b/cmake_builder/linphone_package/CMakeLists.txt @@ -62,95 +62,27 @@ set(PACKAGE_VERSION "${LINPHONE_VERSION}") # Preparing the Linphone SDK bundle. # ============================================================================== -# Create sdk-temp folder where we can find all needed files (libs, includes etc.) - -file(REMOVE_RECURSE "${LINPHONE_SDK_TMP}") message(" Linphone_SDK_DIR : ${LINPHONE_SDK_DIR}") -file(COPY "${LINPHONE_SDK_DIR}/" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}") -if(APPLE) - execute_process(COMMAND install_name_tool -id "@executable_path/../Frameworks/libminizip.dylib" "${CMAKE_INSTALL_PREFIX}/lib/libminizip.dylib") -elseif(WIN32) - -endif() -file(RENAME "${CMAKE_CURRENT_BINARY_DIR}/desktop" "${LINPHONE_SDK_TMP}") - -# 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) - list(APPEND LIST_FILES "${LINPHONE_SDK_TMP}/${NAME}.list") -endmacro () if (WIN32) - set(LIBDIR "bin") + set(LIBDIR ${CMAKE_INSTALL_BINDIR}) set(LIBPREFIX "") set(LIBEXT "dll") set(PLUGINEXT "dll") elseif (APPLE) - set(LIBDIR "lib") + set(LIBDIR ${CMAKE_INSTALL_LIBDIR}) set(LIBPREFIX "lib") set(LIBEXT "dylib") set(PLUGINEXT "so") endif () -set(LIST_FILES ) -add_sdk_list_file(bctoolbox) -add_sdk_list_file(bellesip) -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) - add_sdk_list_file(zlib) -endif () -if (ENABLE_UNIT_TESTS) - add_sdk_list_file(bcunit) -endif () -if (ENABLE_VCARD) - add_sdk_list_file(vcard) -endif () -if (ENABLE_BV16) - add_sdk_list_file(bv16) -endif () -if (ENABLE_GSM) - add_sdk_list_file(gsm) -endif () -if (ENABLE_OPUS) - add_sdk_list_file(opus) -endif () -if (ENABLE_SPEEX) - add_sdk_list_file(speex) -endif () -if (ENABLE_MBEDTLS) - add_sdk_list_file(mbedtls) -endif () -if (ENABLE_POLARSSL) - add_sdk_list_file(polarssl) -endif () -if (ENABLE_SRTP) - add_sdk_list_file(srtp) -endif () -if (ENABLE_ZRTP) - add_sdk_list_file(bzrtp) -endif () -if (ENABLE_FFMPEG) - add_sdk_list_file(ffmpeg) -endif () -file(WRITE "${LINPHONE_SDK_TMP}/${EXECUTABLE_NAME}-sdk.list" "") -foreach (FILE ${LIST_FILES}) - file(READ "${FILE}" CONTENT) - file(APPEND "${LINPHONE_SDK_TMP}/${EXECUTABLE_NAME}-sdk.list" "${CONTENT}\n") -endforeach () - # Removed unless it is usefull to get a zip from SDK : The SDK is packaged with binaries. #if (WIN32) # find_program(7Z_PROGRAM 7z PATHS "$ENV{ProgramFiles}/7-Zip") # if (7Z_PROGRAM) # execute_process( # COMMAND ${7Z_PROGRAM} a -tzip ${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}-sdk-${LINPHONE_GIT_REVISION}-win32.zip "@${EXECUTABLE_NAME}-sdk.list" -# WORKING_DIRECTORY ${LINPHONE_SDK_TMP} +# WORKING_DIRECTORY ${LINPHONE_OUTPUT_DIR} # ) # else () # message(WARNING "7z has not been found, cannot generate the SDK!") @@ -159,7 +91,7 @@ endforeach () # execute_process( # COMMAND rm -rf "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}-sdk-${LINPHONE_GIT_REVISION}-mac.zip" # COMMAND zip -ry "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}-sdk-${LINPHONE_GIT_REVISION}-mac.zip" . -i "@${EXECUTABLE_NAME}-sdk.list" -# WORKING_DIRECTORY ${LINPHONE_SDK_TMP} +# WORKING_DIRECTORY ${LINPHONE_OUTPUT_DIR} # ) #endif () @@ -171,33 +103,33 @@ if (WIN32) #execute_process( # COMMAND windeployqt "${LINPHONE_OUTPUT_DIR}/bin/${EXECUTABLE_NAME}.exe" "--qmldir" "${LINPHONE_QML_DIR}" #) - install( CODE "execute_process(COMMAND windeployqt ${LINPHONE_OUTPUT_DIR}/bin/${EXECUTABLE_NAME}.exe --qmldir=${LINPHONE_QML_DIR})")# -verbose=2)" ) + install( CODE "execute_process(COMMAND windeployqt ${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/${EXECUTABLE_NAME}.exe --qmldir=${LINPHONE_QML_DIR})")# -verbose=2)" COMPONENT application) - file(GLOB LIB_FILES "${LINPHONE_SDK_TMP}/lib/*.dll") - install(FILES ${LIB_FILES} DESTINATION "bin/") - file(GLOB LIB_FILES "${LINPHONE_SDK_TMP}/bin/*.dll") - install(FILES ${LIB_FILES} DESTINATION "bin/") - file(GLOB EXE_FILES "${LINPHONE_SDK_TMP}/bin/*.exe") - install(FILES ${EXE_FILES} DESTINATION "bin/") - if (EXISTS "${LINPHONE_SDK_TMP}/lib/mediastreamer") - install(DIRECTORY "${LINPHONE_SDK_TMP}/lib/mediastreamer" DESTINATION "lib" USE_SOURCE_PERMISSIONS) + file(GLOB LIB_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/*.dll") + install(FILES ${LIB_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/") + file(GLOB LIB_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/*.dll") + install(FILES ${LIB_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/") + file(GLOB EXE_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/*.exe") + install(FILES ${EXE_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/") + if (EXISTS "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer") + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer" DESTINATION "${CMAKE_INSTALL_LIBDIR}" USE_SOURCE_PERMISSIONS) endif () - install(DIRECTORY "${LINPHONE_SDK_TMP}/share/images" DESTINATION "share" USE_SOURCE_PERMISSIONS) - install(DIRECTORY "${LINPHONE_SDK_TMP}/share/sounds" DESTINATION "share" USE_SOURCE_PERMISSIONS) - install(FILES "${LINPHONE_SDK_TMP}/share/Linphone/rootca.pem" DESTINATION "share/Linphone/") + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS) + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS) + install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Linphone/rootca.pem" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}/") -# list(REMOVE_ITEM SHARE_CONTENT "share/belr" "share/Belr" "share/images" "share/${APPLICATION_NAME}" "share/${APPLICATION_NAME}" "share/sounds") +# 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) # list(APPEND SHARE_CONTENT_EXCLUDE PATTERN "${ITEM}" EXCLUDE) # endforeach () elseif (APPLE) 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(GLOB SHARED_LIBRARIES "${LINPHONE_SDK_TMP}/lib/lib*.dylib") + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/Frameworks/" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks" USE_SOURCE_PERMISSIONS COMPONENT application) + install(PROGRAMS "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}" DESTINATION "${APPLICATION_NAME}.app/Contents/MacOS" COMPONENT application) + file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/lib*.dylib") foreach (LIBRARY ${SHARED_LIBRARIES}) - install(FILES "${LIBRARY}" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks") + install(FILES "${LIBRARY}" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks" COMPONENT application) endforeach () find_program(DEPLOYQT_PROGRAM macdeployqt) @@ -206,32 +138,27 @@ elseif (APPLE) endif () - if (EXISTS "${LINPHONE_OUTPUT_DIR}/lib/mediastreamer") - file(COPY "${LINPHONE_OUTPUT_DIR}/lib/mediastreamer" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/lib" USE_SOURCE_PERMISSIONS) + if (EXISTS "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer") + file(COPY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_LIBDIR}" USE_SOURCE_PERMISSIONS) endif () - install(FILES "${LINPHONE_OUTPUT_DIR}/lib/libminizip.dylib" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks/") - 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/Linphone/rootca.pem" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${APPLICATION_NAME}") - install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/linphonerc-factory" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${APPLICATION_NAME}") - - install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/use-other-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${APPLICATION_NAME}/assistant") - install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/create-app-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${APPLICATION_NAME}/assistant") - install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/use-app-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${APPLICATION_NAME}/assistant") + install(FILES "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks/" COMPONENT application) + install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Belr/grammars/cpim_grammar" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/" COMPONENT application) + install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Belr/grammars/vcard_grammar" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/" COMPONENT application) + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS COMPONENT application) + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS COMPONENT application) + install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Linphone/rootca.pem" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}" COMPONENT application) 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) 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}") + 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}") endif() endforeach () - install( CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} ${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app -qmldir=${LINPHONE_QML_DIR})")# -verbose=2)" ) + install( CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} ${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app -qmldir=${LINPHONE_QML_DIR})")# -verbose=2)" COMPONENT application) if (LINPHONE_BUILDER_SIGNING_IDENTITY) file(GLOB FRAMEWORKS_NAMES "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app/Contents/Frameworks/*") @@ -247,45 +174,32 @@ 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 COMPONENT application) -# configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/packaging.cmake.in" "packaging.cmake" @ONLY) + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/packaging.cmake.in" "packaging.cmake" @ONLY) # install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/packaging.cmake") else()# Not Windows and Apple foreach (LIBRARY ${SHARED_LIBRARIES}) get_filename_component(LIBRARY_FILENAME ${LIBRARY} NAME) - #if(NOT ("${LIBRARY_FILENAME}" STREQUAL "libminizip.dylib")) - message("Changing RPATH of ${LIBRARY_FILENAME} from '${LINPHONE_OUTPUT_DIR}/lib' to '$ORIGIN/../lib'") - execute_process(COMMAND install_name_tool -rpath "${LINPHONE_OUTPUT_DIR}/lib" "$ORIGIN/../lib" "${LIBRARY}") - execute_process(COMMAND install_name_tool -add_rpath "$ORIGIN/../lib64" "${LIBRARY}") - #endif() - endforeach () - install(DIRECTORY "${LINPHONE_SDK_TMP}/bin/" DESTINATION "bin" USE_SOURCE_PERMISSIONS) + message("Changing RPATH of ${LIBRARY_FILENAME} from '${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}' to '$ORIGIN/../${CMAKE_INSTALL_LIBDIR}'") + execute_process(COMMAND install_name_tool -rpath "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}" "$ORIGIN/../${CMAKE_INSTALL_LIBDIR}" "${LIBRARY}") + endforeach () + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/" DESTINATION "${CMAKE_INSTALL_BINDIR}" USE_SOURCE_PERMISSIONS) #Just in case. This is useless because we have to use CMAKE_INSTALL_LIBDIR - if( EXISTS "${LINPHONE_SDK_TMP}/lib/") - install(DIRECTORY "${LINPHONE_SDK_TMP}/lib/" DESTINATION "lib" USE_SOURCE_PERMISSIONS) + if( EXISTS "${LINPHONE_OUTPUT_DIR}/lib/") + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/lib/" DESTINATION "lib" USE_SOURCE_PERMISSIONS) endif() - if( EXISTS "${LINPHONE_SDK_TMP}/lib64/") - install(DIRECTORY "${LINPHONE_SDK_TMP}/lib64/" DESTINATION "lib64" USE_SOURCE_PERMISSIONS) + if( EXISTS "${LINPHONE_OUTPUT_DIR}/lib64/") + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/lib64/" DESTINATION "lib64" USE_SOURCE_PERMISSIONS) endif() - install(DIRECTORY "${LINPHONE_SDK_TMP}/share/" DESTINATION "share" USE_SOURCE_PERMISSIONS) - #install(PROGRAMS "${CMAKE_INSTALL_PREFIX}/bin/${EXECUTABLE_NAME}" DESTINATION "/bin") + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS) - - if (EXISTS "${LINPHONE_SDK_TMP}/lib/mediastreamer") - file(COPY "${LINPHONE_SDK_TMP}/lib/mediastreamer" DESTINATION "lib" USE_SOURCE_PERMISSIONS) + if (EXISTS "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer") + file(COPY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer" DESTINATION "${CMAKE_INSTALL_LIBDIR}" USE_SOURCE_PERMISSIONS) endif () - install(FILES "${LINPHONE_SDK_TMP}/share/belr/grammars/cpim_grammar" DESTINATION "share/belr/grammars/") - install(FILES "${LINPHONE_SDK_TMP}/share/belr/grammars/vcard_grammar" DESTINATION "share/belr/grammars/") -# install(DIRECTORY "${LINPHONE_SDK_TMP}/share/images" DESTINATION "share" USE_SOURCE_PERMISSIONS) -# install(DIRECTORY "${LINPHONE_SDK_TMP}/share/sounds" DESTINATION "share" USE_SOURCE_PERMISSIONS) - #install(FILES "${LINPHONE_SDK_TMP}/share/${APPLICATION_NAME}/rootca.pem" DESTINATION "share/${APPLICATION_NAME}") - install(FILES "${LINPHONE_SDK_TMP}/share/linphone/rootca.pem" DESTINATION "share/${APPLICATION_NAME}") #We use executable_name because of name folder that is not harmonized from the SDK -# install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/linphonerc-factory" DESTINATION "share/${APPLICATION_NAME}") - -# install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/use-other-sip-account.rc" DESTINATION "share/${APPLICATION_NAME}/assistant") -# install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/create-app-sip-account.rc" DESTINATION "share/${APPLICATION_NAME}/assistant") -# install(FILES "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/use-app-sip-account.rc" DESTINATION "share/${APPLICATION_NAME}/assistant") + install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/cpim_grammar" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/") + install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/vcard_grammar" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/") + install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/linphone/rootca.pem" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}") #We use executable_name because of name folder that is not harmonized from the SDK endif () # Temporary deactivate @@ -298,7 +212,7 @@ endif () # if (NOT VCRUNTIME_LIB) # find_file(VCRUNTIME_LIB "msvcr${MSVC_VERSION}0.dll" PATHS "C:/Windows/System32") # endif () -# install(FILES ${MSVCP_LIB} ${UCRTBASE_LIB} ${VCRUNTIME_LIB} DESTINATION "bin") +# install(FILES ${MSVCP_LIB} ${UCRTBASE_LIB} ${VCRUNTIME_LIB} DESTINATION "${CMAKE_INSTALL_BINDIR}") # if (CMAKE_BUILD_TYPE STREQUAL "Debug") # find_file(MSVCPD_LIB "msvcp${MSVC_VERSION}0d.dll" PATHS "C:/Windows/System32") # find_file(UCRTBASED_LIB "ucrtbased.dll" PATHS "C:/Windows/System32") @@ -306,7 +220,7 @@ endif () # if (NOT VCRUNTIMED_LIB) # find_file(VCRUNTIMED_LIB "msvcr${MSVC_VERSION}0d.dll" PATHS "C:/Windows/System32") # endif () -# install(FILES ${MSVCPD_LIB} ${UCRTBASED_LIB} ${VCRUNTIMED_LIB} DESTINATION "bin") +# install(FILES ${MSVCPD_LIB} ${UCRTBASED_LIB} ${VCRUNTIMED_LIB} DESTINATION "${CMAKE_INSTALL_BINDIR}") # endif () #endif () @@ -322,7 +236,6 @@ 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) @@ -331,6 +244,9 @@ if (APPLE) 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") + set(CPACK_BINARY_DRAGNDROP ON) +else() + set(CPACK_PACKAGE_INSTALL_DIRECTORY "${APPLICATION_NAME}") endif () if (WIN32) @@ -378,7 +294,7 @@ if (WIN32) set(PASSPHRASE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/sign/passphrase.txt") get_filename_component(WINSDK_DIR "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Microsoft SDKs\\Windows;CurrentInstallFolder]" REALPATH CACHE) find_package(PythonInterp) - find_program(SIGNTOOL signtool PATHS ${WINSDK_DIR}/bin) + find_program(SIGNTOOL signtool PATHS ${WINSDK_DIR}/${CMAKE_INSTALL_BINDIR}) set(SIGNTOOL_COMMAND "${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/windows/signtool.py") set(PERFORM_SIGNING 0) if (EXISTS ${PFX_FILE})