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.")
set(CMAKE_INSTALL_PREFIX "${LINPHONE_OUTPUT_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()
# Linphone SDK has been builded
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.")
set(CMAKE_INSTALL_PREFIX "${MINIZIP_OUTPUT_DIR}")
add_subdirectory(submodules/externals/minizip "submodules/externals/minizip/build-minizip")
else()
else()
set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}")
if(WIN32)
set(EXECUTABLE_OUTPUT_DIR "${CMAKE_BINARY_DIR}")
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${EXECUTABLE_OUTPUT_DIR}")
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${EXECUTABLE_OUTPUT_DIR}")
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${EXECUTABLE_OUTPUT_DIR}")
if(WIN32)
set(EXECUTABLE_OUTPUT_DIR "${CMAKE_BINARY_DIR}")
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${EXECUTABLE_OUTPUT_DIR}")
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${EXECUTABLE_OUTPUT_DIR}")
set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${EXECUTABLE_OUTPUT_DIR}")
endif()
message("MINIZIP : ${MINIZIP_INCLUDE_DIRS} => ${MINIZIP_LIBRARIES}")
message("INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} FRAMEWORK_PATH=${CMAKE_FRAMEWORK_PATH}")
@ -481,31 +484,6 @@ else()
endforeach ()
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.
# ------------------------------------------------------------------------------

View file

@ -994,6 +994,21 @@ Server URL ist nicht konfiguriert.</translation>
<translation>Schließen</translation>
</message>
</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>
<name>ManageAccounts</name>
<message>
@ -1095,6 +1110,13 @@ Server URL ist nicht konfiguriert.</translation>
<translation>Offline</translation>
</message>
</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>
<name>SettingsAdvanced</name>
<message>

View file

@ -999,6 +999,21 @@ your friend&apos;s SIP address or username.</translation>
<translation>Quit</translation>
</message>
</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>
<name>ManageAccounts</name>
<message>
@ -1100,6 +1115,13 @@ your friend&apos;s SIP address or username.</translation>
<translation>Offline</translation>
</message>
</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>
<name>SettingsAdvanced</name>
<message>

View file

@ -997,6 +997,21 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>Quitter</translation>
</message>
</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>
<name>ManageAccounts</name>
<message>
@ -1098,6 +1113,13 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>Hors-ligne</translation>
</message>
</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>
<name>SettingsAdvanced</name>
<message>

View file

@ -994,6 +994,21 @@
<translation></translation>
</message>
</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>
<name>ManageAccounts</name>
<message>
@ -1095,6 +1110,13 @@
<translation></translation>
</message>
</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>
<name>SettingsAdvanced</name>
<message>

View file

@ -999,6 +999,21 @@ Tiesiog, įveskite savo draugo SIP adresą ar naudotojo vardą.</translation>
<translation>Išeiti</translation>
</message>
</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>
<name>ManageAccounts</name>
<message>
@ -1100,6 +1115,13 @@ Tiesiog, įveskite savo draugo SIP adresą ar naudotojo vardą.</translation>
<translation>Atsijungęs</translation>
</message>
</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>
<name>SettingsAdvanced</name>
<message>

View file

@ -999,6 +999,21 @@ o endereço SIP ou nome de usuário do seu amigo.</translation>
<translation>Sair</translation>
</message>
</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>
<name>ManageAccounts</name>
<message>
@ -1100,6 +1115,13 @@ o endereço SIP ou nome de usuário do seu amigo.</translation>
<translation>Indisponível</translation>
</message>
</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>
<name>SettingsAdvanced</name>
<message>

View file

@ -997,6 +997,21 @@
<translation>Выйти</translation>
</message>
</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>
<name>ManageAccounts</name>
<message>
@ -1098,6 +1113,13 @@
<translation>Офлайн</translation>
</message>
</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>
<name>SettingsAdvanced</name>
<message>

View file

@ -997,6 +997,21 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>Avsluta</translation>
</message>
</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>
<name>ManageAccounts</name>
<message>
@ -1098,6 +1113,13 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>Frånkopplad</translation>
</message>
</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>
<name>SettingsAdvanced</name>
<message>

View file

@ -999,6 +999,21 @@ arkadaşınızın SIP adresini veya kullanıcı adını girin.</translation>
<translation>Çıkış</translation>
</message>
</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>
<name>ManageAccounts</name>
<message>
@ -1100,6 +1115,13 @@ arkadaşınızın SIP adresini veya kullanıcı adını girin.</translation>
<translation>Çevrim dışı</translation>
</message>
</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>
<name>SettingsAdvanced</name>
<message>

View file

@ -100,27 +100,34 @@ endif ()
# ==============================================================================
if (WIN32)
find_program(DEPLOYQT_PROGRAM windeployqt)
if (NOT DEPLOYQT_PROGRAM)
message(FATAL_ERROR "Could not find the windeployqt program. Make sure it is in the PATH.")
endif ()
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(FILES "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/minizip.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT application)
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS OPTIONAL)
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS)
install(FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Linphone/rootca.pem" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/${EXECUTABLE_NAME}/")
#get_target_property(DIRR ${TARGET_NAME} RUNTIME_OUTPUT_DIRECTORY)
find_program(DEPLOYQT_PROGRAM windeployqt)
if (NOT DEPLOYQT_PROGRAM)
message(FATAL_ERROR "Could not find the windeployqt program. Make sure it is in the PATH.")
endif ()
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 ()
file(GLOB GRAMMAR_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Belr/grammars/*")
install(FILES ${GRAMMAR_FILES} DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/belr/grammars/" )
install(FILES "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_BINDIR}/minizip.dll" DESTINATION "${CMAKE_INSTALL_BINDIR}")
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/images" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS OPTIONAL)
install(DIRECTORY "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/sounds" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}" USE_SOURCE_PERMISSIONS)
install(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( CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}/${EXECUTABLE_NAME}.exe --qmldir=${LINPHONE_QML_DIR})")# -verbose=2)" 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} --compiler-runtime)")# -verbose=2)" COMPONENT binary_application)
# list(REMOVE_ITEM SHARE_CONTENT "${CMAKE_INSTALL_DATAROOTDIR}/belr" "${CMAKE_INSTALL_DATAROOTDIR}/Belr" "${CMAKE_INSTALL_DATAROOTDIR}/images" "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}" "${CMAKE_INSTALL_DATAROOTDIR}/${APPLICATION_NAME}" "${CMAKE_INSTALL_DATAROOTDIR}/sounds")
# foreach (ITEM IN LISTS SHARE_CONTENT)
# 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)
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(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)
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")
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" COMPONENT application)
install(FILES "${LIBRARY}" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks")
endforeach ()
find_program(DEPLOYQT_PROGRAM macdeployqt)
@ -146,12 +153,16 @@ elseif (APPLE)
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 "${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 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(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 "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib" DESTINATION "${APPLICATION_NAME}.app/Contents/Frameworks/")
file(GLOB GRAMMAR_FILES "${LINPHONE_OUTPUT_DIR}/${CMAKE_INSTALL_DATAROOTDIR}/Belr/grammars/*")
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 OPTIONAL)
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}")
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")
@ -182,7 +193,7 @@ 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 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)
# 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/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(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 ()
# Temporary deactivate
#if (MSVC)
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 "${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 ()
include(InstallRequiredSystemLibraries)
set(MSVC_VERSION ${MSVC_TOOLSET_VERSION})
set(CMAKE_INSTALL_UCRT_LIBRARIES TRUE)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(CMAKE_INSTALL_DEBUG_LIBRARIES TRUE)
endif()
find_file(UCRTBASE_LIB "ucrtbase.dll" PATHS "C:/Windows/System32")
install(FILES ${UCRTBASE_LIB} DESTINATION "${CMAKE_INSTALL_BINDIR}")
# find_file(MSVCP_LIB "msvcp${MSVC_VERSION}0.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 ()
# message("MSDIRS : ${MSVCP_LIB} ${UCRTBASE_LIB} ${VCRUNTIME_LIB} => ${MSVC_VERSION}, ${CMAKE_GENERATOR}")
# 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.
@ -251,7 +272,7 @@ set(CPACK_PACKAGE_EXECUTABLES "${EXECUTABLE_NAME};${APPLICATION_NAME}")
set(CPACK_RESOURCE_FILE_LICENSE "${LINPHONE_DESKTOP_DIR}/LICENSE.txt")
set(CPACK_PACKAGE_INSTALL_DIRECTORY "${APPLICATION_NAME}")
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)
@ -269,16 +290,13 @@ endif ()
if (WIN32)
set(CPACK_GENERATOR "NSIS")
set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${LINPHONE_GIT_REVISION}-win32")
string(COMPARE EQUAL ${CPACK_GENERATOR} "NSIS" IS_NSIS)
if (${IS_NSIS})
set(PACKAGE_EXT "exe")
# Use magic `NSIS.template.in` 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}/windows")
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_UNIICON "${LINPHONE_DESKTOP_DIR}/assets/icon.ico")
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) {
return config ? config->getInt(UiSection, "logs_enabled", false) : false;
return config ? config->getInt(UiSection, "logs_enabled", false) : true;
}
// ---------------------------------------------------------------------------