Skip to content

Commit a69ab2b

Browse files
committed
cmake: Make sure CONFIG_XXX flags are set properly.
The cmake builds were properly building files that depend on these libraries (a la the old qt pro files) and were linking against these libraries, but they weren't setting the CONFIG_XXX variables for conditionally compiled code in other files. Those variables are now set properly. Setting the variables exposed a couple of other problems where libraries weren't linked (or MOC wasn't invoked). Those problems are fixed as well.
1 parent 36093ab commit a69ab2b

File tree

6 files changed

+27
-12
lines changed

6 files changed

+27
-12
lines changed

cmake/CheckExternalLibraries.cmake

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,21 +56,21 @@ endif()
5656
find_package(LibX264 0.118)
5757
if(ENABLE_X264 AND LibX264_VERSION)
5858
add_build_config(LibX264::LibX264 "x264")
59-
set(HAVE_LIBX264 ${LibX264_FOUND})
59+
set(CONFIG_LIBX264 ${LibX264_FOUND})
6060
endif()
6161

6262
# x265: fedora:x265-devel debian:libx265-dev
6363
find_package(LibX265)
6464
if(ENABLE_X265 AND LibX265_VERSION)
6565
add_build_config(LibX265::LibX265 "x265")
66-
set(HAVE_LIBX264 ${LibX264_FOUND})
66+
set(CONFIG_LIBX265 ${LibX265_FOUND})
6767
endif()
6868

6969
# xvid: fedora:xvidcore-devel debian:libxvidcore-dev
7070
find_package(LibXvid)
7171
if(ENABLE_XVID AND LibX2vid_VERSION)
7272
add_build_config(LibXvid::LibXvid "xvid")
73-
set(HAVE_LIBXvid ${LibXvid_FOUND})
73+
set(CONFIG_LIBXVID ${LibXvid_FOUND})
7474
endif()
7575

7676
# vpx: fedora:libvpx-devel debian:libvpx-dev
@@ -88,6 +88,7 @@ if(ENABLE_MP3LAME)
8888
add_build_config(Lame::Lame "libmp3lame")
8989
target_compile_definitions(Lame::Lame INTERFACE USING_LIBMP3LAME)
9090
add_library(lame ALIAS Lame::Lame)
91+
set(CONFIG_LIBMP3LAME TRUE)
9192
endif()
9293

9394
# vdpau: fedora:libvdpau-devel debian:libvdpau-dev

cmake/MythFindQt.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ get_target_property(QMAKE_EXECUTABLE ${QT_PKG_NAME}::qmake IMPORTED_LOCATION)
8181

8282
if(TARGET ${QT_PKG_NAME}::DBus)
8383
target_compile_definitions(${QT_PKG_NAME}::DBus INTERFACE USING_DBUS)
84+
set(CONFIG_QTDBUS ON)
8485
endif()
8586

8687
# Not all of the Qt6 include directories squirrel the private headers away into

mythtv/cmake/MythFindPackages.cmake

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ if(ENABLE_BINDINGS_PYTHON)
118118
message(
119119
STATUS "Python interperter and modules found. Enbling python bindings.")
120120
set(USING_BINDINGS_PYTHON TRUE)
121+
set(CONFIG_BINDINGS_PYTHON TRUE)
121122
endif()
122123

123124
# Strip off any minor version on the python executable name.
@@ -178,9 +179,12 @@ endif()
178179
# (on Fedora) is part of a separate libzip-tools package and may or may not be
179180
# installed. Use pkg-config which only cares about the presence of the library.
180181
#
181-
# libzip: fedora:libzip-devel debian:libzip-dev:
182+
# libzip: fedora:libzip-devel debian:libzip-dev
182183
pkg_check_modules(LIBZIP "libzip" REQUIRED IMPORTED_TARGET)
183184

185+
# liblzo: fedora:lzo-devel debian:liblzo2-dev
186+
pkg_check_modules(LZO2 "lzo2" REQUIRED IMPORTED_TARGET)
187+
184188
# taglib: fedora:taglib-devel debian:libtag1-dev
185189
pkg_check_modules(TAGLIB "taglib>=1.11.1" REQUIRED IMPORTED_TARGET)
186190
add_build_config(PkgConfig::TAGLIB "taglib")
@@ -306,6 +310,7 @@ if(ENABLE_AUDIO_ALSA)
306310
add_build_config(PkgConfig::ALSA "alsa")
307311
if(ALSA_FOUND)
308312
target_compile_definitions(PkgConfig::ALSA INTERFACE USING_ALSA)
313+
set(CONFIG_AUDIO_ALSA TRUE)
309314
endif()
310315
endif()
311316

@@ -315,6 +320,7 @@ if(ENABLE_AUDIO_OSS)
315320
add_build_config(TRUE "oss")
316321
add_library(mythtv_oss INTERFACE)
317322
target_compile_definitions(mythtv_oss INTERFACE USING_OSS)
323+
set(CONFIG_AUDIO_OSS TRUE)
318324
endif()
319325
endif()
320326

@@ -387,6 +393,7 @@ if(ENABLE_LIBDNS_SD)
387393
if(LIBCRYPTO_FOUND)
388394
target_compile_definitions(PkgConfig::LIBDNS_SD INTERFACE USING_AIRPLAY)
389395
endif()
396+
set(CONFIG_LIBDNS_SD TRUE)
390397
endif()
391398
endif()
392399

@@ -397,11 +404,13 @@ if(ENABLE_SYSTEMD_NOTIFY OR ENABLE_SYSTEMD_JOURNAL)
397404
find_file(SYSTEMD_JOURNALD "systemd/sd-journal.h"
398405
PATHS ${SYSTEMD_INCLUDE_PATH})
399406
add_build_config(SYSTEMD_JOURNALD "systemd_journal")
407+
set(CONFIG_SYSTEMD_JOURNAL ON)
400408
endif()
401409
if(SYSTEMD_FOUND AND ENABLE_SYSTEMD_NOTIFY)
402410
find_file(SYSTEMD_NOTIFY "systemd/sd-daemon.h"
403411
PATHS ${SYSTEMD_INCLUDE_PATH})
404412
add_build_config(SYSTEMD_NOTIFY "systemd_notify")
413+
set(CONFIG_SYSTEMD_NOTIFY ON)
405414
endif()
406415
endif()
407416

mythtv/libs/libmyth/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,10 @@ if(TARGET PkgConfig::PULSEAUDIO)
109109
endif()
110110
if(UNIX)
111111
target_sources(myth PRIVATE mediamonitor-unix.cpp mediamonitor-unix.h)
112+
if(NOT TARGET ${QT_PKG_NAME}::DBus)
113+
set_source_files_properties(mediamonitor-unix.h PROPERTIES SKIP_AUTOMOC
114+
TRUE)
115+
endif()
112116
endif()
113117
if(WIN32)
114118
target_sources(
@@ -147,8 +151,6 @@ endif()
147151
# All remaining target information
148152
#
149153

150-
set_source_files_properties(mediamonitor-unix.h PROPERTIES SKIP_AUTOMOC TRUE)
151-
152154
target_compile_definitions(myth PRIVATE MYTH_API)
153155

154156
target_include_directories(

mythtv/libs/libmythtv/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,7 @@ target_link_libraries(
279279
PkgConfig::LIBPOSTPROC
280280
Iconv::Iconv
281281
$<TARGET_NAME_IF_EXISTS:PkgConfig::LibXml2>
282+
$<TARGET_NAME_IF_EXISTS:PkgConfig::SYSTEMD>
282283
PkgConfig::LIBCRYPTO
283284
PkgConfig::SoundTouch
284285
mythbluray

mythtv/libs/libmythtv/cmake/Backend.cmake

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ if(NOT ENABLE_BACKEND)
88
return()
99
endif()
1010

11+
target_link_libraries(mythtv PUBLIC PkgConfig::LZO2)
1112
target_compile_definitions(mythtv PRIVATE USING_BACKEND USING_IPTV)
1213
target_sources(
1314
mythtv
@@ -180,12 +181,12 @@ if(TARGET Lame::Lame)
180181
if(USING_FFMPEG_THREADS)
181182
target_compile_definitions(mythtv PRIVATE USING_FFMPEG_THREADS)
182183
endif()
183-
# ~~~
184-
# if(NOT mingw AND NOT win32-msvc*)
185-
# target_sources(mythtv PRIVATE
186-
# recorders/NuppelVideoRecorder.cpp recorders/NuppelVideoRecorder.h)
187-
# endif()
188-
# ~~~
184+
185+
if(NOT MINGW AND NOT MSVC)
186+
target_sources(mythtv PRIVATE recorders/NuppelVideoRecorder.cpp
187+
recorders/NuppelVideoRecorder.h)
188+
endif()
189+
target_link_libraries(mythtv PUBLIC Lame::Lame)
189190
endif()
190191

191192
# Support for cable boxes that provide Firewire out

0 commit comments

Comments
 (0)