From c39fe349df04770f72939aad66c250b085f68e30 Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Thu, 12 Jul 2018 14:21:22 +0200 Subject: [PATCH] feat(app): rename easily app --- CMakeLists.txt | 47 +- assets/linphone.desktop.cmake | 24 +- cmake_builder/CMakeLists.txt | 10 +- cmake_builder/additional_steps.cmake | 10 +- cmake_builder/linphone_package/CMakeLists.txt | 564 +++++++++--------- cmake_builder/linphone_package/Info.plist.in | 6 +- .../linphone_package/MacPackaging.cmake.in | 12 +- .../linphone_package/NSIS.template.in | 8 +- .../WindowsPackaging.cmake.in | 24 +- ...linphone_dmg.scpt => linphone_dmg.scpt.in} | 3 +- .../sdk_content/linphone.list.in | 1 - cmake_builder/linphone_package/uninstall.nsi | 11 - .../linphone_package/uninstall.nsi.in | 11 + .../uri-handler-install.nsi.in | 16 +- cmake_builder/linphoneqt.cmake | 2 +- config.h.cmake | 1 + src/app/AppController.cpp | 4 +- src/app/logger/Logger.cpp | 2 +- src/app/paths/Paths.cpp | 8 +- 19 files changed, 387 insertions(+), 377 deletions(-) rename cmake_builder/linphone_package/{linphone_dmg.scpt => linphone_dmg.scpt.in} (94%) delete mode 100644 cmake_builder/linphone_package/uninstall.nsi create mode 100644 cmake_builder/linphone_package/uninstall.nsi.in diff --git a/CMakeLists.txt b/CMakeLists.txt index fb4a623a4..36ac6726b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -25,7 +25,18 @@ project(linphoneqt VERSION 4.1.1) set(APP_LIBRARY app-library) -set(APPLICATION_NAME linphone) +if (NOT DEFINED EXECUTABLE_NAME) + set(EXECUTABLE_NAME linphone) +endif () + +if (NOT DEFINED APPLICATION_NAME) + set(APPLICATION_NAME Linphone) +endif () + +set(APPLICATION_DESCRIPTION "A libre SIP client") + +# ------------------------------------------------------------------------------ + set(TARGET_NAME linphone-qt) set(CMAKE_CXX_STANDARD 11) @@ -415,29 +426,37 @@ foreach (target ${TARGET_NAME}) ) endforeach () -configure_file("assets/linphone.desktop.cmake" "linphone.desktop" @ONLY) +if (UNIX AND NOT APPLE) + # Install desktop/icon files. + configure_file("assets/linphone.desktop.cmake" "${EXECUTABLE_NAME}.desktop" @ONLY) -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/linphone.desktop" - DESTINATION "${CMAKE_INSTALL_DATADIR}/applications" -) -install(FILES "${ASSETS_DIR}/images/linphone_logo.svg" - DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps/" - RENAME "linphone.svg" -) -install(DIRECTORY "${ASSETS_DIR}/icons/hicolor" - DESTINATION "${CMAKE_INSTALL_DATADIR}/icons" -) + 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) + foreach (DIR ${ICON_DIRS}) + install(FILES "${ASSETS_DIR}/icons/hicolor/${DIR}/apps/linphone.png" + DESTINATION "${CMAKE_INSTALL_DATADIR}/icons/hicolor/${DIR}/apps/" + RENAME "${EXECUTABLE_NAME}.png" + ) + endforeach () +endif () # ------------------------------------------------------------------------------ # Install rc files. # ------------------------------------------------------------------------------ install(FILES "${ASSETS_DIR}/linphonerc-factory" - DESTINATION "${CMAKE_INSTALL_DATADIR}/linphone" + DESTINATION "${CMAKE_INSTALL_DATADIR}/${EXECUTABLE_NAME}" ) set(ASSETS_ASSISTANT_DIR "${ASSETS_DIR}/assistant") -set(ASSISTANT_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/linphone/assistant") +set(ASSISTANT_INSTALL_DATADIR "${CMAKE_INSTALL_DATADIR}/${EXECUTABLE_NAME}/assistant") install(FILES "${ASSETS_ASSISTANT_DIR}/use-other-sip-account.rc" DESTINATION "${ASSISTANT_INSTALL_DATADIR}" diff --git a/assets/linphone.desktop.cmake b/assets/linphone.desktop.cmake index d9d86e447..70d7314f6 100644 --- a/assets/linphone.desktop.cmake +++ b/assets/linphone.desktop.cmake @@ -1,26 +1,10 @@ [Desktop Entry] -Name=Linphone +Name=@APPLICATION_NAME@ GenericName=SIP Phone -Comment=Linphone is a libre SIP client +Comment=@APPLICATION_DESCRIPTION@ Type=Application -Exec=@CMAKE_INSTALL_PREFIX@/bin/linphone %u -Icon=linphone +Exec=@CMAKE_INSTALL_PREFIX@/bin/@EXECUTABLE_NAME@ %u +Icon=@EXECUTABLE_NAME@ Terminal=false Categories=Network;Telephony; MimeType=x-scheme-handler/sip-linphone;x-scheme-handler/sip;x-scheme-handler/sips-linphone;x-scheme-handler/sips; - -# Translations -Name[ar]=لِنْفُونْ -Name[cs]=Linphone -Name[de]=Linphone -Name[fr]=Linphone -Name[he]=Linphone -Name[hu]=Linphone -Name[it]=Linphone -Name[ja]=Linphone -Name[nb_NO]=Linphone -Name[ru]=Linphone -Name[sr]=Линфон -Name[sv]=Linphone -Name[zh_CN]=Linphone -Name[zh_TW]=Linphone diff --git a/cmake_builder/CMakeLists.txt b/cmake_builder/CMakeLists.txt index 5454e5ebb..2e3379a59 100644 --- a/cmake_builder/CMakeLists.txt +++ b/cmake_builder/CMakeLists.txt @@ -24,6 +24,12 @@ lcb_define_target("linphoneqt" "linphone" "ms2plugins") lcb_blacklist_dependencies("libxsd" "soci") # linphone do not need them for the moment. -if(NOT WIN32 AND NOT APPLE) +if (NOT WIN32 AND NOT APPLE) lcb_blacklist_dependencies("turbo-jpeg") # turbo-jpeg is already provided by Qt5 so do not build it. -endif() +endif () + +set(EXECUTABLE_NAME linphone) + +string(SUBSTRING ${EXECUTABLE_NAME} 0 1 FIRST_LETTER) +string(TOUPPER ${FIRST_LETTER} FIRST_LETTER) +string(REGEX REPLACE "^.(.*)" "${FIRST_LETTER}\\1" APPLICATION_NAME "${EXECUTABLE_NAME}") diff --git a/cmake_builder/additional_steps.cmake b/cmake_builder/additional_steps.cmake index d45f836f9..a099833ea 100644 --- a/cmake_builder/additional_steps.cmake +++ b/cmake_builder/additional_steps.cmake @@ -21,15 +21,15 @@ ############################################################################ if (LINPHONE_BUILDER_TARGET STREQUAL linphoneqt AND WIN32) - # Create a shortcut to linphone.exe in install prefix - set(SHORTCUT_PATH "${CMAKE_INSTALL_PREFIX}/linphone.lnk") - set(SHORTCUT_TARGET_PATH "${CMAKE_INSTALL_PREFIX}/bin/linphone.exe") + # Create a shortcut to linphone.exe in install prefix. + set(SHORTCUT_PATH "${CMAKE_INSTALL_PREFIX}/${EXECUTABLE_NAME}.lnk") + set(SHORTCUT_TARGET_PATH "${CMAKE_INSTALL_PREFIX}/bin/${EXECUTABLE_NAME}.exe") set(SHORTCUT_WORKING_DIRECTORY "${CMAKE_INSTALL_PREFIX}") configure_file("${CMAKE_CURRENT_LIST_DIR}/linphone_package/winshortcut.vbs.in" "${CMAKE_CURRENT_BINARY_DIR}/winshortcut.vbs" @ONLY) add_custom_command(OUTPUT "${SHORTCUT_PATH}" COMMAND "cscript" "${CMAKE_CURRENT_BINARY_DIR}/winshortcut.vbs") add_custom_target(linphoneqt_winshortcut ALL DEPENDS "${SHORTCUT_PATH}" TARGET_linphone_builder) - # Create a shortcut to the solution file in the top directory + # Create a shortcut to the solution file in the top directory. set(SHORTCUT_PATH "${CMAKE_SOURCE_DIR}/../../Project.sln.lnk") set(SHORTCUT_TARGET_PATH "${LINPHONE_BUILDER_WORK_DIR}/cmake/Project.sln") set(SHORTCUT_WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/../..") @@ -59,7 +59,7 @@ if (ENABLE_PACKAGING) SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/linphone_package" DOWNLOAD_COMMAND "" CMAKE_GENERATOR ${CMAKE_GENERATOR} - CMAKE_ARGS ${LINPHONE_BUILDER_EP_ARGS} -DCMAKE_INSTALL_PREFIX=${LINPHONE_BUILDER_WORK_DIR}/PACKAGE -DTOOLS_DIR=${CMAKE_BINARY_DIR}/programs -DLINPHONE_OUTPUT_DIR=${CMAKE_INSTALL_PREFIX} -DLINPHONE_DESKTOP_DIR=${CMAKE_CURRENT_LIST_DIR}/.. -DLINPHONE_SOURCE_DIR=${EP_linphone_SOURCE_DIR} ${ENABLE_VARIABLES} -DOPENH264_VERSION=${OPENH264_VERSION} -DLINPHONE_BUILDER_SIGNING_IDENTITY=${LINPHONE_BUILDER_SIGNING_IDENTITY} + CMAKE_ARGS ${LINPHONE_BUILDER_EP_ARGS} -DCMAKE_INSTALL_PREFIX=${LINPHONE_BUILDER_WORK_DIR}/PACKAGE -DTOOLS_DIR=${CMAKE_BINARY_DIR}/programs -DLINPHONE_OUTPUT_DIR=${CMAKE_INSTALL_PREFIX} -DLINPHONE_DESKTOP_DIR=${CMAKE_CURRENT_LIST_DIR}/.. -DLINPHONE_SOURCE_DIR=${EP_linphone_SOURCE_DIR} ${ENABLE_VARIABLES} -DOPENH264_VERSION=${OPENH264_VERSION} -DLINPHONE_BUILDER_SIGNING_IDENTITY=${LINPHONE_BUILDER_SIGNING_IDENTITY} -DAPPLICATION_NAME=${APPLICATION_NAME} -DEXECUTABLE_NAME=${EXECUTABLE_NAME} ) endif () endif () diff --git a/cmake_builder/linphone_package/CMakeLists.txt b/cmake_builder/linphone_package/CMakeLists.txt index 0f12c4b8a..0a77bd474 100644 --- a/cmake_builder/linphone_package/CMakeLists.txt +++ b/cmake_builder/linphone_package/CMakeLists.txt @@ -21,55 +21,55 @@ ############################################################################ cmake_minimum_required(VERSION 3.0) -project(LINPHONE_PACKAGE) # Dummy project +project(LINPHONE_PACKAGE) # Dummy project. find_package(Linphone REQUIRED) find_package(Git) set(LINPHONE_QML_DIR "${LINPHONE_DESKTOP_DIR}/ui") -if(GIT_EXECUTABLE) - execute_process( - COMMAND ${GIT_EXECUTABLE} describe --always - OUTPUT_VARIABLE LINPHONE_GIT_REVISION - OUTPUT_STRIP_TRAILING_WHITESPACE - WORKING_DIRECTORY ${LINPHONE_DESKTOP_DIR} - ) -else() - set(LINPHONE_GIT_REVISION "0.0.0") -endif() +if (GIT_EXECUTABLE) + execute_process( + COMMAND ${GIT_EXECUTABLE} describe --always + OUTPUT_VARIABLE LINPHONE_GIT_REVISION + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY ${LINPHONE_DESKTOP_DIR} + ) +else () + set(LINPHONE_GIT_REVISION "0.0.0") +endif () string(REGEX REPLACE "([0-9.]+)-?.*" "\\1" LINPHONE_VERSION "${LINPHONE_GIT_REVISION}") string(REPLACE "." ";" SPLITTED_LINPHONE_VERSION "${LINPHONE_VERSION}") list(LENGTH SPLITTED_LINPHONE_VERSION SPLITTED_LINPHONE_VERSION_LENGTH) list(GET SPLITTED_LINPHONE_VERSION 0 LINPHONE_MAJOR_VERSION) list(GET SPLITTED_LINPHONE_VERSION 1 LINPHONE_MINOR_VERSION) -if(SPLITTED_LINPHONE_VERSION_LENGTH GREATER 2) - list(GET SPLITTED_LINPHONE_VERSION 2 LINPHONE_MICRO_VERSION) -endif() +if (SPLITTED_LINPHONE_VERSION_LENGTH GREATER 2) + list(GET SPLITTED_LINPHONE_VERSION 2 LINPHONE_MICRO_VERSION) +endif () set(PACKAGE_VERSION "${LINPHONE_VERSION}") -# Preparing the Linphone SDK bundle -set(LINPHONE_SDK_TMP "${CMAKE_CURRENT_BINARY_DIR}/linphone-sdk-tmp") +# Preparing the Linphone SDK bundle. +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}") file(RENAME "${CMAKE_CURRENT_BINARY_DIR}/desktop" "${LINPHONE_SDK_TMP}") -# Generates a zip archive containing the development files of liblinphone -macro(add_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(LIBPREFIX "") - set(LIBEXT "dll") - set(PLUGINEXT "dll") -elseif(APPLE) - set(LIBDIR "lib") - set(LIBPREFIX "lib") - set(LIBEXT "dylib") - set(PLUGINEXT "so") -endif() +# Generates a zip archive containing the development files of liblinphone. +macro (add_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(LIBPREFIX "") + set(LIBEXT "dll") + set(PLUGINEXT "dll") +elseif (APPLE) + set(LIBDIR "lib") + set(LIBPREFIX "lib") + set(LIBEXT "dylib") + set(PLUGINEXT "so") +endif () set(LIST_FILES ) add_list_file(bctoolbox) add_list_file(bellesip) @@ -77,277 +77,277 @@ add_list_file(ortp) add_list_file(ms2) add_list_file(ms2plugins) add_list_file(linphone) -if(WIN32) - add_list_file(sqlite3) - add_list_file(xml2) - add_list_file(zlib) -endif() -if(ENABLE_UNIT_TESTS) - add_list_file(bcunit) -endif() -if(ENABLE_VCARD) - add_list_file(vcard) -endif() -if(ENABLE_BV16) - add_list_file(bv16) -endif() -if(ENABLE_GSM) - add_list_file(gsm) -endif() -if(ENABLE_OPUS) - add_list_file(opus) -endif() -if(ENABLE_SPEEX) - add_list_file(speex) -endif() -if(ENABLE_MBEDTLS) - add_list_file(mbedtls) -endif() -if(ENABLE_POLARSSL) - add_list_file(polarssl) -endif() -if(ENABLE_SRTP) - add_list_file(srtp) -endif() -if(ENABLE_ZRTP) - add_list_file(bzrtp) -endif() -if(ENABLE_FFMPEG) - add_list_file(ffmpeg) -endif() -if(ENABLE_OPENH264) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/README.openh264.txt.in" "${LINPHONE_SDK_TMP}/README.openh264.txt" @ONLY) - add_list_file(openh264) -endif() -file(WRITE "${LINPHONE_SDK_TMP}/linphone-sdk.list" "") -foreach(_file ${LIST_FILES}) - file(READ "${_file}" _content) - file(APPEND "${LINPHONE_SDK_TMP}/linphone-sdk.list" "${_content}\n") -endforeach() -if(WIN32) - find_program(7Z_PROGRAM 7z.exe) - if(7Z_PROGRAM) - execute_process( - COMMAND ${7Z_PROGRAM} a -tzip ${CMAKE_BINARY_DIR}/linphone-sdk-${LINPHONE_GIT_REVISION}-win32.zip @linphone-sdk.list - WORKING_DIRECTORY ${LINPHONE_SDK_TMP} - ) - else() - message(WARNING "7z has not been found, cannot generate the SDK!") - endif() -elseif(APPLE) - execute_process( - COMMAND rm -rf "${CMAKE_BINARY_DIR}/linphone-sdk-${LINPHONE_GIT_REVISION}-mac.zip" - COMMAND zip -ry "${CMAKE_BINARY_DIR}/linphone-sdk-${LINPHONE_GIT_REVISION}-mac.zip" . -i "@linphone-sdk.list" - WORKING_DIRECTORY ${LINPHONE_SDK_TMP} - ) -endif() +if (WIN32) + add_list_file(sqlite3) + add_list_file(xml2) + add_list_file(zlib) +endif () +if (ENABLE_UNIT_TESTS) + add_list_file(bcunit) +endif () +if (ENABLE_VCARD) + add_list_file(vcard) +endif () +if (ENABLE_BV16) + add_list_file(bv16) +endif () +if (ENABLE_GSM) + add_list_file(gsm) +endif () +if (ENABLE_OPUS) + add_list_file(opus) +endif () +if (ENABLE_SPEEX) + add_list_file(speex) +endif () +if (ENABLE_MBEDTLS) + add_list_file(mbedtls) +endif () +if (ENABLE_POLARSSL) + add_list_file(polarssl) +endif () +if (ENABLE_SRTP) + add_list_file(srtp) +endif () +if (ENABLE_ZRTP) + add_list_file(bzrtp) +endif () +if (ENABLE_FFMPEG) + add_list_file(ffmpeg) +endif () +if (ENABLE_OPENH264) + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/README.openh264.txt.in" "${LINPHONE_SDK_TMP}/README.openh264.txt" @ONLY) + add_list_file(openh264) +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 () +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} + ) + else () + message(WARNING "7z has not been found, cannot generate the SDK!") + endif () +elseif (APPLE) + 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} + ) +endif () -if(WIN32) - execute_process( - COMMAND windeployqt "${LINPHONE_OUTPUT_DIR}/bin/linphone.exe" "--qmldir" "${LINPHONE_QML_DIR}" - ) +if (WIN32) + execute_process( + COMMAND windeployqt "${LINPHONE_OUTPUT_DIR}/bin/${EXECUTABLE_NAME}.exe" "--qmldir" "${LINPHONE_QML_DIR}" + ) - file(GLOB SHARE_CONTENT RELATIVE "${LINPHONE_OUTPUT_DIR}" "${LINPHONE_OUTPUT_DIR}/share/*") - list(REMOVE_ITEM SHARE_CONTENT "share/belr" "share/Belr" "share/images" "share/linphone" "share/Linphone" "share/sounds") - foreach(item IN LISTS SHARE_CONTENT) - list(APPEND SHARE_CONTENT_EXCLUDE PATTERN "${item}" EXCLUDE) - endforeach() + file(GLOB SHARE_CONTENT RELATIVE "${LINPHONE_OUTPUT_DIR}" "${LINPHONE_OUTPUT_DIR}/share/*") + list(REMOVE_ITEM SHARE_CONTENT "share/belr" "share/Belr" "share/images" "share/${EXECUTABLE_NAME}" "share/${APPLICATION_NAME}" "share/sounds") + foreach (item IN LISTS SHARE_CONTENT) + list(APPEND SHARE_CONTENT_EXCLUDE PATTERN "${item}" EXCLUDE) + endforeach () - install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/" - DESTINATION "." - COMPONENT "linphone_base" - PATTERN "bin/*_tester.exe" EXCLUDE - PATTERN "bin/belcard*.exe" EXCLUDE - PATTERN "bin/openh264.dll" EXCLUDE - PATTERN "include" EXCLUDE - PATTERN "lib/*.a" EXCLUDE - PATTERN "lib/*.def" EXCLUDE - PATTERN "lib/*.exp" EXCLUDE - PATTERN "lib/*.la" EXCLUDE - PATTERN "lib/*.lib" EXCLUDE - PATTERN "lib/mediastreamer/plugins/*openh264.*" EXCLUDE - PATTERN "lib/pkgconfig" EXCLUDE - PATTERN "lib/Win32" EXCLUDE - PATTERN "linphone.lnk" EXCLUDE - PATTERN "share/Belr/cmake" EXCLUDE - PATTERN "share/Linphone/cmake" EXCLUDE - ${SHARE_CONTENT_EXCLUDE} - ) + install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/" + DESTINATION "." + COMPONENT "linphone_base" + PATTERN "bin/*_tester.exe" EXCLUDE + PATTERN "bin/belcard*.exe" EXCLUDE + PATTERN "bin/openh264.dll" EXCLUDE + PATTERN "include" EXCLUDE + PATTERN "lib/*.a" EXCLUDE + PATTERN "lib/*.def" EXCLUDE + PATTERN "lib/*.exp" EXCLUDE + PATTERN "lib/*.la" EXCLUDE + PATTERN "lib/*.lib" EXCLUDE + PATTERN "lib/mediastreamer/plugins/*openh264.*" EXCLUDE + PATTERN "lib/pkgconfig" EXCLUDE + PATTERN "lib/Win32" EXCLUDE + PATTERN "${EXECUTABLE_NAME}.lnk" EXCLUDE + PATTERN "share/Belr/cmake" EXCLUDE + PATTERN "share/${APPLICATION_NAME}/cmake" EXCLUDE + ${SHARE_CONTENT_EXCLUDE} + ) + if (ENABLE_OPENH264) + # Include bunzip2.exe and bzip2.dll to be able to extract the openh264 file downloaded from Cisco. + install(DIRECTORY "${TOOLS_DIR}/" + DESTINATION "bin" + COMPONENT "msopenh264" + FILES_MATCHING PATTERN "b*zip2.*" + ) + install(FILES "${LINPHONE_OUTPUT_DIR}/lib/mediastreamer/plugins/libmsopenh264.dll" + DESTINATION "lib/mediastreamer/plugins" + COMPONENT "msopenh264" + ) + endif () +elseif (APPLE) + configure_file("Info.plist.in" "${APPLICATION_NAME}.app/Contents/Info.plist" @ONLY) + configure_file("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") + foreach (_library ${SHARED_LIBRARIES}) + file(COPY "${_library}" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks") + endforeach () - if(ENABLE_OPENH264) - # Include bunzip2.exe and bzip2.dll to be able to extract the openh264 file downloaded from Cisco - install(DIRECTORY "${TOOLS_DIR}/" - DESTINATION "bin" - COMPONENT "msopenh264" - FILES_MATCHING PATTERN "b*zip2.*" - ) - install(FILES "${LINPHONE_OUTPUT_DIR}/lib/mediastreamer/plugins/libmsopenh264.dll" - DESTINATION "lib/mediastreamer/plugins" - COMPONENT "msopenh264" - ) - endif() + 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" + ) -elseif(APPLE) - configure_file("Info.plist.in" "Linphone.app/Contents/Info.plist" @ONLY) - configure_file("linphone.icns" "Linphone.app/Contents/Resources/linphone.icns" COPYONLY) - file(COPY "${LINPHONE_OUTPUT_DIR}/bin/linphone" DESTINATION "Linphone.app/Contents/MacOS") - file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/lib/lib*.dylib") - foreach(_library ${SHARED_LIBRARIES}) - file(COPY "${_library}" DESTINATION "Linphone.app/Contents/Frameworks") - endforeach() + 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/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}") - 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}/Linphone.app" "-qmldir=${LINPHONE_QML_DIR}" "-verbose=2" - ) + 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-linphone-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}/assistant") + file(COPY "${LINPHONE_OUTPUT_DIR}/share/${APPLICATION_NAME}/assistant/use-linphone-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/share/${EXECUTABLE_NAME}/assistant") - if(EXISTS "${LINPHONE_OUTPUT_DIR}/lib/mediastreamer") - file(COPY "${LINPHONE_OUTPUT_DIR}/lib/mediastreamer" DESTINATION "Linphone.app/Contents/Resources/lib" USE_SOURCE_PERMISSIONS) - endif() - file(COPY "${LINPHONE_OUTPUT_DIR}/share/images" DESTINATION "Linphone.app/Contents/Resources/share" USE_SOURCE_PERMISSIONS) - file(COPY "${LINPHONE_OUTPUT_DIR}/share/sounds" DESTINATION "Linphone.app/Contents/Resources/share" USE_SOURCE_PERMISSIONS) - file(COPY "${LINPHONE_OUTPUT_DIR}/share/Linphone/rootca.pem" DESTINATION "Linphone.app/Contents/Resources/share/linphone") - file(COPY "${LINPHONE_OUTPUT_DIR}/share/Linphone/linphonerc-factory" DESTINATION "Linphone.app/Contents/Resources/share/linphone") + 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}") + endforeach () - file(COPY "${LINPHONE_OUTPUT_DIR}/share/Linphone/assistant/use-other-sip-account.rc" DESTINATION "Linphone.app/Contents/Resources/share/linphone/assistant") - file(COPY "${LINPHONE_OUTPUT_DIR}/share/Linphone/assistant/create-linphone-sip-account.rc" DESTINATION "Linphone.app/Contents/Resources/share/linphone/assistant") - file(COPY "${LINPHONE_OUTPUT_DIR}/share/Linphone/assistant/use-linphone-sip-account.rc" DESTINATION "Linphone.app/Contents/Resources/share/linphone/assistant") + if (LINPHONE_BUILDER_SIGNING_IDENTITY) + file(GLOB FRAMEWORKS_NAMES "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app/Contents/Frameworks/*") + foreach (_framework ${FRAMEWORKS_NAMES}) + execute_process(COMMAND "codesign" "--verbose" "-s" "${LINPHONE_BUILDER_SIGNING_IDENTITY}" "${_framework}") + endforeach () + file(GLOB PLUGINS_NAMES "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app/Contents/PlugIns/*") + foreach (_plugin ${PLUGINS_NAMES}) + file(GLOB PLUGINS_FILES "${_plugin}/*") + foreach (_pluginfile ${PLUGINS_FILES}) + execute_process(COMMAND "codesign" "--verbose" "-s" "${LINPHONE_BUILDER_SIGNING_IDENTITY}" "${_pluginfile}") + endforeach () + endforeach () + execute_process(COMMAND "codesign" "--verbose" "-s" "${LINPHONE_BUILDER_SIGNING_IDENTITY}" "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app") + endif () - file(GLOB SHARED_LIBRARIES "${CMAKE_CURRENT_BINARY_DIR}/Linphone.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}") - endforeach() + install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app" DESTINATION "." USE_SOURCE_PERMISSIONS) - if(LINPHONE_BUILDER_SIGNING_IDENTITY) - file(GLOB FRAMEWORKS_NAMES "${CMAKE_CURRENT_BINARY_DIR}/Linphone.app/Contents/Frameworks/*") - foreach(_framework ${FRAMEWORKS_NAMES}) - execute_process(COMMAND "codesign" "--verbose" "-s" "${LINPHONE_BUILDER_SIGNING_IDENTITY}" "${_framework}") - endforeach() - file(GLOB PLUGINS_NAMES "${CMAKE_CURRENT_BINARY_DIR}/Linphone.app/Contents/PlugIns/*") - foreach(_plugin ${PLUGINS_NAMES}) - file(GLOB PLUGINS_FILES "${_plugin}/*") - foreach(_pluginfile ${PLUGINS_FILES}) - execute_process(COMMAND "codesign" "--verbose" "-s" "${LINPHONE_BUILDER_SIGNING_IDENTITY}" "${_pluginfile}") - endforeach() - endforeach() - execute_process(COMMAND "codesign" "--verbose" "-s" "${LINPHONE_BUILDER_SIGNING_IDENTITY}" "${CMAKE_CURRENT_BINARY_DIR}/Linphone.app") - endif() + configure_file("MacPackaging.cmake.in" "MacPackaging.cmake" @ONLY) + install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/MacPackaging.cmake") +endif () - install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/Linphone.app" DESTINATION "." USE_SOURCE_PERMISSIONS) +if (MSVC) + string(REGEX REPLACE "Visual Studio ([0-9]+).*" "\\1" MSVC_VERSION "${CMAKE_GENERATOR}") + find_file(MSVCP_LIB "msvcp${MSVC_VERSION}0.dll" PATHS "C:/Windows/System32") + find_file(UCRTBASE_LIB "ucrtbase.dll" PATHS "C:/Windows/System32") + # Starting with Visual Studio 2015 (MSVC_VERSION==14) the msvcr dll has been renamed to vcruntime. + find_file(VCRUNTIME_LIB "vcruntime${MSVC_VERSION}0.dll" PATHS "C:/Windows/System32") + 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") + 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") + find_file(VCRUNTIMED_LIB "vcruntime${MSVC_VERSION}0d.dll" PATHS "C:/Windows/System32") + 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") + endif () +endif () - configure_file("MacPackaging.cmake.in" "MacPackaging.cmake" @ONLY) - install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/MacPackaging.cmake") -endif() - -if(MSVC) - string(REGEX REPLACE "Visual Studio ([0-9]+).*" "\\1" MSVC_VERSION "${CMAKE_GENERATOR}") - find_file(MSVCP_LIB "msvcp${MSVC_VERSION}0.dll" PATHS "C:/Windows/System32") - find_file(UCRTBASE_LIB "ucrtbase.dll" PATHS "C:/Windows/System32") - # Starting with Visual Studio 2015 (MSVC_VERSION==14) the msvcr dll has been renamed to vcruntime - find_file(VCRUNTIME_LIB "vcruntime${MSVC_VERSION}0.dll" PATHS "C:/Windows/System32") - 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") - 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") - find_file(VCRUNTIMED_LIB "vcruntime${MSVC_VERSION}0d.dll" PATHS "C:/Windows/System32") - 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") - endif() -endif() - -set(CPACK_PACKAGE_NAME "Linphone") +set(CPACK_PACKAGE_NAME "${APPLICATION_NAME}") set(CPACK_PACKAGE_VENDOR "Belledonne communications") 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 "linphone;Linphone") -set(CPACK_PACKAGE_INSTALL_DIRECTORY "Linphone") +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_SOURCE_DIR}/COPYING") -if(APPLE) - set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${LINPHONE_GIT_REVISION}-mac") - set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/linphone-background-dmg.jpg") - set(CPACK_DMG_DS_STORE_SETUP_SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/linphone_dmg.scpt") -endif() +if (APPLE) + set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${LINPHONE_GIT_REVISION}-mac") + set(CPACK_DMG_BACKGROUND_IMAGE "${CMAKE_CURRENT_SOURCE_DIR}/linphone-background-dmg.jpg") -if(WIN32) - set(CPACK_COMPONENT_LINPHONE_BASE_DISPLAY_NAME "Linphone") - set(CPACK_COMPONENT_LINPHONE_BASE_DESCRIPTION "Minimal installation of Linphone") - set(CPACK_COMPONENT_LINPHONE_BASE_REQUIRED True) - if(ENABLE_OPENH264) - set(CPACK_COMPONENT_MSOPENH264_DISPLAY_NAME "Cisco's OpenH264 codec") - set(CPACK_COMPONENT_MSOPENH264_DESCRIPTION "Download OpenH264 Video Codec provided by Cisco Systems, Inc.") - set(CPACK_COMPONENT_MSOPENH264_DISABLED True) - endif() + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/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 () - # Use template from the current source directory to force uninstallation and ensure that linphone is not running before installation - set(CPACK_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}") - set(CPACK_GENERATOR "NSIS") - set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\linphone-banner.bmp") - set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${LINPHONE_GIT_REVISION}-win32") - set(CPACK_NSIS_MUI_ICON "${LINPHONE_DESKTOP_DIR}/assets/linphone.ico") - set(CPACK_NSIS_MUI_UNIICON "${LINPHONE_DESKTOP_DIR}/assets/linphone.ico") - set(CPACK_NSIS_DISPLAY_NAME "Linphone") - if(LINPHONE_MICRO_VERSION) - set(CPACK_NSIS_PACKAGE_NAME "Linphone ${LINPHONE_MAJOR_VERSION}.${LINPHONE_MINOR_VERSION}.${LINPHONE_MICRO_VERSION}") - else() - set(CPACK_NSIS_PACKAGE_NAME "Linphone ${LINPHONE_MAJOR_VERSION}.${LINPHONE_MINOR_VERSION}") - endif() - set(CPACK_NSIS_URL_INFO_ABOUT "http://www.linphone.org/") +if (WIN32) + set(CPACK_COMPONENT_LINPHONE_BASE_DISPLAY_NAME "${APPLICATION_NAME}") + set(CPACK_COMPONENT_LINPHONE_BASE_DESCRIPTION "Minimal installation of ${APPLICATION_NAME}") + set(CPACK_COMPONENT_LINPHONE_BASE_REQUIRED True) + if (ENABLE_OPENH264) + set(CPACK_COMPONENT_MSOPENH264_DISPLAY_NAME "Cisco's OpenH264 codec") + set(CPACK_COMPONENT_MSOPENH264_DESCRIPTION "Download OpenH264 Video Codec provided by Cisco Systems, Inc.") + set(CPACK_COMPONENT_MSOPENH264_DISABLED True) + endif () - file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" DOS_STYLE_SOURCE_DIR) - string(REPLACE "\\" "\\\\" ESCAPED_DOS_STYLE_SOURCE_DIR "${DOS_STYLE_SOURCE_DIR}") - file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" DOS_STYLE_BINARY_DIR) - string(REPLACE "\\" "\\\\" ESCAPED_DOS_STYLE_BINARY_DIR "${DOS_STYLE_BINARY_DIR}") - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/uri-handler-install.nsi.in" "${CMAKE_CURRENT_BINARY_DIR}/uri-handler-install.nsi" @ONLY) - set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "!include \\\"${ESCAPED_DOS_STYLE_BINARY_DIR}\\\\uri-handler-install.nsi\\\"") - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/uninstall.nsi" "${CMAKE_CURRENT_BINARY_DIR}/uninstall.nsi" COPYONLY) - set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "!include \\\"${ESCAPED_DOS_STYLE_BINARY_DIR}\\\\uninstall.nsi\\\"") - if(ENABLE_OPENH264) - # Add NSI instructions to download the openh264 codec from Cisco's servers whether msopenh264 has been installed - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/openh264-install.nsi.in" "${CMAKE_CURRENT_BINARY_DIR}/openh264-install.nsi" @ONLY) - set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "!include \\\"${ESCAPED_DOS_STYLE_BINARY_DIR}\\\\openh264-install.nsi\\\"") + # Use template from the current source directory to force uninstallation and ensure that linphone is not running before installation. + set(CPACK_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}") + set(CPACK_GENERATOR "NSIS") + set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\linphone-banner.bmp") + set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${LINPHONE_GIT_REVISION}-win32") + set(CPACK_NSIS_MUI_ICON "${LINPHONE_DESKTOP_DIR}/assets/${EXECUTABLE_NAME}.ico") + set(CPACK_NSIS_MUI_UNIICON "${LINPHONE_DESKTOP_DIR}/assets/${EXECUTABLE_NAME}.ico") + set(CPACK_NSIS_DISPLAY_NAME "${APPLICATION_NAME}") + if (LINPHONE_MICRO_VERSION) + set(CPACK_NSIS_PACKAGE_NAME "${APPLICATION_NAME} ${LINPHONE_MAJOR_VERSION}.${LINPHONE_MINOR_VERSION}.${LINPHONE_MICRO_VERSION}") + else () + set(CPACK_NSIS_PACKAGE_NAME "${APPLICATION_NAME} ${LINPHONE_MAJOR_VERSION}.${LINPHONE_MINOR_VERSION}") + endif () + set(CPACK_NSIS_URL_INFO_ABOUT "http://www.linphone.org/") - # Add NSI instructions to delete the openh264 codecs while uninstalling Linphone - set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS}\n!include \\\"${ESCAPED_DOS_STYLE_SOURCE_DIR}\\\\openh264-uninstall.nsi\\\"") - endif() + file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" DOS_STYLE_SOURCE_DIR) + string(REPLACE "\\" "\\\\" ESCAPED_DOS_STYLE_SOURCE_DIR "${DOS_STYLE_SOURCE_DIR}") + file(TO_NATIVE_PATH "${CMAKE_CURRENT_BINARY_DIR}" DOS_STYLE_BINARY_DIR) + string(REPLACE "\\" "\\\\" ESCAPED_DOS_STYLE_BINARY_DIR "${DOS_STYLE_BINARY_DIR}") + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/uri-handler-install.nsi.in" "${CMAKE_CURRENT_BINARY_DIR}/uri-handler-install.nsi" @ONLY) + set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "!include \\\"${ESCAPED_DOS_STYLE_BINARY_DIR}\\\\uri-handler-install.nsi\\\"") + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/uninstall.nsi.in" "${CMAKE_CURRENT_BINARY_DIR}/uninstall.nsi" COPYONLY) + set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "!include \\\"${ESCAPED_DOS_STYLE_BINARY_DIR}\\\\uninstall.nsi\\\"") + if (ENABLE_OPENH264) + # Add NSI instructions to download the openh264 codec from Cisco's servers whether msopenh264 has been installed. + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/openh264-install.nsi.in" "${CMAKE_CURRENT_BINARY_DIR}/openh264-install.nsi" @ONLY) + set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "!include \\\"${ESCAPED_DOS_STYLE_BINARY_DIR}\\\\openh264-install.nsi\\\"") - # Sign the installer - set(TIMESTAMP_URL "http://timestamp.verisign.com/scripts/timestamp.dll") - set(PFX_FILE "${CMAKE_CURRENT_SOURCE_DIR}/sign/linphone.pfx") - 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) - set(SIGNTOOL_COMMAND "${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/signtool.py") - set(PERFORM_SIGNING 0) - if(EXISTS ${PFX_FILE}) - if(SIGNTOOL) - set(SIGNTOOL_COMMAND "${SIGNTOOL_COMMAND} signtool sign /f ${PFX_FILE}") - set(SIGNTOOL_COMMAND "${SIGNTOOL_COMMAND} /p ${PASSPHRASE_FILE}") - set(SIGNTOOL_COMMAND "${SIGNTOOL_COMMAND} /t ${TIMESTAMP_URL}") - message("Found signtool and certificate ${PFX_FILE}") - set(PERFORM_SIGNING 1) - else() - message(STATUS "Could not find signtool! Code signing disabled (${SIGNTOOL})") - endif() - else() - message(STATUS "No signtool certificate found; assuming development machine (${PFX_FILE})") - endif() - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/WindowsPackaging.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/WindowsPackaging.cmake" @ONLY) - install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/WindowsPackaging.cmake") -endif() + # Add NSI instructions to delete the openh264 codecs while uninstalling Linphone. + set(CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "${CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS}\n!include \\\"${ESCAPED_DOS_STYLE_SOURCE_DIR}\\\\openh264-uninstall.nsi\\\"") + endif () + + # Sign the installer. + set(TIMESTAMP_URL "http://timestamp.verisign.com/scripts/timestamp.dll") + set(PFX_FILE "${CMAKE_CURRENT_SOURCE_DIR}/sign/linphone.pfx") + 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) + set(SIGNTOOL_COMMAND "${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/signtool.py") + set(PERFORM_SIGNING 0) + if (EXISTS ${PFX_FILE}) + if (SIGNTOOL) + set(SIGNTOOL_COMMAND "${SIGNTOOL_COMMAND} signtool sign /f ${PFX_FILE}") + set(SIGNTOOL_COMMAND "${SIGNTOOL_COMMAND} /p ${PASSPHRASE_FILE}") + set(SIGNTOOL_COMMAND "${SIGNTOOL_COMMAND} /t ${TIMESTAMP_URL}") + message("Found signtool and certificate ${PFX_FILE}") + set(PERFORM_SIGNING 1) + else () + message(STATUS "Could not find signtool! Code signing disabled (${SIGNTOOL})") + endif () + else () + message(STATUS "No signtool certificate found; assuming development machine (${PFX_FILE})") + endif () + configure_file("${CMAKE_CURRENT_SOURCE_DIR}/WindowsPackaging.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/WindowsPackaging.cmake" @ONLY) + install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/WindowsPackaging.cmake") +endif () include(CPack) diff --git a/cmake_builder/linphone_package/Info.plist.in b/cmake_builder/linphone_package/Info.plist.in index bcb50b2a3..5011cc30b 100644 --- a/cmake_builder/linphone_package/Info.plist.in +++ b/cmake_builder/linphone_package/Info.plist.in @@ -5,11 +5,11 @@ CFBundleDevelopmentRegion English CFBundleName - Linphone + @APPLICATION_NAME@ CFBundleDisplayName - Linphone + @APPLICATION_NAME@ CFBundleExecutable - linphone + @EXECUTABLE_NAME@ CFBundleGetInfoString @PACKAGE_VERSION@, (C) 2011-2018 The linphone team http://www.linphone.org CFBundleIconFile diff --git a/cmake_builder/linphone_package/MacPackaging.cmake.in b/cmake_builder/linphone_package/MacPackaging.cmake.in index fa3d8df77..6cec52317 100644 --- a/cmake_builder/linphone_package/MacPackaging.cmake.in +++ b/cmake_builder/linphone_package/MacPackaging.cmake.in @@ -20,9 +20,9 @@ # ############################################################################ -if(NOT "${CMAKE_INSTALL_PREFIX}" MATCHES .*/_CPack_Packages/.*) - execute_process( - COMMAND ${CMAKE_CPACK_COMMAND} -G DragNDrop - RESULT_VARIABLE CPACK_COMMAND_SUCCESS - ) -endif() +if (NOT "${CMAKE_INSTALL_PREFIX}" MATCHES .*/_CPack_Packages/.*) + execute_process( + COMMAND ${CMAKE_CPACK_COMMAND} -G DragNDrop + RESULT_VARIABLE CPACK_COMMAND_SUCCESS + ) +endif () diff --git a/cmake_builder/linphone_package/NSIS.template.in b/cmake_builder/linphone_package/NSIS.template.in index b4d82a076..647d7829a 100644 --- a/cmake_builder/linphone_package/NSIS.template.in +++ b/cmake_builder/linphone_package/NSIS.template.in @@ -903,10 +903,10 @@ SectionEnd ; "Program Files" for AllUsers, "My Documents" for JustMe... Function .onInit - FindWindow $0 "gdkWindowToplevel" "Linphone" - FindWindow $1 "Qt5QWindowOwnDCIcon" "Linphone" + FindWindow $0 "gdkWindowToplevel" "@APPLICATION_NAME@" + FindWindow $1 "Qt5QWindowOwnDCIcon" "@APPLICATION_NAME@" StrCmp "$0$1" "00" notRunning - MessageBox MB_OK|MB_ICONEXCLAMATION "Linphone is running. Please close it first and restart the installation." /SD IDOK + MessageBox MB_OK|MB_ICONEXCLAMATION "@APPLICATION_NAME@ is running. Please close it first and restart the installation." /SD IDOK Abort notRunning: @@ -915,7 +915,7 @@ notRunning: StrCmp $0 "" inst MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION \ - "Linphone is already installed. $\n$\nDo you want to continue and uninstall the old version before installing the new one?" \ + "@APPLICATION_NAME@ is already installed. $\n$\nDo you want to continue and uninstall the old version before installing the new one?" \ IDOK uninst Abort diff --git a/cmake_builder/linphone_package/WindowsPackaging.cmake.in b/cmake_builder/linphone_package/WindowsPackaging.cmake.in index 5abcf7495..ea152eba6 100644 --- a/cmake_builder/linphone_package/WindowsPackaging.cmake.in +++ b/cmake_builder/linphone_package/WindowsPackaging.cmake.in @@ -1,6 +1,6 @@ ############################################################################ # WindowsPackaging.cmake -# Copyright (C) 2014 Belledonne Communications, Grenoble France +# Copyright (C) 2014-2018 Belledonne Communications, Grenoble France # ############################################################################ # @@ -20,15 +20,15 @@ # ############################################################################ -if(NOT "${CMAKE_INSTALL_PREFIX}" MATCHES .*/_CPack_Packages/.*) - execute_process( - COMMAND ${CMAKE_CPACK_COMMAND} -G NSIS - RESULT_VARIABLE CPACK_COMMAND_SUCCESS - ) +if (NOT "${CMAKE_INSTALL_PREFIX}" MATCHES .*/_CPack_Packages/.*) + execute_process( + COMMAND ${CMAKE_CPACK_COMMAND} -G NSIS + RESULT_VARIABLE CPACK_COMMAND_SUCCESS + ) - if(@PERFORM_SIGNING@) - execute_process( - COMMAND @SIGNTOOL_COMMAND@ @CMAKE_CURRENT_BINARY_DIR@/@CPACK_PACKAGE_FILE_NAME@.exe - ) - endif() -endif() + if (@PERFORM_SIGNING@) + execute_process( + COMMAND @SIGNTOOL_COMMAND@ @CMAKE_CURRENT_BINARY_DIR@/@CPACK_PACKAGE_FILE_NAME@.exe + ) + endif () +endif () diff --git a/cmake_builder/linphone_package/linphone_dmg.scpt b/cmake_builder/linphone_package/linphone_dmg.scpt.in similarity index 94% rename from cmake_builder/linphone_package/linphone_dmg.scpt rename to cmake_builder/linphone_package/linphone_dmg.scpt.in index f9e63e472..866c6fcb0 100755 --- a/cmake_builder/linphone_package/linphone_dmg.scpt +++ b/cmake_builder/linphone_package/linphone_dmg.scpt.in @@ -24,7 +24,7 @@ on run argv set statusbar visible to false set toolbar visible to false set the bounds to { 300, 100, 1000, 520 } - set position of item "Linphone.app" to { 200, 280 } + set position of item "@APPLICATION_NAME@.app" to { 200, 280 } set position of item "Applications" to { 500, 280 } end tell update without registering applications @@ -40,4 +40,3 @@ on run argv delay 1 end tell end run - diff --git a/cmake_builder/linphone_package/sdk_content/linphone.list.in b/cmake_builder/linphone_package/sdk_content/linphone.list.in index 108ceb1b3..fc216c08b 100644 --- a/cmake_builder/linphone_package/sdk_content/linphone.list.in +++ b/cmake_builder/linphone_package/sdk_content/linphone.list.in @@ -4,4 +4,3 @@ lib/linphone*.lib share/doc/linphone-* share/Linphone/cmake/* share/sounds/linphone/* -share/locale/*/LC_MESSAGES/linphone.mo diff --git a/cmake_builder/linphone_package/uninstall.nsi b/cmake_builder/linphone_package/uninstall.nsi deleted file mode 100644 index 4ac26f09d..000000000 --- a/cmake_builder/linphone_package/uninstall.nsi +++ /dev/null @@ -1,11 +0,0 @@ -FindWindow $0 "gdkWindowToplevel" "Linphone" -StrCmp $0 0 notRunningInUninstall -MessageBox MB_OK|MB_ICONEXCLAMATION "Linphone is running. Please close it first and restart the uninstall program." /SD IDOK -Abort - -notRunningInUninstall: - -DeleteRegKey HKCR "sip" -DeleteRegKey HKCR "sip-linphone" -DeleteRegKey HKCR "sips" -DeleteRegKey HKCR "sips-linphone" diff --git a/cmake_builder/linphone_package/uninstall.nsi.in b/cmake_builder/linphone_package/uninstall.nsi.in new file mode 100644 index 000000000..b295e9470 --- /dev/null +++ b/cmake_builder/linphone_package/uninstall.nsi.in @@ -0,0 +1,11 @@ +FindWindow $0 "gdkWindowToplevel" "@APPLICATION_NAME@" +StrCmp $0 0 notRunningInUninstall +MessageBox MB_OK|MB_ICONEXCLAMATION "@APPLICATION_NAME@ is running. Please close it first and restart the uninstall program." /SD IDOK +Abort + +notRunningInUninstall: + +DeleteRegKey HKCR "sip" +DeleteRegKey HKCR "sip-linphone" +DeleteRegKey HKCR "sips" +DeleteRegKey HKCR "sips-linphone" diff --git a/cmake_builder/linphone_package/uri-handler-install.nsi.in b/cmake_builder/linphone_package/uri-handler-install.nsi.in index bdf467c57..8502a5a58 100644 --- a/cmake_builder/linphone_package/uri-handler-install.nsi.in +++ b/cmake_builder/linphone_package/uri-handler-install.nsi.in @@ -1,27 +1,27 @@ WriteRegStr HKCR "sip" "" "URL:sip Protocol" WriteRegStr HKCR "sip" "URL Protocol" "" -WriteRegExpandStr HKCR "sip\DefaultIcon" "" "@LINPHONE_DESKTOP_DIR@/assets/linphone.ico,1" +WriteRegStr HKCR "sip\DefaultIcon" "" "$INSTDIR\bin\@EXECUTABLE_NAME@.exe" WriteRegStr HKCR "sip\shell" "" "open" WriteRegStr HKCR "sip\shell\open" "" "command" -WriteRegStr HKCR "sip\shell\open\command" "" "$INSTDIR\bin\linphone.exe $\"%1$\"" +WriteRegStr HKCR "sip\shell\open\command" "" "$INSTDIR\bin\@EXECUTABLE_NAME@.exe $\"%1$\"" WriteRegStr HKCR "sip-linphone" "" "URL:sip-linphone Protocol" WriteRegStr HKCR "sip-linphone" "URL Protocol" "" -WriteRegExpandStr HKCR "sip-linphone\DefaultIcon" "" "@LINPHONE_DESKTOP_DIR@/assets/linphone.ico,1" +WriteRegStr HKCR "sip-linphone\DefaultIcon" "" "$INSTDIR\bin\@EXECUTABLE_NAME@.exe" WriteRegStr HKCR "sip-linphone\shell" "" "open" WriteRegStr HKCR "sip-linphone\shell\open" "" "command" -WriteRegStr HKCR "sip-linphone\shell\open\command" "" "$INSTDIR\bin\linphone.exe $\"%1$\"" +WriteRegStr HKCR "sip-linphone\shell\open\command" "" "$INSTDIR\bin\@EXECUTABLE_NAME@.exe $\"%1$\"" WriteRegStr HKCR "sips" "" "URL:sips Protocol" WriteRegStr HKCR "sips" "URL Protocol" "" -WriteRegExpandStr HKCR "sips\DefaultIcon" "" "@LINPHONE_DESKTOP_DIR@/assets/linphone.ico,1" +WriteRegStr HKCR "sips\DefaultIcon" "" "$INSTDIR\bin\@EXECUTABLE_NAME@.exe" WriteRegStr HKCR "sips\shell" "" "open" WriteRegStr HKCR "sips\shell\open" "" "command" -WriteRegStr HKCR "sips\shell\open\command" "" "$INSTDIR\bin\linphone.exe $\"%1$\"" +WriteRegStr HKCR "sips\shell\open\command" "" "$INSTDIR\bin\@EXECUTABLE_NAME@.exe $\"%1$\"" WriteRegStr HKCR "sips-linphone" "" "URL:sips-linphone Protocol" WriteRegStr HKCR "sips-linphone" "URL Protocol" "" -WriteRegExpandStr HKCR "sips-linphone\DefaultIcon" "" "@LINPHONE_DESKTOP_DIR@/assets/linphone.ico,1" +WriteRegStr HKCR "sips-linphone\DefaultIcon" "" "$INSTDIR\bin\@EXECUTABLE_NAME@.exe" WriteRegStr HKCR "sips-linphone\shell" "" "open" WriteRegStr HKCR "sips-linphone\shell\open" "" "command" -WriteRegStr HKCR "sips-linphone\shell\open\command" "" "$INSTDIR\bin\linphone.exe $\"%1$\"" +WriteRegStr HKCR "sips-linphone\shell\open\command" "" "$INSTDIR\bin\@EXECUTABLE_NAME@.exe $\"%1$\"" diff --git a/cmake_builder/linphoneqt.cmake b/cmake_builder/linphoneqt.cmake index 2b24ac611..5110b7d76 100644 --- a/cmake_builder/linphoneqt.cmake +++ b/cmake_builder/linphoneqt.cmake @@ -29,5 +29,5 @@ lcb_spec_file("linphoneqt.spec") lcb_cmake_options("-DENABLE_UPDATE_CHECK=${ENABLE_UPDATE_CHECK}") -# Add config step for packaging +# Add config step for packaging. set(LINPHONE_BUILDER_ADDITIONAL_CONFIG_STEPS "${CMAKE_CURRENT_LIST_DIR}/additional_steps.cmake") diff --git a/config.h.cmake b/config.h.cmake index 4c93d7980..06f848cb8 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -22,4 +22,5 @@ #cmakedefine APPLICATION_NAME "${APPLICATION_NAME}" #cmakedefine ENABLE_UPDATE_CHECK 1 +#cmakedefine EXECUTABLE_NAME "${EXECUTABLE_NAME}" #cmakedefine MSPLUGINS_DIR "${MSPLUGINS_DIR}" diff --git a/src/app/AppController.cpp b/src/app/AppController.cpp index 7bfd836e2..bb9314765 100644 --- a/src/app/AppController.cpp +++ b/src/app/AppController.cpp @@ -54,7 +54,9 @@ AppController::AppController (int &argc, char *argv[]) { // App creation. // --------------------------------------------------------------------------- - QCoreApplication::setApplicationName(APPLICATION_NAME); + // Do not use APPLICATION_NAME here. + // The EXECUTABLE_NAME will be used in qt standard paths. It's our goal. + QCoreApplication::setApplicationName(EXECUTABLE_NAME); QCoreApplication::setApplicationVersion(LINPHONE_QT_GIT_VERSION); mApp = new App(argc, argv); diff --git a/src/app/logger/Logger.cpp b/src/app/logger/Logger.cpp index 243679dcb..8251bb6ac 100644 --- a/src/app/logger/Logger.cpp +++ b/src/app/logger/Logger.cpp @@ -111,7 +111,7 @@ private: stderr, format, getFormattedCurrentTime().constData(), - domain.empty() ? domain.c_str() : APPLICATION_NAME, + domain.empty() ? domain.c_str() : EXECUTABLE_NAME, message.c_str() ); diff --git a/src/app/paths/Paths.cpp b/src/app/paths/Paths.cpp index 72a838e30..b104db546 100644 --- a/src/app/paths/Paths.cpp +++ b/src/app/paths/Paths.cpp @@ -37,9 +37,9 @@ using namespace std; namespace { - constexpr char PathAssistantConfig[] = "/linphone/assistant/"; + constexpr char PathAssistantConfig[] = "/" EXECUTABLE_NAME "/assistant/"; constexpr char PathAvatars[] = "/avatars/"; - constexpr char PathCaptures[] = "/" APPLICATION_NAME "/captures/"; + constexpr char PathCaptures[] = "/" EXECUTABLE_NAME "/captures/"; constexpr char PathCodecs[] = "/codecs/"; constexpr char PathLogs[] = "/logs/"; constexpr char PathPlugins[] = "/plugins/"; @@ -48,8 +48,8 @@ namespace { constexpr char PathCallHistoryList[] = "/call-history.db"; constexpr char PathConfig[] = "/linphonerc"; - constexpr char PathFactoryConfig[] = "/linphone/linphonerc-factory"; - constexpr char PathRootCa[] = "/linphone/rootca.pem"; + constexpr char PathFactoryConfig[] = "/" EXECUTABLE_NAME "/linphonerc-factory"; + constexpr char PathRootCa[] = "/" EXECUTABLE_NAME "/rootca.pem"; constexpr char PathFriendsList[] = "/friends.db"; constexpr char PathMessageHistoryList[] = "/message-history.db"; constexpr char PathZrtpSecrets[] = "/zidcache";