mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-06 21:20:33 +02:00
* gnu/packages/jami.scm (libjami, jami): Update to 20260206.0. * gnu/packages/patches/jami-libjami-cmake.patch: Update patch. * gnu/packages/patches/jami-qwindowkit.patch * gnu/packages/patches/libjami-pkgconf.patch: Delete files. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. Change-Id: I9484cb85d8c82ebbc86be9046d155fa53bb6e07a
182 lines
6.2 KiB
Diff
182 lines
6.2 KiB
Diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index 979dae2a..21adb2fc 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -60,7 +60,6 @@ endif()
|
|
|
|
if(JAMICORE_AS_SUBDIR)
|
|
add_subdirectory(${DAEMON_DIR} EXCLUDE_FROM_ALL)
|
|
- set(LIBJAMI_LIB jami-core)
|
|
endif()
|
|
|
|
# init some variables for includes, libs, etc.
|
|
@@ -226,11 +225,9 @@ submodules afterwards. You can do so by running \"git submodule \
|
|
update --init\" in the repository.")
|
|
endif()
|
|
list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/extras/build/cmake/modules)
|
|
-if (NOT JAMICORE_AS_SUBDIR)
|
|
- find_package(LibJami REQUIRED)
|
|
- if(LIBJAMI_FOUND)
|
|
- include_directories(${LIBJAMI_INCLUDE_DIR})
|
|
- endif()
|
|
+find_package(LibJami REQUIRED)
|
|
+if (NOT TARGET LibJami::LibJami)
|
|
+ message(FATAL_ERROR "libjami could not be found")
|
|
endif()
|
|
|
|
include(FindPython3)
|
|
@@ -755,6 +752,8 @@ foreach(MODULE ${QT_MODULES})
|
|
list(APPEND QT_LIBS "Qt::${MODULE}")
|
|
endforeach()
|
|
|
|
+list(APPEND CLIENT_LIBS LibJami::LibJami)
|
|
+
|
|
if(MSVC)
|
|
# Makes it a GUI executable instead of a console application
|
|
set_target_properties(
|
|
@@ -763,7 +762,6 @@ if(MSVC)
|
|
WIN32_EXECUTABLE TRUE)
|
|
|
|
list(APPEND CLIENT_LIBS
|
|
- ${LIBJAMI_LIB}
|
|
${GNUTLS_LIB}
|
|
${LIBCLIENT_NAME}
|
|
${QT_LIBS}
|
|
diff --git a/extras/build/cmake/modules/FindLibJami.cmake b/extras/build/cmake/modules/FindLibJami.cmake
|
|
index ee2bf6d9..92cd9e55 100644
|
|
--- a/extras/build/cmake/modules/FindLibJami.cmake
|
|
+++ b/extras/build/cmake/modules/FindLibJami.cmake
|
|
@@ -14,17 +14,38 @@
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
|
|
-# Once done, this find module will set:
|
|
-#
|
|
-# LIBJAMI_INCLUDE_DIR - libjami include directory
|
|
-# LIBJAMI_FOUND - whether it was able to find the include directories
|
|
-# LIBJAMI_LIB - path to libjami or libring library
|
|
+# Once done, this find module will set the LibJami::LibJami imported
|
|
+# target, which references all what is needed (headers, libraries,
|
|
+# dependencies). A pure interface variant target, LibJami::Headers, is
|
|
+# also defined. It can be used if only the headers are required.
|
|
|
|
set(LIBJAMI_FOUND true)
|
|
|
|
+# Do not use ALIAS as these are not in the global scope.
|
|
+function(create_libjami_target backend_target)
|
|
+ add_library(LibJami::LibJami INTERFACE IMPORTED GLOBAL)
|
|
+ target_link_libraries(LibJami::LibJami INTERFACE ${backend_target})
|
|
+endfunction()
|
|
+
|
|
if(WITH_DAEMON_SUBMODULE)
|
|
+ if(JAMICORE_AS_SUBDIR)
|
|
+ create_libjami_target(jami-core)
|
|
+ message(STATUS "Using jami-core CMake project directly as libjami")
|
|
+ return()
|
|
+ endif()
|
|
set(LIBJAMI_INCLUDE_DIR ${DAEMON_DIR}/src/jami)
|
|
else()
|
|
+ # Preferably find libjami via pkg-config.
|
|
+ find_package(PkgConfig QUIET)
|
|
+ if(PKG_CONFIG_FOUND)
|
|
+ pkg_check_modules(LIBJAMI QUIET IMPORTED_TARGET jami)
|
|
+ if(LIBJAMI_FOUND)
|
|
+ create_libjami_target(PkgConfig::LIBJAMI)
|
|
+ message(STATUS "Found LibJami via pkg-config")
|
|
+ return()
|
|
+ endif()
|
|
+ endif()
|
|
+
|
|
find_path(LIBJAMI_INCLUDE_DIR jami.h PATH_SUFFIXES jami)
|
|
if(NOT LIBJAMI_INCLUDE_DIR)
|
|
message(STATUS "Jami daemon headers not found!
|
|
@@ -109,5 +130,16 @@ endif()
|
|
# Restore the original value of CMAKE_FIND_LIBRARY_SUFFIXES.
|
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES_orig})
|
|
|
|
-message(STATUS "Jami daemon headers are in " ${LIBJAMI_INCLUDE_DIR})
|
|
-message(STATUS "Jami daemon library is at " ${LIBJAMI_LIB})
|
|
+# Assemble a CMake imported target with the above information gathered
|
|
+# by other means than pkg-config.
|
|
+if(LIBJAMI_FOUND AND LIBJAMI_LIB AND LIBJAMI_INCLUDE_DIR)
|
|
+ add_library(LibJami::LibJami UNKNOWN IMPORTED GLOBAL)
|
|
+ set_target_properties(LibJami::LibJami PROPERTIES
|
|
+ IMPORTED_LOCATION "${LIBJAMI_LIB}"
|
|
+ INTERFACE_INCLUDE_DIRECTORIES "${LIBJAMI_INCLUDE_DIR}"
|
|
+ )
|
|
+ message(STATUS "Jami daemon headers are in " ${LIBJAMI_INCLUDE_DIR})
|
|
+ message(STATUS "Jami daemon library is at " ${LIBJAMI_LIB})
|
|
+else()
|
|
+ message(WARNING "Could not find Jami library")
|
|
+endif()
|
|
diff --git a/src/libclient/CMakeLists.txt b/src/libclient/CMakeLists.txt
|
|
index 04cdbc6d..26744a6e 100644
|
|
--- a/src/libclient/CMakeLists.txt
|
|
+++ b/src/libclient/CMakeLists.txt
|
|
@@ -46,10 +46,6 @@ if(NOT DEFINED EXTRAS_DIR)
|
|
endif()
|
|
set(CMAKE_MODULE_PATH
|
|
${CMAKE_MODULE_PATH} "${EXTRAS_DIR}/build/cmake/modules")
|
|
-find_package(LibJami REQUIRED)
|
|
-if(LIBJAMI_FOUND)
|
|
- include_directories(${LIBJAMI_INCLUDE_DIR})
|
|
-endif()
|
|
|
|
string(SUBSTRING ${CMAKE_GENERATOR} 0 14 CMAKE_GENERATOR_SHORT)
|
|
if(CMAKE_GENERATOR_SHORT MATCHES "Visual Studio ")
|
|
@@ -202,10 +198,6 @@ Qt${QT_VERSION_MAJOR} enabled.")
|
|
add_subdirectory(qtwrapper)
|
|
include_directories(qtwrapper)
|
|
|
|
- if(JAMICORE_AS_SUBDIR)
|
|
- add_dependencies(qtwrapper jami-core)
|
|
- endif()
|
|
-
|
|
if(${VERBOSE_IPC} MATCHES true)
|
|
message(STATUS "Adding more debug output")
|
|
add_definitions(-DVERBOSE_IPC=true)
|
|
@@ -454,16 +446,6 @@ add_library(${LIBCLIENT_NAME} STATIC
|
|
${LIBCLIENT_HEADERS_API}
|
|
${LIBCLIENT_HEADERS_MOC})
|
|
|
|
-if(JAMICORE_AS_SUBDIR)
|
|
- # Define the project dependencies depending on the build type.
|
|
- if(ENABLE_LIBWRAP)
|
|
- add_dependencies(qtwrapper jami-core)
|
|
- add_dependencies(${LIBCLIENT_NAME} qtwrapper)
|
|
- else()
|
|
- add_dependencies(${LIBCLIENT_NAME} jami-core)
|
|
- endif()
|
|
-endif()
|
|
-
|
|
foreach(QT_LIB ${QT_LIBS})
|
|
target_link_libraries(${LIBCLIENT_NAME} ${QT_LIB})
|
|
endforeach()
|
|
@@ -479,6 +461,8 @@ if(ENABLE_LIBWRAP)
|
|
if (NOT (CMAKE_CXX_COMPILER_ID MATCHES "MSVC"))
|
|
target_link_libraries(${LIBCLIENT_NAME} ${AVUTIL_LIBRARY})
|
|
endif()
|
|
+else()
|
|
+ target_link_libraries(${LIBCLIENT_NAME} LibJami::LibJami)
|
|
endif()
|
|
if (NOT (CMAKE_CXX_COMPILER_ID MATCHES "MSVC"))
|
|
target_link_libraries(${LIBCLIENT_NAME} -lpthread)
|
|
diff --git a/src/libclient/qtwrapper/CMakeLists.txt b/src/libclient/qtwrapper/CMakeLists.txt
|
|
index c412112f..ba4bd5cb 100644
|
|
--- a/src/libclient/qtwrapper/CMakeLists.txt
|
|
+++ b/src/libclient/qtwrapper/CMakeLists.txt
|
|
@@ -39,7 +39,6 @@ else()
|
|
endif()
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
|
|
-include_directories(${LIBJAMI_INCLUDE_DIR})
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../)
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../dbus)
|
|
|
|
@@ -49,4 +48,4 @@ add_library(${PROJECT_NAME} STATIC
|
|
|
|
target_link_libraries(${PROJECT_NAME}
|
|
Qt::Core
|
|
- ${LIBJAMI_LIB})
|
|
+ LibJami::LibJami)
|