Fix libintl linkage and include directories (cmake transition fallout)

We checked for libintl in the top-level CMakeLists.txt but then never
used it for anything. This only ever worked on glibc where this all
is bundled in. Unfortunately Intl only becomes an importable target
in cmake >= 3.20 which is too new for us to rely on for now.

Python bindings are omitted here because we don't have any translated
messages in there. Whether we should is another topic.
This commit is contained in:
Panu Matilainen 2023-12-20 09:44:45 +02:00
parent 6e507ddd9c
commit a77c1d0670
8 changed files with 17 additions and 4 deletions

View File

@ -17,6 +17,7 @@ target_include_directories(librpmbuild PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/rpmio
${CMAKE_SOURCE_DIR}/lib
${Intl_INCLUDE_DIRS}
)
target_link_libraries(librpmbuild PUBLIC librpmio librpm)
@ -25,6 +26,7 @@ target_link_libraries(librpmbuild PRIVATE
PkgConfig::POPT
LUA::LUA
MAGIC::MAGIC
${Intl_LIBRARIES}
)
if (LIBDW_FOUND)

View File

@ -16,6 +16,7 @@ target_include_directories(librpm PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/rpmio
${CMAKE_CURRENT_BINARY_DIR}
${Intl_INCLUDE_DIRS}
)
target_sources(librpm PRIVATE
@ -72,6 +73,6 @@ add_custom_command(OUTPUT tagtbl.C
)
target_link_libraries(librpm PUBLIC librpmio)
target_link_libraries(librpm PRIVATE PkgConfig::POPT LUA::LUA)
target_link_libraries(librpm PRIVATE PkgConfig::POPT LUA::LUA ${Intl_LIBRARIES})
install(TARGETS librpm EXPORT rpm-targets)

View File

@ -1 +1,2 @@
add_library(libmisc OBJECT fts.c rpmfts.h)
target_include_directories(libmisc PRIVATE ${Intl_INCLUDE_DIRS})

View File

@ -47,7 +47,8 @@ set(RPM_PLUGINDIR ${CMAKE_INSTALL_FULL_LIBDIR}/rpm-plugins
get_property(plugins DIRECTORY PROPERTY BUILDSYSTEM_TARGETS)
foreach(plugin ${plugins})
target_link_libraries(${plugin} PRIVATE librpmio librpm)
target_link_libraries(${plugin} PRIVATE librpmio librpm ${Intl_LIBRARIES})
target_include_directories(${plugin} PRIVATE ${Intl_INCLUDE_DIRS})
install(TARGETS ${plugin} DESTINATION ${RPM_PLUGINDIR})
install(FILES macros.transaction_${plugin} DESTINATION ${RPM_MACROSDIR})
endforeach()

View File

@ -8,7 +8,10 @@ target_sources(librpmio PRIVATE
rpmstrpool.c rpmmacro_internal.h rpmlua.c rpmlua.h lposix.c
)
target_compile_definitions(librpmio PRIVATE RPM_CONFIGDIR="${RPM_CONFIGDIR}")
target_include_directories(librpmio PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(librpmio PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${Intl_INCLUDE_DIRS}
)
if (WITH_INTERNAL_OPENPGP)
add_subdirectory(rpmpgp_legacy)
@ -27,6 +30,7 @@ target_link_libraries(librpmio PRIVATE
PkgConfig::POPT
LUA::LUA
ZLIB::ZLIB
${Intl_LIBRARIES}
)
if (ZSTD_FOUND)

View File

@ -8,6 +8,7 @@ target_sources(rpmpgp_legacy PRIVATE
rpmpgp_internal.h rpmpgp_internal.c
)
target_include_directories(rpmpgp_legacy PRIVATE ..)
target_include_directories(rpmpgp_legacy PRIVATE ${Intl_INCLUDE_DIRS})
if (WITH_OPENSSL)
find_package(OpenSSL 3.0.0 REQUIRED)
target_sources(rpmpgp_legacy PRIVATE digest_openssl.c)

View File

@ -9,10 +9,11 @@ target_include_directories(librpmsign PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_SOURCE_DIR}/rpmio
${CMAKE_SOURCE_DIR}/lib
${Intl_INCLUDE_DIRS}
)
target_link_libraries(librpmsign PUBLIC librpmio librpm)
target_link_libraries(librpmsign PRIVATE PkgConfig::POPT)
target_link_libraries(librpmsign PRIVATE PkgConfig::POPT ${Intl_LIBRARIES})
if (WITH_IMAEVM)
target_sources(librpmsign PRIVATE rpmsignfiles.c)
target_link_libraries(librpmsign PRIVATE IMA::IMA)

View File

@ -47,6 +47,8 @@ endif()
get_property(executables DIRECTORY PROPERTY BUILDSYSTEM_TARGETS)
foreach(exe ${executables})
target_link_libraries(${exe} PRIVATE librpmio librpm PkgConfig::POPT)
target_link_libraries(${exe} PRIVATE ${Intl_LIBRARIES})
target_include_directories(${exe} PRIVATE ${Intl_INCLUDE_DIRS})
endforeach()
foreach(cmd rpmverify rpmquery)