mirror of
https://git.jami.net/savoirfairelinux/jami-client-qt.git
synced 2025-06-30 21:55:33 +02:00
macos: support unified build
This patch adds a parameter arch to specify architecture to build. This parameter could be arm64, x86_64 or unified. Change-Id: I2907e03410e0c01b8505afbe283da04b8d0291b6
This commit is contained in:
parent
f88f566e89
commit
ba867b0636
9 changed files with 314 additions and 64 deletions
4
.gitmodules
vendored
4
.gitmodules
vendored
|
@ -2,6 +2,10 @@
|
|||
path = 3rdparty/qrencode-win32
|
||||
url = https://github.com/BlueDragon747/qrencode-win32.git
|
||||
ignore = dirty
|
||||
[submodule "3rdparty/libqrencode"]
|
||||
url = https://github.com/fukuchi/libqrencode.git
|
||||
ignore = dirty
|
||||
path = 3rdparty/libqrencode
|
||||
[submodule "3rdparty/SortFilterProxyModel"]
|
||||
path = 3rdparty/SortFilterProxyModel
|
||||
url = https://github.com/atraczyk/SortFilterProxyModel.git
|
||||
|
|
1
3rdparty/libqrencode
vendored
Submodule
1
3rdparty/libqrencode
vendored
Submodule
|
@ -0,0 +1 @@
|
|||
Subproject commit 715e29fd4cd71b6e452ae0f4e36d917b43122ce8
|
|
@ -158,17 +158,6 @@ execute_process(
|
|||
WORKING_DIRECTORY ${APP_SRC_DIR})
|
||||
set(QML_RESOURCES ${APP_SRC_DIR}/resources.qrc)
|
||||
|
||||
if (APPLE)
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
libqrencode
|
||||
GIT_REPOSITORY https://github.com/fukuchi/libqrencode.git
|
||||
GIT_TAG v4.1.1)
|
||||
FetchContent_Populate(libqrencode)
|
||||
add_subdirectory(${libqrencode_SOURCE_DIR} ${libqrencode_BINARY_DIR})
|
||||
include_directories(${libqrencode_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
# library compatibility (boost, libnotify, etc.)
|
||||
add_definitions(-DQT_NO_KEYWORDS)
|
||||
|
||||
|
@ -299,6 +288,7 @@ set(LIBJAMI_CONTRIB_DIR "${DAEMON_DIR}/contrib")
|
|||
find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h
|
||||
PATHS
|
||||
${LIBJAMI_CONTRIB_DIR}/native/ffmpeg
|
||||
${LIBJAMI_CONTRIB_DIR}/apple-darwin/include/
|
||||
${LIBJAMI_CONTRIB_DIR}/build/ffmpeg/Build/win32/x64/include)
|
||||
include_directories(${AVUTIL_INCLUDE_DIR})
|
||||
|
||||
|
@ -443,6 +433,8 @@ else() # APPLE
|
|||
${myApp_ICON}
|
||||
PROPERTIES
|
||||
MACOSX_PACKAGE_LOCATION Resources)
|
||||
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/3rdparty/libqrencode/include)
|
||||
LINK_DIRECTORIES(${PROJECT_SOURCE_DIR}/3rdparty/libqrencode/lib)
|
||||
if(ENABLE_SPARKLE)
|
||||
message("Sparkle auto-update enabled")
|
||||
set(sparkle_dir "${PACKAGING_DIR}/update/sparkle")
|
||||
|
@ -723,6 +715,19 @@ else()
|
|||
endif(ENABLE_SPARKLE)
|
||||
target_sources(${PROJECT_NAME} PRIVATE ${resources})
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE ${libs})
|
||||
FILE(GLOB CONTRIB ${LIBJAMI_CONTRIB_DIR}/apple-darwin/lib/*.a)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE ${CONTRIB})
|
||||
find_package(Iconv REQUIRED)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE Iconv::Iconv)
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
"-framework AVFoundation"
|
||||
"-framework CoreAudio -framework CoreMedia -framework CoreVideo"
|
||||
"-framework VideoToolbox -framework AudioUnit"
|
||||
"-framework Security"
|
||||
compression
|
||||
resolv
|
||||
)
|
||||
|
||||
# translations
|
||||
if(Qt${QT_VERSION_MAJOR}LinguistTools_FOUND)
|
||||
|
|
3
build.py
3
build.py
|
@ -367,6 +367,8 @@ def run_install(args):
|
|||
install_args.append('-W')
|
||||
if args.no_webengine:
|
||||
install_args.append('-w')
|
||||
if args.arch:
|
||||
install_args += ('-a', args.arch)
|
||||
|
||||
if args.distribution == OSX_DISTRIBUTION_NAME:
|
||||
# The `universal_newlines` parameter has been renamed to `text` in
|
||||
|
@ -597,6 +599,7 @@ def parse_args():
|
|||
ap.add_argument('--no-webengine', dest='no_webengine',
|
||||
default=False, action='store_true',
|
||||
help='Do not use Qt WebEngine.')
|
||||
ap.add_argument('--arch')
|
||||
|
||||
dist = choose_distribution()
|
||||
|
||||
|
|
|
@ -39,6 +39,8 @@ else()
|
|||
set(LIBJAMI_INCLUDE_DIRS ${RING_BUILD_DIR}/jami)
|
||||
elseif(EXISTS ${CMAKE_INSTALL_PREFIX}/include/jami/jami.h)
|
||||
set(LIBJAMI_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/include/jami)
|
||||
elseif(EXISTS ${CMAKE_INSTALL_PREFIX}/daemon/include/jami/jami.h)
|
||||
set(LIBJAMI_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/daemon/include/jami)
|
||||
else()
|
||||
message(STATUS "Jami daemon headers not found!
|
||||
Set -DLIBJAMI_BUILD_DIR or -DCMAKE_INSTALL_PREFIX")
|
||||
|
@ -55,6 +57,7 @@ if(WITH_DAEMON_SUBMODULE)
|
|||
find_library(LIBJAMI_LIB NAMES jami ring
|
||||
PATHS ${DAEMON_DIR}/src/.libs
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/lib
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/daemon/lib
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/libexec
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/bin
|
||||
NO_DEFAULT_PATH)
|
||||
|
@ -64,6 +67,7 @@ else()
|
|||
PATHS ${LIBJAMI_BUILD_DIR}/.libs
|
||||
PATHS ${RING_BUILD_DIR}/.libs
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/lib
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/daemon/lib
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/libexec
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/bin
|
||||
NO_DEFAULT_PATH)
|
||||
|
@ -83,6 +87,7 @@ if(NOT LIBJAMI_LIB)
|
|||
PATHS ${DAEMON_DIR}/src/.libs
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/lib
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/daemon/lib
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/libexec
|
||||
NO_DEFAULT_PATH)
|
||||
else()
|
||||
|
@ -92,6 +97,7 @@ if(NOT LIBJAMI_LIB)
|
|||
PATHS ${RING_BUILD_DIR}/.libs
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/lib
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/daemon/lib
|
||||
PATHS ${CMAKE_INSTALL_PREFIX}/libexec
|
||||
NO_DEFAULT_PATH)
|
||||
|
||||
|
|
145
extras/scripts/build_daemon_macos.sh
Executable file
145
extras/scripts/build_daemon_macos.sh
Executable file
|
@ -0,0 +1,145 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Flags:
|
||||
|
||||
# -a: architecture to build. Accepted values arm64, x86_64, unified
|
||||
# -d: debug
|
||||
set -e
|
||||
|
||||
arch=''
|
||||
debug=
|
||||
while getopts "a:d:" OPT; do
|
||||
case "$OPT" in
|
||||
a)
|
||||
arch="${OPTARG}"
|
||||
;;
|
||||
d)
|
||||
debug=true
|
||||
;;
|
||||
\?)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ "$arch" == 'unified' ]]; then
|
||||
echo "unified build"
|
||||
ARCHS=("arm64" "x86_64")
|
||||
elif [[ "$arch" == '' ]]; then
|
||||
ARCHS=("arm64")
|
||||
else
|
||||
ARCHS=("$arch")
|
||||
fi
|
||||
|
||||
TOP="$(pwd)"
|
||||
INSTALL="${TOP}/install"
|
||||
OS_VER=$(uname -r)
|
||||
|
||||
DAEMON=${TOP}/daemon
|
||||
cd "$DAEMON"
|
||||
|
||||
FAT_CONTRIB_DIR=$DAEMON/contrib/apple-darwin
|
||||
mkdir -p "$FAT_CONTRIB_DIR"
|
||||
# build contrib for every arch
|
||||
for ARCH in "${ARCHS[@]}"; do
|
||||
HOST="${ARCH}-apple-darwin${OS_VER}"
|
||||
mkdir -p contrib/native-"${ARCH}"
|
||||
(
|
||||
cd contrib/native-"${ARCH}"
|
||||
../bootstrap --host="$HOST"
|
||||
|
||||
echo "Building contrib for $ARCH"
|
||||
# force to build every contrib
|
||||
for dir in "$DAEMON"/contrib/src/*/; do
|
||||
PKG=$(basename -- "$dir")
|
||||
if [ "$PKG" != "dbus-cpp" ] && [ "$PKG" != "natpmp" ] &&
|
||||
[ "$PKG" != "portaudio" ] && [ "$PKG" != "pthreads" ] &&
|
||||
[ "$PKG" != "lttng-ust" ] && [ "$PKG" != "openssl" ] &&
|
||||
[ "$PKG" != "media-sdk" ] && [ "$PKG" != "jack" ] &&
|
||||
[ "$PKG" != "onnx" ] && [ "$PKG" != "opencv" ] &&
|
||||
[ "$PKG" != "opencv_contrib" ] && [ "$PKG" != "uuid" ] &&
|
||||
[ "$PKG" != "webrtc-audio-processing" ] && [ "$PKG" != "liburcu" ]; then
|
||||
make -j"$NPROC" ."$PKG"
|
||||
fi
|
||||
done
|
||||
)
|
||||
done
|
||||
|
||||
# make fat libs for contrib
|
||||
mkdir -p "$FAT_CONTRIB_DIR"/lib
|
||||
if ((${#ARCHS[@]} == "2")); then
|
||||
echo "Making fat lib for ${ARCHS[0]} and ${ARCHS[1]}"
|
||||
LIBFILES="$DAEMON/contrib/${ARCHS[0]}-apple-darwin$OS_VER/lib/*".a
|
||||
for f in $LIBFILES; do
|
||||
# filter out arch from file name
|
||||
arch0=${ARCHS[0]}
|
||||
if [ "$arch0" = "arm64" ]; then
|
||||
arch0="aarch64"
|
||||
fi
|
||||
# file name for first arch
|
||||
libfile0=${f##*/}
|
||||
# file name without arch
|
||||
libfile="${libfile0//"-$arch0"/}"
|
||||
# replace arch0 with ARCHS[1] to get file name for second arch
|
||||
libfile1="${libfile0//$arch0/${ARCHS[1]}}"
|
||||
echo "Processing $libfile from $libfile0 and $libfile1 $ lib..."
|
||||
lipo -create "$DAEMON/contrib/${ARCHS[0]}-apple-darwin$OS_VER/lib/$libfile0" \
|
||||
"$DAEMON/contrib/${ARCHS[1]}-apple-darwin$OS_VER/lib/$libfile1" \
|
||||
-output "$FAT_CONTRIB_DIR/lib/$libfile"
|
||||
done
|
||||
else
|
||||
echo "No need for fat lib"
|
||||
rsync -ar --delete "$DAEMON/contrib/${ARCHS[0]}-apple-darwin$OS_VER/lib/"*.a "$FAT_CONTRIB_DIR/lib"
|
||||
fi
|
||||
|
||||
rsync -ar --delete "$DAEMON/contrib/${ARCHS[0]}-apple-darwin$OS_VER/include"* "$FAT_CONTRIB_DIR/"
|
||||
|
||||
# build deamon for every arch
|
||||
for ARCH in "${ARCHS[@]}"; do
|
||||
echo "$ARCH"
|
||||
cd "$DAEMON"
|
||||
HOST="${ARCH}-apple-darwin"
|
||||
CONFIGURE_FLAGS=" --without-dbus --host=${HOST} -with-contrib=$DAEMON/contrib/${ARCH}-apple-darwin${OS_VER} --prefix=${INSTALL}/daemon/$ARCH"
|
||||
|
||||
if [ "${debug}" = "true" ]; then
|
||||
CONFIGURE_FLAGS+=" --enable-debug"
|
||||
fi
|
||||
|
||||
echo "$CONFIGURE_FLAGS"
|
||||
./autogen.sh || exit
|
||||
|
||||
# We need to copy this file or else it's just an empty file
|
||||
rsync -a "$DAEMON"/src/buildinfo.cpp ./src/buildinfo.cpp
|
||||
mkdir -p "build-macos-${ARCH}"
|
||||
cd "build-macos-${ARCH}"
|
||||
|
||||
"$DAEMON"/configure $CONFIGURE_FLAGS ARCH="$ARCH" || exit 1
|
||||
|
||||
echo "$CONFIGURE_FLAGS"
|
||||
|
||||
rsync -a "$DAEMON"/src/buildinfo.cpp ./src/buildinfo.cpp
|
||||
|
||||
make -j"$NPROC" || exit 1
|
||||
make install || exit 1
|
||||
cd "$DAEMON"
|
||||
done
|
||||
|
||||
# make fat lib for daemon
|
||||
FAT_INSTALL_DIR="${INSTALL}/daemon/"
|
||||
FAT_INSTALL_DIR_LIB="${FAT_INSTALL_DIR}/lib/"
|
||||
mkdir -p "${FAT_INSTALL_DIR_LIB}"
|
||||
|
||||
if
|
||||
((${#ARCHS[@]} == "2"))
|
||||
echo "Creating daemon fat lib"
|
||||
then
|
||||
#daemon
|
||||
lipo -create "${INSTALL}/daemon/${ARCHS[0]}/lib/libjami.a" \
|
||||
"${INSTALL}/daemon/${ARCHS[1]}/lib/libjami.a" \
|
||||
-output "${FAT_INSTALL_DIR_LIB}/libjami.a"
|
||||
else
|
||||
echo "No need for daemon fat lib"
|
||||
rsync -ar --delete "${INSTALL}/daemon/${ARCHS[0]}/lib/libjami.a" "${FAT_INSTALL_DIR_LIB}"
|
||||
fi
|
||||
|
||||
rsync -ar --delete "${INSTALL}/daemon/${ARCHS[0]}/include/"* "$FAT_INSTALL_DIR/include"
|
61
extras/scripts/build_qrencode.sh
Executable file
61
extras/scripts/build_qrencode.sh
Executable file
|
@ -0,0 +1,61 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Flags:
|
||||
|
||||
# -a: architecture to build. Accepted values arm64, x86_64, unified
|
||||
|
||||
arch=''
|
||||
while getopts "a:" OPT; do
|
||||
case "$OPT" in
|
||||
a)
|
||||
arch="${OPTARG}"
|
||||
;;
|
||||
\?)
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ "$arch" == 'unified' ]]; then
|
||||
ARCHS=("arm64" "x86_64")
|
||||
elif [[ "$arch" == '' ]]; then
|
||||
ARCHS=("arm64")
|
||||
else
|
||||
ARCHS=("$arch")
|
||||
fi
|
||||
|
||||
TOP="$(pwd)"
|
||||
QRENCODEDIR="${TOP}/3rdparty/libqrencode"
|
||||
if [ -z "$NPROC" ]; then
|
||||
NPROC=$(sysctl -n hw.ncpu || echo -n 1)
|
||||
fi
|
||||
|
||||
for ARCH in "${ARCHS[@]}"; do
|
||||
cd "$QRENCODEDIR" || exit 1
|
||||
BUILDDIR="$ARCH-libqrencode"
|
||||
mkdir "$BUILDDIR"
|
||||
make clean
|
||||
./autogen.sh
|
||||
./configure --host="$ARCH" --without-png --prefix="${QRENCODEDIR}/${BUILDDIR}" CFLAGS=" -arch $ARCH $CFLAGS"
|
||||
make -j"$NPROC"
|
||||
make install
|
||||
done
|
||||
mkdir -p "$QRENCODEDIR"/lib
|
||||
mkdir -p "$QRENCODEDIR"/include
|
||||
|
||||
if ((${#ARCHS[@]} == "2")); then
|
||||
echo "Making fat lib for ${ARCHS[0]} and ${ARCHS[1]}"
|
||||
LIBFILES="$QRENCODEDIR/${ARCHS[0]}-libqrencode/lib/*.a"
|
||||
for f in $LIBFILES; do
|
||||
libFile=${f##*/}
|
||||
echo "$libFile"
|
||||
lipo -create "$QRENCODEDIR/${ARCHS[0]}-libqrencode/lib/$libFile" \
|
||||
"$QRENCODEDIR/${ARCHS[1]}-libqrencode/lib/$libFile" \
|
||||
-output "${QRENCODEDIR}/lib/$libFile"
|
||||
done
|
||||
else
|
||||
echo "No need for fat lib"
|
||||
rsync -ar --delete "$QRENCODEDIR/${ARCHS[0]}-libqrencode/lib/"*.a "${QRENCODEDIR}/lib/"
|
||||
fi
|
||||
|
||||
rsync -ar --delete "$QRENCODEDIR/${ARCHS[0]}-libqrencode/include/"* "${QRENCODEDIR}/include/"
|
|
@ -28,6 +28,7 @@ export OSTYPE
|
|||
# -u: disable use of privileges (sudo) during install
|
||||
# -W: disable libwrap and shared library
|
||||
# -w: do not use Qt WebEngine
|
||||
# -a: arch to build
|
||||
|
||||
set -ex
|
||||
|
||||
|
@ -42,8 +43,9 @@ proc='1'
|
|||
priv_install=true
|
||||
enable_libwrap=true
|
||||
enable_webengine=true
|
||||
arch=''
|
||||
|
||||
while getopts gsc:dQ:P:p:uWw OPT; do
|
||||
while getopts gsc:dQ:P:p:uWw:a: OPT; do
|
||||
case "$OPT" in
|
||||
g)
|
||||
global='true'
|
||||
|
@ -72,6 +74,9 @@ while getopts gsc:dQ:P:p:uWw OPT; do
|
|||
w)
|
||||
enable_webengine='false'
|
||||
;;
|
||||
a)
|
||||
arch="${OPTARG}"
|
||||
;;
|
||||
\?)
|
||||
exit 1
|
||||
;;
|
||||
|
@ -102,64 +107,68 @@ fi
|
|||
|
||||
# jamid
|
||||
DAEMON="${TOP}/daemon"
|
||||
cd "$DAEMON"
|
||||
|
||||
# Build the contribs.
|
||||
mkdir -p contrib/native
|
||||
(
|
||||
cd contrib/native
|
||||
../bootstrap ${prefix:+"--prefix=$prefix"}
|
||||
make -j"${proc}"
|
||||
)
|
||||
|
||||
if [[ "${enable_libwrap}" != "true" ]]; then
|
||||
# Disable shared if requested
|
||||
if [[ "$OSTYPE" != "darwin"* ]]; then
|
||||
CONFIGURE_FLAGS+=" --disable-shared"
|
||||
fi
|
||||
fi
|
||||
|
||||
BUILD_TYPE="Release"
|
||||
if [ "${debug}" = "true" ]; then
|
||||
BUILD_TYPE="Debug"
|
||||
CONFIGURE_FLAGS+=" --enable-debug"
|
||||
fi
|
||||
|
||||
# Build the daemon itself.
|
||||
test -f configure || ./autogen.sh
|
||||
|
||||
if [ "${global}" = "true" ]; then
|
||||
./configure ${CONFIGURE_FLAGS} ${prefix:+"--prefix=$prefix"}
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
sh "${TOP}"/extras/scripts/build_daemon_macos.sh -a "$arch" -d "$debug"
|
||||
else
|
||||
./configure ${CONFIGURE_FLAGS} --prefix="${INSTALL_DIR}"
|
||||
fi
|
||||
make -j"${proc}" V=1
|
||||
make_install "${global}" "${priv_install}"
|
||||
cd "$DAEMON"
|
||||
|
||||
# Verify system's version if no path provided.
|
||||
if [ -z "$qtpath" ]; then
|
||||
sys_qtver=""
|
||||
if command -v qmake6 &> /dev/null; then
|
||||
sys_qtver=$(qmake6 -v)
|
||||
elif command -v qmake-qt6 &> /dev/null; then
|
||||
sys_qtver=$(qmake-qt6 -v) # Fedora
|
||||
elif command -v qmake &> /dev/null; then
|
||||
sys_qtver=$(qmake -v)
|
||||
else
|
||||
echo "No valid Qt found"; exit 1;
|
||||
# Build the contribs.
|
||||
mkdir -p contrib/native
|
||||
(
|
||||
cd contrib/native
|
||||
../bootstrap ${prefix:+"--prefix=$prefix"}
|
||||
make -j"${proc}"
|
||||
)
|
||||
|
||||
if [[ "${enable_libwrap}" != "true" ]]; then
|
||||
# Disable shared if requested
|
||||
if [[ "$OSTYPE" != "darwin"* ]]; then
|
||||
CONFIGURE_FLAGS+=" --disable-shared"
|
||||
fi
|
||||
fi
|
||||
|
||||
sys_qtver=${sys_qtver#*Qt version}
|
||||
sys_qtver=${sys_qtver%\ in\ *}
|
||||
BUILD_TYPE="Release"
|
||||
if [ "${debug}" = "true" ]; then
|
||||
BUILD_TYPE="Debug"
|
||||
CONFIGURE_FLAGS+=" --enable-debug"
|
||||
fi
|
||||
|
||||
installed_qtver=$(echo "$sys_qtver" | cut -d'.' -f 2)
|
||||
required_qtver=$(echo $QT_MIN_VER | cut -d'.' -f 2)
|
||||
# Build the daemon itself.
|
||||
test -f configure || ./autogen.sh
|
||||
|
||||
if [[ $installed_qtver -ge $required_qtver ]] ; then
|
||||
# Set qtpath to empty in order to use system's Qt.
|
||||
qtpath=""
|
||||
if [ "${global}" = "true" ]; then
|
||||
./configure ${CONFIGURE_FLAGS} ${prefix:+"--prefix=$prefix"}
|
||||
else
|
||||
echo "No valid Qt found"; exit 1;
|
||||
./configure ${CONFIGURE_FLAGS} --prefix="${INSTALL_DIR}"
|
||||
fi
|
||||
make -j"${proc}" V=1
|
||||
make_install "${global}" "${priv_install}"
|
||||
|
||||
# Verify system's version if no path provided.
|
||||
if [ -z "$qtpath" ]; then
|
||||
sys_qtver=""
|
||||
if command -v qmake6 &> /dev/null; then
|
||||
sys_qtver=$(qmake6 -v)
|
||||
elif command -v qmake-qt6 &> /dev/null; then
|
||||
sys_qtver=$(qmake-qt6 -v) # Fedora
|
||||
elif command -v qmake &> /dev/null; then
|
||||
sys_qtver=$(qmake -v)
|
||||
else
|
||||
echo "No valid Qt found"; exit 1;
|
||||
fi
|
||||
|
||||
sys_qtver=${sys_qtver#*Qt version}
|
||||
sys_qtver=${sys_qtver%\ in\ *}
|
||||
|
||||
installed_qtver=$(echo "$sys_qtver" | cut -d'.' -f 2)
|
||||
required_qtver=$(echo $QT_MIN_VER | cut -d'.' -f 2)
|
||||
|
||||
if [[ $installed_qtver -ge $required_qtver ]] ; then
|
||||
# Set qtpath to empty in order to use system's Qt.
|
||||
qtpath=""
|
||||
else
|
||||
echo "No valid Qt found"; exit 1;
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
|
@ -172,6 +181,21 @@ client_cmake_flags=(-DCMAKE_BUILD_TYPE="${BUILD_TYPE}"
|
|||
-DCMAKE_PREFIX_PATH="${qtpath}"
|
||||
-DENABLE_LIBWRAP="${enable_libwrap}"
|
||||
-DWITH_WEBENGINE="${enable_webengine}")
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
#detect arch for macos
|
||||
CMAKE_OSX_ARCHITECTURES="arm64"
|
||||
if [[ "$arch" == 'unified' ]]; then
|
||||
CMAKE_OSX_ARCHITECTURES="x86_64;arm64"
|
||||
elif [[ "$arch" != '' ]]; then
|
||||
CMAKE_OSX_ARCHITECTURES="$arch"
|
||||
fi
|
||||
client_cmake_flags+=(-DCMAKE_OSX_ARCHITECTURES="${CMAKE_OSX_ARCHITECTURES}")
|
||||
# build qrencode
|
||||
(
|
||||
cd ${TOP}
|
||||
./extras/scripts/build_qrencode.sh -a "$arch"
|
||||
)
|
||||
fi
|
||||
|
||||
if [ "${global}" = "true" ]; then
|
||||
client_cmake_flags+=(${prefix:+"-DCMAKE_INSTALL_PREFIX=$prefix"}
|
||||
|
|
|
@ -333,6 +333,7 @@ set(LIBJAMI_CONTRIB_DIR
|
|||
find_path(AVUTIL_INCLUDE_DIR libavutil/avutil.h
|
||||
PATHS
|
||||
${LIBJAMI_CONTRIB_DIR}/native/ffmpeg
|
||||
${LIBJAMI_CONTRIB_DIR}/apple-darwin/include/
|
||||
${LIBJAMI_CONTRIB_DIR}/build/ffmpeg/Build/win32/x64/include)
|
||||
include_directories(${AVUTIL_INCLUDE_DIR})
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||
|
@ -345,7 +346,7 @@ endif()
|
|||
find_library(AVUTIL_LIBRARY avutil
|
||||
HINTS
|
||||
${LIBJAMI_CONTRIB_DIR}/${CC_MACHINE}/lib
|
||||
${LIBJAMI_CONTRIB_DIR}/x86_64-apple-darwin${CMAKE_HOST_SYSTEM_VERSION}/lib)
|
||||
${LIBJAMI_CONTRIB_DIR}/apple-darwin/lib)
|
||||
|
||||
if(ENABLE_LIBWRAP)
|
||||
list(APPEND LIBCLIENT_HEADERS directrenderer.h)
|
||||
|
|
Loading…
Add table
Reference in a new issue