diff --git a/.gitmodules b/.gitmodules index ddfbe1ddd01a8cfd0e70cddd99ae3f86af293856..01f7b1730f126e484a545253c2df6f88c4f5ba58 100644 --- a/.gitmodules +++ b/.gitmodules @@ -11,3 +11,6 @@ url = https://github.com/atraczyk/SortFilterProxyModel.git branch = qt-6 ignore = dirty +[submodule "daemon"] + path = daemon + url = https://review.jami.net/jami-daemon diff --git a/CMakeLists.txt b/CMakeLists.txt index f2850f5d43e9290ad1fa7f560aeea8e17d50ba2b..d0a8fd709f4c3f92c0d8066706d0249fcb18100a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,6 +39,8 @@ set(CMAKE_AUTOUIC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) # Main project directories: +# daemon +set(DAEMON_DIR ${PROJECT_SOURCE_DIR}/daemon) # src set(LIBCLIENT_SRC_DIR ${PROJECT_SOURCE_DIR}/src/libclient) set(APP_SRC_DIR ${PROJECT_SOURCE_DIR}/src/app) @@ -102,6 +104,16 @@ set(CMAKE_CXX_FLAGS set(CMAKE_INSTALL_RPATH_USE_LINK_PATH true) # 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 ${CMAKE_MODULE_PATH} "${EXTRAS_DIR}/build/cmake/modules") find_package(LibJami REQUIRED) diff --git a/daemon b/daemon new file mode 160000 index 0000000000000000000000000000000000000000..8abb7a04dcd08078662b95a26bf4dd5e15f1a2f2 --- /dev/null +++ b/daemon @@ -0,0 +1 @@ +Subproject commit 8abb7a04dcd08078662b95a26bf4dd5e15f1a2f2 diff --git a/extras/build/cmake/modules/FindLibJami.cmake b/extras/build/cmake/modules/FindLibJami.cmake index 5aa72a9a5bdf012e71343e17402a472d0051f79f..ddb05319015149a94f409c01b4abb257143b3bad 100644 --- a/extras/build/cmake/modules/FindLibJami.cmake +++ b/extras/build/cmake/modules/FindLibJami.cmake @@ -26,20 +26,24 @@ set(LIBJAMI_FOUND true) -if(EXISTS ${LIBJAMI_INCLUDE_DIR}/jami.h) - set(LIBJAMI_INCLUDE_DIRS ${LIBJAMI_INCLUDE_DIR}) -elseif(EXISTS ${LIBJAMI_BUILD_DIR}/jami/jami.h) - set(LIBJAMI_INCLUDE_DIRS ${LIBJAMI_BUILD_DIR}/jami) -elseif(EXISTS ${RING_INCLUDE_DIR}/jami.h) - set(LIBJAMI_INCLUDE_DIRS ${RING_INCLUDE_DIR}) -elseif(EXISTS ${RING_BUILD_DIR}/jami/jami.h) - 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) +if(WITH_DAEMON_SUBMODULE) + set(LIBJAMI_INCLUDE_DIRS ${DAEMON_DIR}/src/jami) else() - message(STATUS "Jami daemon headers not found! + if(EXISTS ${LIBJAMI_INCLUDE_DIR}/jami.h) + set(LIBJAMI_INCLUDE_DIRS ${LIBJAMI_INCLUDE_DIR}) + elseif(EXISTS ${LIBJAMI_BUILD_DIR}/jami/jami.h) + set(LIBJAMI_INCLUDE_DIRS ${LIBJAMI_BUILD_DIR}/jami) + elseif(EXISTS ${RING_INCLUDE_DIR}/jami.h) + set(LIBJAMI_INCLUDE_DIRS ${RING_INCLUDE_DIR}) + elseif(EXISTS ${RING_BUILD_DIR}/jami/jami.h) + 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) + else() + message(STATUS "Jami daemon headers not found! Set -DLIBJAMI_BUILD_DIR or -DCMAKE_INSTALL_PREFIX") - set(LIBJAMI_FOUND false) + set(LIBJAMI_FOUND false) + endif() endif() # Save the current value of CMAKE_FIND_LIBRARY_SUFFIXES. @@ -47,39 +51,51 @@ set(CMAKE_FIND_LIBRARY_SUFFIXES_orig ${CMAKE_FIND_LIBRARY_SUFFIXES}) set(CMAKE_FIND_LIBRARY_SUFFIXES ".dylib;.so;.dll") -# Search only in these given PATHS. -find_library(LIBJAMI_LIB NAMES jami ring - PATHS ${LIBJAMI_BUILD_DIR}/.libs - PATHS ${RING_BUILD_DIR}/.libs - PATHS ${CMAKE_INSTALL_PREFIX}/lib - PATHS ${CMAKE_INSTALL_PREFIX}/libexec - PATHS ${CMAKE_INSTALL_PREFIX}/bin - NO_DEFAULT_PATH) - -# Search elsewhere as well (e.g. system-wide). -if(NOT LIBJAMI_LIB) - find_library(LIBJAMI_LIB NAMES jami ring) -endif() - -# Try for a static version also. -if(NOT LIBJAMI_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. find_library(LIBJAMI_LIB NAMES jami ring PATHS ${LIBJAMI_BUILD_DIR}/.libs PATHS ${RING_BUILD_DIR}/.libs PATHS ${CMAKE_INSTALL_PREFIX}/lib PATHS ${CMAKE_INSTALL_PREFIX}/libexec + PATHS ${CMAKE_INSTALL_PREFIX}/bin NO_DEFAULT_PATH) # Search elsewhere as well (e.g. system-wide). if(NOT LIBJAMI_LIB) find_library(LIBJAMI_LIB NAMES jami ring) endif() +endif() + +# Try for a static version also. +if(NOT LIBJAMI_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. + find_library(LIBJAMI_LIB NAMES jami ring + PATHS ${LIBJAMI_BUILD_DIR}/.libs + PATHS ${RING_BUILD_DIR}/.libs + PATHS ${CMAKE_INSTALL_PREFIX}/lib + PATHS ${CMAKE_INSTALL_PREFIX}/libexec + NO_DEFAULT_PATH) + + # Search elsewhere as well (e.g. system-wide). + if(NOT LIBJAMI_LIB) + find_library(LIBJAMI_LIB NAMES jami ring) + endif() - if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows") - add_definitions(-fPIC) + if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows") + add_definitions(-fPIC) + endif() endif() endif()