Skip to content
Snippets Groups Projects
Commit ca7b1e70 authored by Amin Bandali's avatar Amin Bandali Committed by Sébastien Blin
Browse files

build: Add daemon submodule and optionally use it.

This allows invoking cmake with -DWITH_DAEMON_SUBMODULE=true to use
the daemon header files and library from the submodule.  Note that it
is currently still necessary to build the daemon separately first,
either manually or using the build.py convenience script.

The goal is to eventually add support for building the daemon with
CMake in the future, so that we could add_subdirectory(${DAEMON_DIR})
in client-qt's CMakeLists.txt and have CMake take care of everything.

Change-Id: I3a16c44837e6c79616b3101fea8a6ff3defa3ab5
parent 3f1bc76c
No related branches found
No related tags found
No related merge requests found
...@@ -11,3 +11,6 @@ ...@@ -11,3 +11,6 @@
url = https://github.com/atraczyk/SortFilterProxyModel.git url = https://github.com/atraczyk/SortFilterProxyModel.git
branch = qt-6 branch = qt-6
ignore = dirty ignore = dirty
[submodule "daemon"]
path = daemon
url = https://review.jami.net/jami-daemon
...@@ -39,6 +39,8 @@ set(CMAKE_AUTOUIC ON) ...@@ -39,6 +39,8 @@ set(CMAKE_AUTOUIC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Main project directories: # Main project directories:
# daemon
set(DAEMON_DIR ${PROJECT_SOURCE_DIR}/daemon)
# src # src
set(LIBCLIENT_SRC_DIR ${PROJECT_SOURCE_DIR}/src/libclient) set(LIBCLIENT_SRC_DIR ${PROJECT_SOURCE_DIR}/src/libclient)
set(APP_SRC_DIR ${PROJECT_SOURCE_DIR}/src/app) set(APP_SRC_DIR ${PROJECT_SOURCE_DIR}/src/app)
...@@ -102,6 +104,16 @@ set(CMAKE_CXX_FLAGS ...@@ -102,6 +104,16 @@ set(CMAKE_CXX_FLAGS
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true) set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true)
# jami-daemon # jami-daemon
if(NOT DEFINED WITH_DAEMON_SUBMODULE)
set(WITH_DAEMON_SUBMODULE false)
endif()
if (WITH_DAEMON_SUBMODULE AND NOT EXISTS ${DAEMON_DIR}/src)
message(FATAL_ERROR
"Jami Daemon sources not found in ${DAEMON_DIR}/src. If you \
cloned this repository via git, perhaps you did not initialize its \
submodules afterwards. You can do so by running \"git submodule \
update --init\" in the repository.")
endif()
set(CMAKE_MODULE_PATH set(CMAKE_MODULE_PATH
${CMAKE_MODULE_PATH} "${EXTRAS_DIR}/build/cmake/modules") ${CMAKE_MODULE_PATH} "${EXTRAS_DIR}/build/cmake/modules")
find_package(LibJami REQUIRED) find_package(LibJami REQUIRED)
......
daemon @ 8abb7a04
Subproject commit 8abb7a04dcd08078662b95a26bf4dd5e15f1a2f2
...@@ -26,6 +26,9 @@ ...@@ -26,6 +26,9 @@
set(LIBJAMI_FOUND true) set(LIBJAMI_FOUND true)
if(WITH_DAEMON_SUBMODULE)
set(LIBJAMI_INCLUDE_DIRS ${DAEMON_DIR}/src/jami)
else()
if(EXISTS ${LIBJAMI_INCLUDE_DIR}/jami.h) if(EXISTS ${LIBJAMI_INCLUDE_DIR}/jami.h)
set(LIBJAMI_INCLUDE_DIRS ${LIBJAMI_INCLUDE_DIR}) set(LIBJAMI_INCLUDE_DIRS ${LIBJAMI_INCLUDE_DIR})
elseif(EXISTS ${LIBJAMI_BUILD_DIR}/jami/jami.h) elseif(EXISTS ${LIBJAMI_BUILD_DIR}/jami/jami.h)
...@@ -41,12 +44,18 @@ else() ...@@ -41,12 +44,18 @@ else()
Set -DLIBJAMI_BUILD_DIR or -DCMAKE_INSTALL_PREFIX") Set -DLIBJAMI_BUILD_DIR or -DCMAKE_INSTALL_PREFIX")
set(LIBJAMI_FOUND false) set(LIBJAMI_FOUND false)
endif() endif()
endif()
# Save the current value of CMAKE_FIND_LIBRARY_SUFFIXES. # Save the current value of CMAKE_FIND_LIBRARY_SUFFIXES.
set(CMAKE_FIND_LIBRARY_SUFFIXES_orig ${CMAKE_FIND_LIBRARY_SUFFIXES}) set(CMAKE_FIND_LIBRARY_SUFFIXES_orig ${CMAKE_FIND_LIBRARY_SUFFIXES})
set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib;.so;.dll") set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib;.so;.dll")
if(WITH_DAEMON_SUBMODULE)
find_library(LIBJAMI_LIB NAMES jami ring
PATHS ${DAEMON_DIR}/src/.libs
NO_DEFAULT_PATH)
else()
# Search only in these given PATHS. # Search only in these given PATHS.
find_library(LIBJAMI_LIB NAMES jami ring find_library(LIBJAMI_LIB NAMES jami ring
PATHS ${LIBJAMI_BUILD_DIR}/.libs PATHS ${LIBJAMI_BUILD_DIR}/.libs
...@@ -60,11 +69,17 @@ find_library(LIBJAMI_LIB NAMES jami ring ...@@ -60,11 +69,17 @@ find_library(LIBJAMI_LIB NAMES jami ring
if(NOT LIBJAMI_LIB) if(NOT LIBJAMI_LIB)
find_library(LIBJAMI_LIB NAMES jami ring) find_library(LIBJAMI_LIB NAMES jami ring)
endif() endif()
endif()
# Try for a static version also. # Try for a static version also.
if(NOT LIBJAMI_LIB) if(NOT LIBJAMI_LIB)
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.lib") set(CMAKE_FIND_LIBRARY_SUFFIXES ".a;.lib")
if(WITH_DAEMON_SUBMODULE)
find_library(LIBJAMI_LIB NAMES jami ring
PATHS ${DAEMON_DIR}/src/.libs
NO_DEFAULT_PATH)
else()
# Search only in these given PATHS. # Search only in these given PATHS.
find_library(LIBJAMI_LIB NAMES jami ring find_library(LIBJAMI_LIB NAMES jami ring
PATHS ${LIBJAMI_BUILD_DIR}/.libs PATHS ${LIBJAMI_BUILD_DIR}/.libs
...@@ -82,6 +97,7 @@ if(NOT LIBJAMI_LIB) ...@@ -82,6 +97,7 @@ if(NOT LIBJAMI_LIB)
add_definitions(-fPIC) add_definitions(-fPIC)
endif() endif()
endif() endif()
endif()
# Restore the original value of CMAKE_FIND_LIBRARY_SUFFIXES. # Restore the original value of CMAKE_FIND_LIBRARY_SUFFIXES.
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_orig}) set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_orig})
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment