mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-05-07 05:23:06 +00:00
Use External projects to prepare projects, use macdeploy only for packaging, reoder App instanciation
This commit is contained in:
parent
3e7452af29
commit
0c476e1ec7
4 changed files with 47 additions and 25 deletions
|
|
@ -29,7 +29,7 @@ foreach(var ${vars})
|
|||
#message("${var} = [${${var}}] -- ${currentHelpString}") # uncomment to see the variables being processed
|
||||
list(APPEND USER_ARGS "-D${var}=${${var}}")
|
||||
if( "${var}" STREQUAL "CMAKE_PREFIX_PATH")
|
||||
set(PREFIX_PATH "|${${var}}")
|
||||
set(PREFIX_PATH ";${${var}}")
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
|
@ -47,7 +47,9 @@ set(MINIZIP_OUTPUT_DIR "${CMAKE_BINARY_DIR}/minizip_OUTPUT")
|
|||
set(APPLICATION_OUTPUT_DIR "${CMAKE_BINARY_DIR}/OUTPUT")
|
||||
message("minizip=${MINIZIP_OUTPUT_DIR} sdk=${LINPHONE_OUTPUT_DIR}")
|
||||
|
||||
set(PREFIX_PATH "${LINPHONE_OUTPUT_DIR}|${MINIZIP_OUTPUT_DIR}|${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
|
||||
set(CMAKE_PREFIX_PATH "${LINPHONE_OUTPUT_DIR};${MINIZIP_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
|
||||
string(REPLACE ";" "|" PREFIX_PATH "${CMAKE_PREFIX_PATH}")
|
||||
#set(PREFIX_PATH "${LINPHONE_OUTPUT_DIR}|${MINIZIP_OUTPUT_DIR}|${APPLICATION_OUTPUT_DIR}${PREFIX_PATH}")
|
||||
|
||||
# Avoid cmake warning if CMP0071 is not set.
|
||||
if (POLICY CMP0071)
|
||||
|
|
@ -104,7 +106,7 @@ list(APPEND APP_OPTIONS "-DENABLE_RELATIVE_PREFIX=${ENABLE_RELATIVE_PREFIX}")
|
|||
list(APPEND APP_OPTIONS "-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}")
|
||||
|
||||
include(ExternalProject)
|
||||
set(PROJECT_BUILD_COMMAND "--verbose")
|
||||
set(PROJECT_BUILD_COMMAND "")
|
||||
if(CMAKE_BUILD_PARALLEL_LEVEL)
|
||||
list(APPEND APP_OPTIONS "-DCMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}")
|
||||
if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.12.0") #CMAKE_BUILD_PARALLEL_LEVEL will not always work for External projects
|
||||
|
|
@ -131,7 +133,8 @@ ExternalProject_Add_Step(sdk force_build
|
|||
DEPENDERS build
|
||||
ALWAYS 1
|
||||
)
|
||||
ExternalProject_Add(minizip PREFIX "${CMAKE_BINARY_DIR}/minizip"
|
||||
#Don't use minizip as target name because it can be a conflict with link libraries names
|
||||
ExternalProject_Add(miniziplib PREFIX "${CMAKE_BINARY_DIR}/minizip"
|
||||
SOURCE_DIR "${CMAKE_SOURCE_DIR}/submodules/externals/minizip"
|
||||
INSTALL_DIR "${MINIZIP_OUTPUT_DIR}"
|
||||
BUILD_ALWAYS ON
|
||||
|
|
@ -140,17 +143,37 @@ ExternalProject_Add(minizip PREFIX "${CMAKE_BINARY_DIR}/minizip"
|
|||
LIST_SEPARATOR | # Use the alternate list separator
|
||||
CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
|
||||
)
|
||||
ExternalProject_Add(linphone-qt PREFIX "${CMAKE_BINARY_DIR}/linphoneqt"
|
||||
SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-desktop"
|
||||
INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
|
||||
DEPENDS minizip sdk
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
|
||||
LIST_SEPARATOR | # Use the alternate list separator
|
||||
CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
|
||||
# ${APP_OPTIONS}
|
||||
BUILD_ALWAYS ON
|
||||
)
|
||||
ExternalProject_Add(linphone-qt-only PREFIX "${CMAKE_BINARY_DIR}/linphoneqt"
|
||||
include(FindPkgConfig)
|
||||
find_package(LinphoneCxx CONFIG)
|
||||
find_package(Linphone CONFIG)
|
||||
find_package(bctoolbox CONFIG)
|
||||
find_package(belcard CONFIG)
|
||||
find_package(Mediastreamer2 CONFIG)
|
||||
find_package(ortp CONFIG)
|
||||
pkg_search_module(MINIZIP minizip)
|
||||
|
||||
if(NOT (LinphoneCxx_FOUND) OR NOT (Linphone_FOUND) OR NOT (bctoolbox_FOUND) OR NOT (belcard_FOUND) OR NOT (Mediastreamer2_FOUND) OR NOT (ortp_FOUND) OR NOT(MINIZIP_FOUND) )
|
||||
message("Projects are set as External projects. You can start building them by using for example : cmake --build . --target all")
|
||||
ExternalProject_Add(linphone-qt PREFIX "${CMAKE_BINARY_DIR}/linphoneqt"
|
||||
SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-desktop"
|
||||
INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
|
||||
DEPENDS miniziplib sdk
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
|
||||
LIST_SEPARATOR | # Use the alternate list separator
|
||||
CMAKE_ARGS ${APP_OPTIONS} ${USER_ARGS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH}
|
||||
# ${APP_OPTIONS}
|
||||
BUILD_ALWAYS ON
|
||||
)
|
||||
set(AUTO_REGENERATION auto_regeneration)
|
||||
add_custom_target(${AUTO_REGENERATION} ALL
|
||||
COMMAND ${CMAKE_COMMAND} ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
DEPENDS linphone-qt)
|
||||
else()
|
||||
message("Adding Linphone Desktop in an IDE-friendly state")
|
||||
set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}")
|
||||
add_subdirectory(${CMAKE_SOURCE_DIR}/linphone-desktop)
|
||||
endif()
|
||||
ExternalProject_Add(linphoneqt-only PREFIX "${CMAKE_BINARY_DIR}/linphoneqt"
|
||||
SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-desktop"
|
||||
INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@ find_package(ortp CONFIG)
|
|||
include(FindPkgConfig)
|
||||
pkg_search_module(MINIZIP minizip)
|
||||
set(MINIZIP_INCLUDE_DIRS "${MINIZIP_PREFIX}/${MINIZIP_INCLUDE_DIRS}")
|
||||
#set(MINIZIP_LIBRARIES "${MINIZIP_PREFIX}/${MINIZIP_LIBRARIES}")
|
||||
|
||||
message("MINIZIP : ${MINIZIP_INCLUDE_DIRS} => ${MINIZIP_LIBRARIES}")
|
||||
message("INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} FRAMEWORK_PATH=${CMAKE_FRAMEWORK_PATH}")
|
||||
|
|
@ -296,12 +295,12 @@ endforeach ()
|
|||
if (NOT WIN32)
|
||||
add_custom_target(
|
||||
check_qml DEPENDS ${QML_SOURCES}
|
||||
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/tools/check_qml_syntax"
|
||||
COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/../tools/check_qml_syntax"
|
||||
)
|
||||
endif()
|
||||
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E copy
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/tools/private/pre-commit"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../tools/private/pre-commit"
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../.git/hooks/pre-commit"
|
||||
)
|
||||
set(_QML_IMPORT_PATHS "")
|
||||
|
|
@ -396,8 +395,8 @@ set_target_properties(${TARGET_NAME} PROPERTIES OUTPUT_NAME "${EXECUTABLE_NAME}"
|
|||
|
||||
|
||||
set(INCLUDED_DIRECTORIES "${LINPHONECXX_INCLUDE_DIRS}" "${MINIZIP_INCLUDE_DIRS}")
|
||||
#set(LIBRARIES ${BCTOOLBOX_CORE_LIBRARIES} ${BELCARD_LIBRARIES} ${LINPHONE_LIBRARIES} ${LINPHONECXX_LIBRARIES} ${MEDIASTREAMER2_LIBRARIES} ${ORTP_LIBRARIES} ${OPUS_LIBRARIES} ${MINIZIP_LIBRARIES})
|
||||
set(LIBRARIES ${BCTOOLBOX_CORE_LIBRARIES} ${BELCARD_LIBRARIES} ${LINPHONE_LIBRARIES} ${LINPHONECXX_LIBRARIES} ${MEDIASTREAMER2_LIBRARIES} ${ORTP_LIBRARIES} ${OPUS_LIBRARIES} "minizip")
|
||||
set(LIBRARIES ${BCTOOLBOX_CORE_LIBRARIES} ${BELCARD_LIBRARIES} ${LINPHONE_LIBRARIES} ${LINPHONECXX_LIBRARIES} ${MEDIASTREAMER2_LIBRARIES} ${ORTP_LIBRARIES} ${OPUS_LIBRARIES} ${MINIZIP_LIBRARIES})
|
||||
#set(LIBRARIES ${BCTOOLBOX_CORE_LIBRARIES} ${BELCARD_LIBRARIES} ${LINPHONE_LIBRARIES} ${LINPHONECXX_LIBRARIES} ${MEDIASTREAMER2_LIBRARIES} ${ORTP_LIBRARIES} ${OPUS_LIBRARIES} "minizip")
|
||||
message("LIBRARIES : ${LIBRARIES}")
|
||||
|
||||
foreach (package ${QT5_PACKAGES})
|
||||
|
|
|
|||
|
|
@ -175,8 +175,9 @@ elseif (APPLE)
|
|||
|
||||
install( CODE "execute_process(COMMAND install_name_tool -add_rpath \"@executable_path/../Frameworks/\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\")")
|
||||
install( CODE "execute_process(COMMAND install_name_tool -add_rpath \"@executable_path/../lib/\" \"\${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app/Contents/MacOS/${EXECUTABLE_NAME}\")")
|
||||
install( CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} \${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app -qmldir=${LINPHONE_QML_DIR})")# -verbose=2)" COMPONENT binary_application)
|
||||
|
||||
if(ENABLE_APP_PACKAGING)
|
||||
install( CODE "execute_process(COMMAND ${DEPLOYQT_PROGRAM} \${CMAKE_INSTALL_PREFIX}/${APPLICATION_NAME}.app -qmldir=${LINPHONE_QML_DIR})")
|
||||
endif()
|
||||
if (LINPHONE_BUILDER_SIGNING_IDENTITY)
|
||||
file(GLOB FRAMEWORKS_NAMES "${CMAKE_CURRENT_BINARY_DIR}/${APPLICATION_NAME}.app/Contents/Frameworks/*")
|
||||
foreach (FRAMEWORK ${FRAMEWORKS_NAMES})
|
||||
|
|
|
|||
|
|
@ -43,6 +43,7 @@ AppController::AppController (int &argc, char *argv[]) {
|
|||
// Disable QML cache. Avoid malformed cache.
|
||||
qputenv("QML_DISABLE_DISK_CACHE", "true");
|
||||
|
||||
mApp = new App(argc, argv);
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
QGuiApplication::setAttribute(Qt::AA_DisableHighDpiScaling, true);
|
||||
|
|
@ -57,10 +58,8 @@ AppController::AppController (int &argc, char *argv[]) {
|
|||
// 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);
|
||||
QCoreApplication::setApplicationVersion(LINPHONE_QT_GIT_VERSION);
|
||||
QApplication::setOrganizationDomain(APPLICATION_ID);
|
||||
|
||||
mApp = new App(argc, argv);
|
||||
QQuickStyle::setStyle("Default");
|
||||
if (mApp->isSecondary()) {
|
||||
#ifdef Q_OS_MACOS
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue