aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Input/mpeg/CMakeLists.txt
blob: 1d3fd8067648cb8f8a779cc5eee9f6d3525eb947 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
project(libmpeg)

INCLUDE(CheckIncludeFileCXX)

include_directories(${CMAKE_CURRENT_BINARY_DIR})

# libqmmp
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../../)
link_directories(${CMAKE_CURRENT_BINARY_DIR}/../../../qmmp)

# libmad
IF(USE_MAD)
pkg_search_module(MAD libmad mad)
ENDIF(USE_MAD)

# libmpg123
IF(USE_MPG123)
pkg_search_module(MPG123 libmpg123>=1.13.0)
ENDIF(USE_MPG123)

include_directories(${TAGLIB_INCLUDE_DIRS})
link_directories(${TAGLIB_LIBRARY_DIRS})
ADD_DEFINITIONS(${TAGLIB_CFLAGS})

SET(USE_LIBRCD FALSE CACHE BOOL "enable/disable charset detection for ID3v1/2 tags using librcd")

IF(USE_LIBRCD)
  CHECK_INCLUDE_FILE_CXX(mpc/mpcdec.h LIBRCD_HEADER_FOUND)
ENDIF(USE_LIBRCD)

IF(LIBRCD_HEADER_FOUND)
  SET(LIBRCD_FOUND TRUE CACHE INTERNAL "rcd")
  SET(LIBRCD_LDFLAGS -lrcd)
ENDIF(LIBRCD_HEADER_FOUND)


SET(libmpeg_SRCS
  decodermpegfactory.cpp
  settingsdialog.cpp
  tagextractor.cpp
  mpegmetadatamodel.cpp
)

SET(libmpeg_HDRS
  tagextractor.h
)

IF(MAD_FOUND)
  include_directories(${MAD_INCLUDE_DIRS})
  link_directories(${MAD_LIBRARY_DIRS})
  ADD_DEFINITIONS(${MAD_CFLAGS} -DWITH_MAD)
  SET(libmpeg_SRCS ${libmpeg_SRCS} decoder_mad.cpp)
  SET(libmpeg_HDRS ${libmpeg_HDRS} decoder_mad.h)
ENDIF(MAD_FOUND)

IF(MPG123_FOUND)
  include_directories(${MPG123_INCLUDE_DIRS})
  link_directories(${MPG123_LIBRARY_DIRS})
  ADD_DEFINITIONS(${MPG123_CFLAGS} -DWITH_MPG123)
  SET(libmpeg_SRCS ${libmpeg_SRCS} decoder_mpg123.cpp)
  SET(libmpeg_HDRS ${libmpeg_HDRS} decoder_mpg123.h)
ENDIF(MPG123_FOUND)

SET(libmpeg_RCCS translations/translations.qrc)

QT5_ADD_RESOURCES(libmpeg_RCC_SRCS ${libmpeg_RCCS})

# user interface

SET(libmpeg_UIS
    settingsdialog.ui
)

QT5_WRAP_UI(libmpeg_UIS_H ${libmpeg_UIS})
# Don't forget to include output directory, otherwise
# the UI file won't be wrapped!
include_directories(${CMAKE_CURRENT_BINARY_DIR})

IF(MAD_FOUND OR MPG123_FOUND)
ADD_LIBRARY(mpeg MODULE ${libmpeg_SRCS} ${libmpeg_UIS_H} ${libmpeg_RCC_SRCS} ${libmpeg_HDRS})
add_dependencies(mpeg libqmmp)
target_link_libraries(mpeg Qt5::Widgets libqmmp ${TAGLIB_LDFLAGS} ${MAD_LDFLAGS} ${MPG123_LDFLAGS} ${LIBRCD_LDFLAGS})
install(TARGETS mpeg DESTINATION ${PLUGIN_DIR}/Input)
ENDIF(MAD_FOUND OR MPG123_FOUND)