mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-01-17 11:28:07 +00:00
Change variable name to APP_OPTIONS, use sdk function to pass CMAKE arguments to external project, specify parallel build while configuring the project
This commit is contained in:
parent
d165a316f7
commit
bd283bee98
1 changed files with 27 additions and 22 deletions
|
|
@ -43,7 +43,6 @@ set(MINIZIP_BUILD_DIR "${CMAKE_BINARY_DIR}/minizip_BUILD")
|
|||
set(MINIZIP_OUTPUT_DIR "${CMAKE_BINARY_DIR}/minizip_OUTPUT")
|
||||
set(APPLICATION_OUTPUT_DIR "${CMAKE_BINARY_DIR}/OUTPUT")
|
||||
message("minizip=${MINIZIP_OUTPUT_DIR} sdk=${LINPHONE_OUTPUT_DIR}")
|
||||
#list(APPEND CMAKE_PREFIX_PATH "${LINPHONE_OUTPUT_DIR};${MINIZIP_OUTPUT_DIR};${APPLICATION_OUTPUT_DIR}")
|
||||
set(PREFIX_PATH "${LINPHONE_OUTPUT_DIR}|${MINIZIP_OUTPUT_DIR}|${APPLICATION_OUTPUT_DIR}")
|
||||
|
||||
# Avoid cmake warning if CMP0071 is not set.
|
||||
|
|
@ -77,7 +76,6 @@ option(ENABLE_TOOLS "Enable tools of SDK" NO)
|
|||
option(ENABLE_STRICT "Build with strict compilator flags e.g. -Wall -Werror" NO)
|
||||
|
||||
option(ENABLE_FFMPEG "Build mediastreamer2 with ffmpeg video support." YES)
|
||||
option(ENABLE_OPUS "Build mediastreamer2 with the OPUS codec." YES)
|
||||
|
||||
if(WIN32 OR APPLE)
|
||||
else()
|
||||
|
|
@ -86,29 +84,36 @@ endif()
|
|||
|
||||
option(ENABLE_RELATIVE_PREFIX "Set Internal packages relative to the binary" YES)
|
||||
|
||||
set(ALL_OPTIONS "-DENABLE_UPDATE_CHECK=${ENABLE_UPDATE_CHECK}")
|
||||
list(APPEND ALL_OPTIONS "-DENABLE_APP_PACKAGING=${ENABLE_APP_PACKAGING}")
|
||||
list(APPEND ALL_OPTIONS "-DENABLE_UNIT_TESTS=${ENABLE_UNIT_TESTS}")
|
||||
list(APPEND ALL_OPTIONS "-DENABLE_TESTS=${ENABLE_TESTS}")
|
||||
list(APPEND ALL_OPTIONS "-DENABLE_TESTS_COMPONENTS=${ENABLE_TESTS_COMPONENTS}")
|
||||
list(APPEND ALL_OPTIONS "-DENABLE_TOOLS=${ENABLE_TOOLS}")
|
||||
list(APPEND ALL_OPTIONS "-DENABLE_STRICT=${ENABLE_STRICT}")
|
||||
list(APPEND ALL_OPTIONS "-DENABLE_FFMPEG=${ENABLE_FFMPEG}")
|
||||
list(APPEND ALL_OPTIONS "-DENABLE_OPUS=${ENABLE_OPUS}")
|
||||
set(APP_OPTIONS "-DENABLE_UPDATE_CHECK=${ENABLE_UPDATE_CHECK}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_APP_PACKAGING=${ENABLE_APP_PACKAGING}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_UNIT_TESTS=${ENABLE_UNIT_TESTS}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_TESTS=${ENABLE_TESTS}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_TESTS_COMPONENTS=${ENABLE_TESTS_COMPONENTS}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_TOOLS=${ENABLE_TOOLS}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_STRICT=${ENABLE_STRICT}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_FFMPEG=${ENABLE_FFMPEG}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_OPUS=${ENABLE_OPUS}")
|
||||
if(ENABLE_V4L)
|
||||
list(APPEND ALL_OPTIONS "-DENABLE_V4L=${ENABLE_V4L}")
|
||||
list(APPEND APP_OPTIONS "-DENABLE_V4L=${ENABLE_V4L}")
|
||||
endif()
|
||||
|
||||
list(APPEND ALL_OPTIONS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}")
|
||||
list(APPEND ALL_OPTIONS "-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}")
|
||||
list(APPEND APP_OPTIONS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}")
|
||||
list(APPEND APP_OPTIONS "-DLINPHONE_OUTPUT_DIR=${LINPHONE_OUTPUT_DIR}")
|
||||
|
||||
include(ExternalProject)
|
||||
if(${CMAKE_VERSION} VERSION_LESS "3.12.0")
|
||||
set(PROJECT_BUILD_COMMAND "")
|
||||
else()
|
||||
list(APPEND PROJECT_BUILD_COMMAND "--parallel" "10")
|
||||
#Get all CMAKE_* variables to pass them to external projects
|
||||
include(linphone-sdk/cmake/LinphoneSdkUtils.cmake)
|
||||
linphone_sdk_get_inherited_cmake_args()
|
||||
list(APPEND APP_OPTIONS ${_inherited_cmake_args})
|
||||
set(PROJECT_BUILD_COMMAND "")
|
||||
if(CMAKE_BUILD_PARALLEL_LEVEL)
|
||||
list(APPEND APP_OPTIONS "-DCMAKE_BUILD_PARALLEL_LEVEL=${CMAKE_BUILD_PARALLEL_LEVEL}") #add it because it was not added by the SDK
|
||||
if(${CMAKE_VERSION} VERSION_LESS "3.12.0") #CMAKE_BUILD_PARALLEL_LEVEL will not always work for External projects
|
||||
list(APPEND PROJECT_BUILD_COMMAND "--parallel" "${CMAKE_BUILD_PARALLEL_LEVEL}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
ExternalProject_Add(sdk PREFIX "${CMAKE_BINARY_DIR}/sdk"
|
||||
SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-sdk"
|
||||
INSTALL_DIR "${LINPHONE_OUTPUT_DIR}"
|
||||
|
|
@ -118,7 +123,7 @@ ExternalProject_Add(sdk PREFIX "${CMAKE_BINARY_DIR}/sdk"
|
|||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
|
||||
INSTALL_COMMAND cmake -E echo "Skipping install step."
|
||||
LIST_SEPARATOR | # Use the alternate list separator
|
||||
CMAKE_ARGS ${ALL_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} ${USER_ARGS}
|
||||
CMAKE_ARGS ${APP_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} ${USER_ARGS}
|
||||
#BUILD_ALWAYS NO #${DO_BUILD}
|
||||
)
|
||||
ExternalProject_Add_Step(sdk force_build
|
||||
|
|
@ -134,7 +139,7 @@ ExternalProject_Add(minizip PREFIX "${CMAKE_BINARY_DIR}/minizip"
|
|||
DEPENDS sdk
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
|
||||
LIST_SEPARATOR | # Use the alternate list separator
|
||||
CMAKE_ARGS ${ALL_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} ${USER_ARGS}
|
||||
CMAKE_ARGS ${APP_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} ${USER_ARGS}
|
||||
)
|
||||
ExternalProject_Add(linphone-qt PREFIX "${CMAKE_BINARY_DIR}/linphoneqt"
|
||||
SOURCE_DIR "${CMAKE_SOURCE_DIR}/linphone-desktop"
|
||||
|
|
@ -142,7 +147,7 @@ ExternalProject_Add(linphone-qt PREFIX "${CMAKE_BINARY_DIR}/linphoneqt"
|
|||
DEPENDS minizip sdk
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
|
||||
LIST_SEPARATOR | # Use the alternate list separator
|
||||
CMAKE_ARGS ${ALL_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} ${USER_ARGS}
|
||||
CMAKE_ARGS ${APP_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} ${USER_ARGS}
|
||||
BUILD_ALWAYS ON
|
||||
)
|
||||
ExternalProject_Add(linphone-qt-only PREFIX "${CMAKE_BINARY_DIR}/linphoneqt"
|
||||
|
|
@ -150,6 +155,6 @@ ExternalProject_Add(linphone-qt-only PREFIX "${CMAKE_BINARY_DIR}/linphoneqt"
|
|||
INSTALL_DIR "${APPLICATION_OUTPUT_DIR}"
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config $<CONFIG> ${PROJECT_BUILD_COMMAND}
|
||||
LIST_SEPARATOR | # Use the alternate list separator
|
||||
CMAKE_ARGS ${ALL_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} ${USER_ARGS}
|
||||
CMAKE_ARGS ${APP_OPTIONS} -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DCMAKE_PREFIX_PATH=${PREFIX_PATH} ${USER_ARGS}
|
||||
EXCLUDE_FROM_ALL ON
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue