NSIS packaging for Windows

This commit is contained in:
Julien Wadel 2020-02-26 12:05:18 +01:00
parent a61dc929d4
commit 1d3f7d2148
12 changed files with 281 additions and 87 deletions

View file

@ -96,6 +96,9 @@ if( NOT (LinphoneCxx_FOUND) OR NOT (Linphone_FOUND) OR NOT (bctoolbox_FOUND) OR
message("Linphone packages are not installed. Build and install it in order to build Minizip and then Desktop Application.") message("Linphone packages are not installed. Build and install it in order to build Minizip and then Desktop Application.")
set(CMAKE_INSTALL_PREFIX "${LINPHONE_OUTPUT_DIR}") set(CMAKE_INSTALL_PREFIX "${LINPHONE_OUTPUT_DIR}")
add_subdirectory("linphone-sdk" "${SDK_BUILD_DIR}") add_subdirectory("linphone-sdk" "${SDK_BUILD_DIR}")
elseif( FORCE_SDK_BUILD )
set(CMAKE_INSTALL_PREFIX "${LINPHONE_OUTPUT_DIR}")
add_subdirectory("linphone-sdk" "${SDK_BUILD_DIR}")
else() else()
# Linphone SDK has been builded # Linphone SDK has been builded
message("LINPHONECXX : ${LINPHONECXX_INCLUDE_DIRS} => ${LINPHONECXX_LIBRARIES}") message("LINPHONECXX : ${LINPHONECXX_INCLUDE_DIRS} => ${LINPHONECXX_LIBRARIES}")
@ -104,13 +107,13 @@ else()
message("Minizip are not installed. Build and install it in order to build Desktop Application.") message("Minizip are not installed. Build and install it in order to build Desktop Application.")
set(CMAKE_INSTALL_PREFIX "${MINIZIP_OUTPUT_DIR}") set(CMAKE_INSTALL_PREFIX "${MINIZIP_OUTPUT_DIR}")
add_subdirectory(submodules/externals/minizip "submodules/externals/minizip/build-minizip") add_subdirectory(submodules/externals/minizip "submodules/externals/minizip/build-minizip")
else() else()
set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}") set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}")
if(WIN32) if(WIN32)
set(EXECUTABLE_OUTPUT_DIR "${CMAKE_BINARY_DIR}") set(EXECUTABLE_OUTPUT_DIR "${CMAKE_BINARY_DIR}")
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${EXECUTABLE_OUTPUT_DIR}") set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${EXECUTABLE_OUTPUT_DIR}")
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${EXECUTABLE_OUTPUT_DIR}") set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${EXECUTABLE_OUTPUT_DIR}")
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${EXECUTABLE_OUTPUT_DIR}") set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${EXECUTABLE_OUTPUT_DIR}")
endif() endif()
message("MINIZIP : ${MINIZIP_INCLUDE_DIRS} => ${MINIZIP_LIBRARIES}") message("MINIZIP : ${MINIZIP_INCLUDE_DIRS} => ${MINIZIP_LIBRARIES}")
message("INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} FRAMEWORK_PATH=${CMAKE_FRAMEWORK_PATH}") message("INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} FRAMEWORK_PATH=${CMAKE_FRAMEWORK_PATH}")
@ -481,31 +484,6 @@ else()
endforeach () endforeach ()
endif () endif ()
# ------------------------------------------------------------------------------
# Install rc files.
# ------------------------------------------------------------------------------
if(APPLE)
set(PACKAGING_DIR "${APPLICATION_NAME}.app/Contents/Resources")
else()
set(PACKAGING_DIR "${CMAKE_INSTALL_PREFIX}")
endif()
install(FILES "${ASSETS_DIR}/linphonerc-factory"
DESTINATION "${PACKAGING_DIR}/${CMAKE_INSTALL_DATADIR}/${APPLICATION_NAME}"
)
set(ASSETS_ASSISTANT_DIR "${ASSETS_DIR}/assistant")
set(ASSISTANT_INSTALL_DATADIR "${PACKAGING_DIR}/${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}"
)
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
# CPack settings & RPM. # CPack settings & RPM.
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------

View file

@ -994,6 +994,21 @@ Server URL ist nicht konfiguriert.</translation>
<translation>Schließen</translation> <translation>Schließen</translation>
</message> </message>
</context> </context>
<context>
<name>MainWindowTopMenuBar</name>
<message>
<source>settings</source>
<translation type="unfinished">Einstellungen</translation>
</message>
<message>
<source>about</source>
<translation type="unfinished">Über</translation>
</message>
<message>
<source>quit</source>
<translation type="unfinished">Schließen</translation>
</message>
</context>
<context> <context>
<name>ManageAccounts</name> <name>ManageAccounts</name>
<message> <message>
@ -1095,6 +1110,13 @@ Server URL ist nicht konfiguriert.</translation>
<translation>Offline</translation> <translation>Offline</translation>
</message> </message>
</context> </context>
<context>
<name>QObject</name>
<message>
<source>The application&apos;s location is not correct: You have to put your &apos;bin/&apos; folder next to &apos;lib/&apos; folder.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>SettingsAdvanced</name> <name>SettingsAdvanced</name>
<message> <message>

View file

@ -999,6 +999,21 @@ your friend&apos;s SIP address or username.</translation>
<translation>Quit</translation> <translation>Quit</translation>
</message> </message>
</context> </context>
<context>
<name>MainWindowTopMenuBar</name>
<message>
<source>settings</source>
<translation type="unfinished">Preferences</translation>
</message>
<message>
<source>about</source>
<translation type="unfinished">About</translation>
</message>
<message>
<source>quit</source>
<translation type="unfinished">Quit</translation>
</message>
</context>
<context> <context>
<name>ManageAccounts</name> <name>ManageAccounts</name>
<message> <message>
@ -1100,6 +1115,13 @@ your friend&apos;s SIP address or username.</translation>
<translation>Offline</translation> <translation>Offline</translation>
</message> </message>
</context> </context>
<context>
<name>QObject</name>
<message>
<source>The application&apos;s location is not correct: You have to put your &apos;bin/&apos; folder next to &apos;lib/&apos; folder.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>SettingsAdvanced</name> <name>SettingsAdvanced</name>
<message> <message>

View file

@ -997,6 +997,21 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>Quitter</translation> <translation>Quitter</translation>
</message> </message>
</context> </context>
<context>
<name>MainWindowTopMenuBar</name>
<message>
<source>settings</source>
<translation type="unfinished">Préférences</translation>
</message>
<message>
<source>about</source>
<translation type="unfinished">À propos</translation>
</message>
<message>
<source>quit</source>
<translation type="unfinished">Quitter</translation>
</message>
</context>
<context> <context>
<name>ManageAccounts</name> <name>ManageAccounts</name>
<message> <message>
@ -1098,6 +1113,13 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>Hors-ligne</translation> <translation>Hors-ligne</translation>
</message> </message>
</context> </context>
<context>
<name>QObject</name>
<message>
<source>The application&apos;s location is not correct: You have to put your &apos;bin/&apos; folder next to &apos;lib/&apos; folder.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>SettingsAdvanced</name> <name>SettingsAdvanced</name>
<message> <message>

View file

@ -994,6 +994,21 @@
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context>
<name>MainWindowTopMenuBar</name>
<message>
<source>settings</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>about</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>quit</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>ManageAccounts</name> <name>ManageAccounts</name>
<message> <message>
@ -1095,6 +1110,13 @@
<translation></translation> <translation></translation>
</message> </message>
</context> </context>
<context>
<name>QObject</name>
<message>
<source>The application&apos;s location is not correct: You have to put your &apos;bin/&apos; folder next to &apos;lib/&apos; folder.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>SettingsAdvanced</name> <name>SettingsAdvanced</name>
<message> <message>

View file

@ -999,6 +999,21 @@ Tiesiog, įveskite savo draugo SIP adresą ar naudotojo vardą.</translation>
<translation>Išeiti</translation> <translation>Išeiti</translation>
</message> </message>
</context> </context>
<context>
<name>MainWindowTopMenuBar</name>
<message>
<source>settings</source>
<translation type="unfinished">Nuostatos</translation>
</message>
<message>
<source>about</source>
<translation type="unfinished">Apie</translation>
</message>
<message>
<source>quit</source>
<translation type="unfinished">Išeiti</translation>
</message>
</context>
<context> <context>
<name>ManageAccounts</name> <name>ManageAccounts</name>
<message> <message>
@ -1100,6 +1115,13 @@ Tiesiog, įveskite savo draugo SIP adresą ar naudotojo vardą.</translation>
<translation>Atsijungęs</translation> <translation>Atsijungęs</translation>
</message> </message>
</context> </context>
<context>
<name>QObject</name>
<message>
<source>The application&apos;s location is not correct: You have to put your &apos;bin/&apos; folder next to &apos;lib/&apos; folder.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>SettingsAdvanced</name> <name>SettingsAdvanced</name>
<message> <message>

View file

@ -999,6 +999,21 @@ o endereço SIP ou nome de usuário do seu amigo.</translation>
<translation>Sair</translation> <translation>Sair</translation>
</message> </message>
</context> </context>
<context>
<name>MainWindowTopMenuBar</name>
<message>
<source>settings</source>
<translation type="unfinished">Preferências</translation>
</message>
<message>
<source>about</source>
<translation type="unfinished">Sobre</translation>
</message>
<message>
<source>quit</source>
<translation type="unfinished">Sair</translation>
</message>
</context>
<context> <context>
<name>ManageAccounts</name> <name>ManageAccounts</name>
<message> <message>
@ -1100,6 +1115,13 @@ o endereço SIP ou nome de usuário do seu amigo.</translation>
<translation>Indisponível</translation> <translation>Indisponível</translation>
</message> </message>
</context> </context>
<context>
<name>QObject</name>
<message>
<source>The application&apos;s location is not correct: You have to put your &apos;bin/&apos; folder next to &apos;lib/&apos; folder.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>SettingsAdvanced</name> <name>SettingsAdvanced</name>
<message> <message>

View file

@ -997,6 +997,21 @@
<translation>Выйти</translation> <translation>Выйти</translation>
</message> </message>
</context> </context>
<context>
<name>MainWindowTopMenuBar</name>
<message>
<source>settings</source>
<translation type="unfinished">Настройки</translation>
</message>
<message>
<source>about</source>
<translation type="unfinished">О программе</translation>
</message>
<message>
<source>quit</source>
<translation type="unfinished">Выйти</translation>
</message>
</context>
<context> <context>
<name>ManageAccounts</name> <name>ManageAccounts</name>
<message> <message>
@ -1098,6 +1113,13 @@
<translation>Офлайн</translation> <translation>Офлайн</translation>
</message> </message>
</context> </context>
<context>
<name>QObject</name>
<message>
<source>The application&apos;s location is not correct: You have to put your &apos;bin/&apos; folder next to &apos;lib/&apos; folder.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>SettingsAdvanced</name> <name>SettingsAdvanced</name>
<message> <message>

View file

@ -997,6 +997,21 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>Avsluta</translation> <translation>Avsluta</translation>
</message> </message>
</context> </context>
<context>
<name>MainWindowTopMenuBar</name>
<message>
<source>settings</source>
<translation type="unfinished">Inställningar</translation>
</message>
<message>
<source>about</source>
<translation type="unfinished">Om</translation>
</message>
<message>
<source>quit</source>
<translation type="unfinished">Avsluta</translation>
</message>
</context>
<context> <context>
<name>ManageAccounts</name> <name>ManageAccounts</name>
<message> <message>
@ -1098,6 +1113,13 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>Frånkopplad</translation> <translation>Frånkopplad</translation>
</message> </message>
</context> </context>
<context>
<name>QObject</name>
<message>
<source>The application&apos;s location is not correct: You have to put your &apos;bin/&apos; folder next to &apos;lib/&apos; folder.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>SettingsAdvanced</name> <name>SettingsAdvanced</name>
<message> <message>

View file

@ -999,6 +999,21 @@ arkadaşınızın SIP adresini veya kullanıcı adını girin.</translation>
<translation>Çıkış</translation> <translation>Çıkış</translation>
</message> </message>
</context> </context>
<context>
<name>MainWindowTopMenuBar</name>
<message>
<source>settings</source>
<translation type="unfinished">Tercihler</translation>
</message>
<message>
<source>about</source>
<translation type="unfinished">Hakkında</translation>
</message>
<message>
<source>quit</source>
<translation type="unfinished">Çıkış</translation>
</message>
</context>
<context> <context>
<name>ManageAccounts</name> <name>ManageAccounts</name>
<message> <message>
@ -1100,6 +1115,13 @@ arkadaşınızın SIP adresini veya kullanıcı adını girin.</translation>
<translation>Çevrim dışı</translation> <translation>Çevrim dışı</translation>
</message> </message>
</context> </context>
<context>
<name>QObject</name>
<message>
<source>The application&apos;s location is not correct: You have to put your &apos;bin/&apos; folder next to &apos;lib/&apos; folder.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context> <context>
<name>SettingsAdvanced</name> <name>SettingsAdvanced</name>
<message> <message>

View file

@ -100,27 +100,34 @@ endif ()
# ============================================================================== # ==============================================================================
if (WIN32) if (WIN32)
find_program(DEPLOYQT_PROGRAM windeployqt) find_program(DEPLOYQT_PROGRAM windeployqt)
if (NOT DEPLOYQT_PROGRAM) if (NOT DEPLOYQT_PROGRAM)
message(FATAL_ERROR "Could not find the windeployqt program. Make sure it is in the PATH.") message(FATAL_ERROR "Could not find the windeployqt program. Make sure it is in the PATH.")
endif () endif ()
file(GLOB LIB_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/*.dll") file(GLOB LIB_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/*.dll")
install(FILES ${LIB_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/") install(FILES ${LIB_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/")
file(GLOB LIB_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/*.dll") file(GLOB LIB_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/*.dll")
install(FILES ${LIB_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/") install(FILES ${LIB_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/")
file(GLOB EXE_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/*.exe") file(GLOB EXE_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/*.exe")
install(FILES ${EXE_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/") install(FILES ${EXE_FILES} DESTINATION "${CMAKE_INSTALL_BINDIR}/")
if (EXISTS "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer") 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) install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer" DESTINATION "${CMAKE_INSTALL_LIBDIR}" USE_SOURCE_PERMISSIONS)
endif () endif ()
install(FILES "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/minizip.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT application) file(GLOB GRAMMAR_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Belr/grammars/*")
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS OPTIONAL) install(FILES ${GRAMMAR_FILES} DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/" )
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS) install(FILES "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/minizip.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}")
install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Linphone/rootca.pem" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}/") install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS OPTIONAL)
#get_target_property(DIRR ${TARGET_NAME} RUNTIME_OUTPUT_DIRECTORY) 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}/")
install(FILES "${LINPHONE_DESKTOP_DIR}/assets/linphonerc-factory" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}")
install(FILES "${LINPHONE_DESKTOP_DIR}/assets/assistant/use-other-sip-account.rc" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}/assistant")
install(FILES "${LINPHONE_DESKTOP_DIR}/assets/assistant/create-app-sip-account.rc" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}/assistant")
install(FILES "${LINPHONE_DESKTOP_DIR}/assets/assistant/use-app-sip-account.rc" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}/assistant")
#get_target_property(DIRR ${TARGET_NAME} RUNTIME_OUTPUT_DIRECTORY)
install(PROGRAMS "${EXECUTABLE_OUTPUT_DIR}/${EXECUTABLE_NAME}.exe" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT application) install(PROGRAMS "${EXECUTABLE_OUTPUT_DIR}/${EXECUTABLE_NAME}.exe" DESTINATION "${CMAKE_INSTALL_BINDIR}")
install( CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/${EXECUTABLE_NAME}.exe --qmldir=${LINPHONE_QML_DIR})")# -verbose=2)" COMPONENT application) install( CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/${EXECUTABLE_NAME}.exe\" -qmldir=${LINPHONE_QML_DIR} --compiler-runtime)")# -verbose=2)" COMPONENT binary_application)
# list(REMOVE_ITEM SHARE_CONTENT "${CMAKE_INSTALL_DATAROOTDIR}/belr" "${CMAKE_INSTALL_DATAROOTDIR}/Belr" "${CMAKE_INSTALL_DATAROOTDIR}/images" "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}" "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}" "${CMAKE_INSTALL_DATAROOTDIR}/sounds") # 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) # foreach (ITEM IN LISTS SHARE_CONTENT)
# list(APPEND SHARE_CONTENT_EXCLUDE PATTERN "${ITEM}" EXCLUDE) # list(APPEND SHARE_CONTENT_EXCLUDE PATTERN "${ITEM}" EXCLUDE)
@ -130,11 +137,11 @@ elseif (APPLE)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/linphone.icns" "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}.icns" COPYONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/linphone.icns" "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}.icns" COPYONLY)
install(FILES "${CMAKE_BINARY_DIR}/Info.plist" DESTINATION "${APPLICATION_NAME}.app/Contents") install(FILES "${CMAKE_BINARY_DIR}/Info.plist" DESTINATION "${APPLICATION_NAME}.app/Contents")
install(FILES "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}.icns" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources") install(FILES "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}.icns" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources")
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/Frameworks/" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks" USE_SOURCE_PERMISSIONS COMPONENT application) install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/Frameworks/" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks" USE_SOURCE_PERMISSIONS)
install(PROGRAMS "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}" DESTINATION "${APPLICATION_NAME}.app/Contents/MacOS" COMPONENT application) install(PROGRAMS "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}" DESTINATION "${APPLICATION_NAME}.app/Contents/MacOS")
file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/lib*.dylib") file(GLOB SHARED_LIBRARIES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/lib*.dylib")
foreach (LIBRARY ${SHARED_LIBRARIES}) foreach (LIBRARY ${SHARED_LIBRARIES})
install(FILES "${LIBRARY}" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks" COMPONENT application) install(FILES "${LIBRARY}" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks")
endforeach () endforeach ()
find_program(DEPLOYQT_PROGRAM macdeployqt) find_program(DEPLOYQT_PROGRAM macdeployqt)
@ -146,12 +153,16 @@ elseif (APPLE)
if (EXISTS "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer") 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) file(COPY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/mediastreamer" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_LIBDIR}" USE_SOURCE_PERMISSIONS)
endif () endif ()
install(FILES "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks/" COMPONENT application) install(FILES "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks/")
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) file(GLOB GRAMMAR_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Belr/grammars/*")
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(FILES ${GRAMMAR_FILES} DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/")
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS COMPONENT application OPTIONAL) install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS OPTIONAL)
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds" 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)
install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Linphone/rootca.pem" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}" COMPONENT application) install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Linphone/rootca.pem" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}")
install(FILES "${LINPHONE_DESKTOP_DIR}/assets/linphonerc-factory" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}")
install(FILES "${LINPHONE_DESKTOP_DIR}/assets/assistant/use-other-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}/assistant")
install(FILES "${LINPHONE_DESKTOP_DIR}/assets/assistant/create-app-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}/assistant")
install(FILES "${LINPHONE_DESKTOP_DIR}/assets/assistant/use-app-sip-account.rc" DESTINATION "${APPLICATION_NAME}.app/Contents/Resources/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}/assistant")
file(GLOB SHARED_LIBRARIES "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app/Contents/Frameworks/lib*.dylib") file(GLOB SHARED_LIBRARIES "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app/Contents/Frameworks/lib*.dylib")
@ -182,7 +193,7 @@ elseif (APPLE)
endforeach () endforeach ()
execute_process(COMMAND "codesign" "--verbose" "-s" "${LINPHONE_BUILDER_SIGNING_IDENTITY}" "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app") execute_process(COMMAND "codesign" "--verbose" "-s" "${LINPHONE_BUILDER_SIGNING_IDENTITY}" "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app")
endif () endif ()
# install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app" DESTINATION "." USE_SOURCE_PERMISSIONS COMPONENT application) # install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app" DESTINATION "." USE_SOURCE_PERMISSIONS)
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/packaging.cmake.in" "packaging.cmake" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/macos/packaging.cmake.in" "packaging.cmake" @ONLY)
# install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/packaging.cmake") # install(SCRIPT "${CMAKE_CURRENT_BINARY_DIR}/packaging.cmake")
@ -209,30 +220,40 @@ else()# Not Windows and Apple
install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/cpim_grammar" DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/") install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/cpim_grammar" DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/")
install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/vcard_grammar" DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/") install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/vcard_grammar" DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/")
install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/linphone/rootca.pem" DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}") #We use executable_name because of name folder that is not harmonized from the SDK install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/linphone/rootca.pem" DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}") #We use executable_name because of name folder that is not harmonized from the SDK
install(PROGRAMS "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}" DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}" COMPONENT application) install(PROGRAMS "${CMAKE_BINARY_DIR}/${EXECUTABLE_NAME}" DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}")
endif () endif ()
# Temporary deactivate if (MSVC)
#if (MSVC)
# string(REGEX REPLACE "Visual Studio ([0-9]+).*" "\\1" MSVC_VERSION "${CMAKE_GENERATOR}") # 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") include(InstallRequiredSystemLibraries)
# find_file(UCRTBASE_LIB "ucrtbase.dll" PATHS "C:/Windows/System32") set(MSVC_VERSION ${MSVC_TOOLSET_VERSION})
# # Starting with Visual Studio 2015 (MSVC_VERSION==14) the msvcr dll has been renamed to vcruntime. set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
# find_file(VCRUNTIME_LIB "vcruntime${MSVC_VERSION}0.dll" PATHS "C:/Windows/System32") if (CMAKE_BUILD_TYPE STREQUAL "Debug")
# if (NOT VCRUNTIME_LIB) set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE)
# find_file(VCRUNTIME_LIB "msvcr${MSVC_VERSION}0.dll" PATHS "C:/Windows/System32") endif()
# endif () find_file(UCRTBASE_LIB "ucrtbase.dll" PATHS "C:/Windows/System32")
# install(FILES ${MSVCP_LIB} ${UCRTBASE_LIB} ${VCRUNTIME_LIB} DESTINATION "${CMAKE_INSTALL_BINDIR}") install(FILES ${UCRTBASE_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(MSVCP_LIB "msvcp${MSVC_VERSION}0.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") # # Starting with Visual Studio 2015 (MSVC_VERSION==14) the msvcr dll has been renamed to vcruntime.
# if (NOT VCRUNTIMED_LIB) # find_file(VCRUNTIME_LIB "vcruntime${MSVC_VERSION}0.dll" PATHS "C:/Windows/System32")
# find_file(VCRUNTIMED_LIB "msvcr${MSVC_VERSION}0d.dll" PATHS "C:/Windows/System32") # if (NOT VCRUNTIME_LIB)
# endif () # find_file(VCRUNTIME_LIB "msvcr${MSVC_VERSION}0.dll" PATHS "C:/Windows/System32")
# install(FILES ${MSVCPD_LIB} ${UCRTBASED_LIB} ${VCRUNTIMED_LIB} DESTINATION "${CMAKE_INSTALL_BINDIR}") # endif ()
# endif () # message("MSDIRS : ${MSVCP_LIB} ${UCRTBASE_LIB} ${VCRUNTIME_LIB} => ${MSVC_VERSION}, ${CMAKE_GENERATOR}")
#endif () # 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")
# 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 "${CMAKE_INSTALL_BINDIR}")
# endif ()
endif ()
# ============================================================================== # ==============================================================================
# CPack. # CPack.
@ -251,7 +272,7 @@ set(CPACK_PACKAGE_EXECUTABLES "${EXECUTABLE_NAME};${APPLICATION_NAME}")
set(CPACK_RESOURCE_FILE_LICENSE "${LINPHONE_DESKTOP_DIR}/LICENSE.txt") set(CPACK_RESOURCE_FILE_LICENSE "${LINPHONE_DESKTOP_DIR}/LICENSE.txt")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${APPLICATION_NAME}") set(CPACK_PACKAGE_INSTALL_DIRECTORY "${APPLICATION_NAME}")
set(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}/CPackBuild") set(CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR}/CPackBuild")
set(CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/assets/icon.ico") set(CPACK_PACKAGE_ICON "${LINPHONE_DESKTOP_DIR}/assets/icon.ico")
if (APPLE) if (APPLE)
@ -269,16 +290,13 @@ endif ()
if (WIN32) if (WIN32)
set(CPACK_GENERATOR "NSIS") set(CPACK_GENERATOR "NSIS")
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${LINPHONE_GIT_REVISION}-win32") set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${LINPHONE_GIT_REVISION}-win32")
string(COMPARE EQUAL ${CPACK_GENERATOR} "NSIS" IS_NSIS) string(COMPARE EQUAL ${CPACK_GENERATOR} "NSIS" IS_NSIS)
if (${IS_NSIS}) if (${IS_NSIS})
set(PACKAGE_EXT "exe") set(PACKAGE_EXT "exe")
# Use magic `NSIS.template.in` template from the current source directory to force uninstallation # Use magic `NSIS.template.in` template from the current source directory to force uninstallation
# and ensure that linphone is not running before installation. # and ensure that linphone is not running before installation.
set(CPACK_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/windows") set(CPACK_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/windows")
set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\windows\\\\nsis_banner.bmp") set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\windows\\\\nsis_banner.bmp")
set(CPACK_NSIS_MUI_ICON "${LINPHONE_DESKTOP_DIR}/assets/icon.ico") set(CPACK_NSIS_MUI_ICON "${LINPHONE_DESKTOP_DIR}/assets/icon.ico")
set(CPACK_NSIS_MUI_UNIICON "${LINPHONE_DESKTOP_DIR}/assets/icon.ico") set(CPACK_NSIS_MUI_UNIICON "${LINPHONE_DESKTOP_DIR}/assets/icon.ico")
set(CPACK_NSIS_DISPLAY_NAME "${APPLICATION_NAME}") set(CPACK_NSIS_DISPLAY_NAME "${APPLICATION_NAME}")

View file

@ -1218,7 +1218,7 @@ QString SettingsModel::getLogsFolder (const shared_ptr<linphone::Config> &config
} }
bool SettingsModel::getLogsEnabled (const shared_ptr<linphone::Config> &config) { bool SettingsModel::getLogsEnabled (const shared_ptr<linphone::Config> &config) {
return config ? config->getInt(UiSection, "logs_enabled", false) : false; return config ? config->getInt(UiSection, "logs_enabled", false) : true;
} }
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------