Makefile.am 10 KB
Newer Older
1 2
ACLOCAL_AMFLAGS = -I m4

3
AM_CXXFLAGS = -Wall -Wsign-compare -Wextra -Wstrict-aliasing -Wstrict-overflow \
4
			  -Wformat=2 -Wno-unused-parameter -Wcast-align -Wpointer-arith \
5
			  -Wwrite-strings \
6 7 8 9
			  -pipe

MEDIALIB_CPPFLAGS = $(AM_CPPFLAGS) -I$(top_srcdir)/include -I$(top_srcdir)/src

10 11
libmedialibrary_ladir = $(includedir)/medialibrary

12
libmedialibrary_la_CXXFLAGS = \
13
	$(AM_CXXFLAGS) \
14 15 16
	-fvisibility=default \
	$(NULL)

17 18 19 20 21
libmedialibrary_la_CPPFLAGS = \
	$(MEDIALIB_CPPFLAGS) \
	$(SQLITE_CFLAGS) \
	$(NULL)

22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
libmedialibrary_la_HEADERS = \
	include/medialibrary/IAlbum.h \
	include/medialibrary/IAlbumTrack.h \
	include/medialibrary/IArtist.h \
	include/medialibrary/IAudioTrack.h \
	include/medialibrary/IFile.h \
	include/medialibrary/IGenre.h \
	include/medialibrary/ILabel.h \
	include/medialibrary/ILogger.h \
	include/medialibrary/IMedia.h \
	include/medialibrary/IMediaLibrary.h \
	include/medialibrary/IMovie.h \
	include/medialibrary/IPlaylist.h \
	include/medialibrary/IShowEpisode.h \
	include/medialibrary/IShow.h \
	include/medialibrary/IVideoTrack.h \
	include/medialibrary/Types.h \
39
	include/medialibrary/IDeviceLister.h \
40
	include/medialibrary/IFolder.h \
41
	include/medialibrary/IQuery.h \
42
	include/medialibrary/IMetadata.h \
43
	include/medialibrary/ISubtitleTrack.h \
44
	include/medialibrary/IThumbnailer.h \
45 46
	$(NULL)

47
libmedialibraryfsdir = $(libmedialibrary_ladir)/filesystem
48 49 50 51
libmedialibraryfs_HEADERS = \
	include/medialibrary/filesystem/IDevice.h \
	include/medialibrary/filesystem/IDirectory.h \
	include/medialibrary/filesystem/IFile.h \
52
	include/medialibrary/filesystem/IFileSystemFactory.h \
53 54
	$(NULL)

55
libmedialibraryparserdir = $(libmedialibrary_ladir)/parser
56 57
libmedialibraryparser_HEADERS = \
	include/medialibrary/parser/IItem.h \
58
	include/medialibrary/parser/Parser.h \
59
	include/medialibrary/parser/IParserService.h \
60 61
	$(NULL)

62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
libmedialibrary_la_SOURCES = \
	src/Album.cpp \
	src/AlbumTrack.cpp \
	src/Artist.cpp \
	src/AudioTrack.cpp \
	src/Device.cpp \
	src/Factory.cpp \
	src/File.cpp \
	src/Folder.cpp \
	src/Genre.cpp \
	src/Label.cpp \
	src/Media.cpp \
	src/MediaLibrary.cpp \
	src/Movie.cpp \
	src/Playlist.cpp \
	src/Settings.cpp \
	src/Show.cpp \
79
	src/Thumbnail.cpp \
80 81
	src/ShowEpisode.cpp \
	src/VideoTrack.cpp \
82
	src/Metadata.cpp \
83
	src/SubtitleTrack.cpp \
84 85 86 87 88
	src/database/SqliteConnection.cpp \
	src/database/SqliteTools.cpp \
	src/database/SqliteTransaction.cpp \
	src/discoverer/DiscovererWorker.cpp \
	src/discoverer/FsDiscoverer.cpp \
89
	src/discoverer/probe/PathProbe.cpp \
90
	src/factory/FileSystemFactory.cpp \
91
	src/factory/DeviceListerFactory.cpp \
92
	src/filesystem/common/CommonDevice.cpp \
93
	src/filesystem/common/CommonFile.cpp \
94
	src/filesystem/common/CommonDirectory.cpp \
95 96 97
	src/logging/IostreamLogger.cpp \
	src/logging/Logger.cpp \
	src/metadata_services/MetadataParser.cpp \
98
	src/metadata_services/ThumbnailerWorker.cpp \
99
	src/parser/Parser.cpp \
100
	src/parser/ParserWorker.cpp \
101
	src/parser/Task.cpp \
102
	src/utils/Directory.cpp \
103 104
	src/utils/Filename.cpp \
	src/utils/ModificationsNotifier.cpp \
105
	src/utils/Strings.cpp \
106
	src/utils/Url.cpp \
107 108
	$(NULL)

109

110 111 112 113 114 115 116 117 118 119 120
noinst_HEADERS = \
	include/discoverer/IDiscoverer.h \
	include/Fixup.h \
	include/Types.h \
	src/Album.h \
	src/AlbumTrack.h \
	src/Artist.h \
	src/AudioTrack.h \
	src/database/DatabaseHelpers.h \
	src/database/SqliteConnection.h \
	src/database/SqliteErrors.h \
121
	src/database/SqliteQuery.h \
122 123 124 125 126 127
	src/database/SqliteTools.h \
	src/database/SqliteTraits.h \
	src/database/SqliteTransaction.h \
	src/Device.h \
	src/discoverer/DiscovererWorker.h \
	src/discoverer/FsDiscoverer.h \
128 129 130
	src/discoverer/probe/CrawlerProbe.h \
	src/discoverer/probe/IProbe.h \
	src/discoverer/probe/PathProbe.h \
131
	src/factory/FileSystemFactory.h \
132
	src/factory/DeviceListerFactory.h \
133 134
	src/File.h \
	src/filesystem/common/CommonFile.h \
135
	src/filesystem/common/CommonDirectory.h \
136
	src/filesystem/common/CommonDevice.h \
137
	src/filesystem/darwin/DeviceLister.h \
138 139 140
	src/filesystem/unix/Device.h \
	src/filesystem/unix/Directory.h \
	src/filesystem/unix/File.h \
141
	src/filesystem/unix/DeviceLister.h \
142 143 144 145 146 147 148 149 150 151
	src/filesystem/win32/Directory.h \
	src/filesystem/win32/File.h \
	src/Folder.h \
	src/Genre.h \
	src/Label.h \
	src/logging/IostreamLogger.h \
	src/logging/Logger.h \
	src/Media.h \
	src/MediaLibrary.h \
	src/metadata_services/MetadataParser.h \
152
	src/metadata_services/ThumbnailerWorker.h \
153 154
	src/Movie.h \
	src/parser/Parser.h \
155
	src/parser/ParserWorker.h \
156 157 158 159 160
	src/parser/Task.h \
	src/Playlist.h \
	src/Settings.h \
	src/ShowEpisode.h \
	src/Show.h \
161
	src/Thumbnail.h \
162
	src/utils/Directory.h \
163 164
	src/utils/Filename.h \
	src/utils/ModificationsNotifier.h \
165
	src/utils/Strings.h \
166
	src/utils/SWMRLock.h \
167
	src/utils/Url.h \
168
	src/VideoTrack.h \
169
	src/Metadata.h \
170
	src/compat/Thread.h \
171
	src/compat/Mutex.h \
172
	src/compat/ConditionVariable.h \
173
	src/SubtitleTrack.h \
174 175 176
	$(NULL)


177 178 179
if HAVE_WIN32
libmedialibrary_la_SOURCES += \
	src/filesystem/win32/Directory.cpp \
180
	src/filesystem/win32/File.cpp \
181
	src/filesystem/win32/DeviceLister.cpp \
182
	$(NULL)
183 184 185
noinst_HEADERS += \
	src/utils/Charsets.h \
	$(NULL)
186 187 188
else
libmedialibrary_la_SOURCES += \
	src/filesystem/unix/Directory.cpp \
Hugo Beauzée-Luyssen's avatar
Hugo Beauzée-Luyssen committed
189 190
	src/filesystem/unix/File.cpp \
	$(NULL)
191
if HAVE_LINUX
192
if !HAVE_ANDROID
193
libmedialibrary_la_SOURCES += \
194 195
	src/filesystem/unix/DeviceLister.cpp \
	$(NULL)
196
endif
197
endif
198
if HAVE_DARWIN
199
libmedialibrary_macos_la_CPPFLAGS = $(libmedialibrary_la_CPPFLAGS)
200
libmedialibrary_macos_la_SOURCES = \
201 202
	src/filesystem/darwin/DeviceLister.mm \
	$(NULL)
203
endif
204 205 206 207 208 209
endif

libmedialibrary_la_LIBADD = \
	$(SQLITE_LIBS) 			\
	$(NULL)

210 211 212 213 214 215
libmedialibrary_la_LDFLAGS = -no-undefined -export-symbols-regex 'NewMediaLibrary'
if HAVE_DARWIN
libmedialibrary_la_LIBADD += libmedialibrary_macos.la
libmedialibrary_la_LDFLAGS += -Wl,-undefined,dynamic_lookup,-framework,Foundation
endif

216 217 218 219 220 221
lib_LTLIBRARIES = libmedialibrary.la
if HAVE_DARWIN
lib_LTLIBRARIES += libmedialibrary_macos.la
endif

if HAVE_LIBVLC
222

223 224 225 226 227 228 229 230 231 232
if HAVE_LIBVLC4
libmedialibrary_la_SOURCES += \
	src/metadata_services/vlc/CoreThumbnailer.cpp \
	src/metadata_services/vlc/CoreThumbnailer.h

else
libmedialibrary_la_SOURCES += \
	src/metadata_services/vlc/VmemThumbnailer.cpp \
	src/metadata_services/vlc/VmemThumbnailer.h

233 234 235 236 237 238 239
if HAVE_LIBJPEG
libmedialibrary_la_SOURCES += src/metadata_services/vlc/imagecompressors/JpegCompressor.cpp
noinst_HEADERS += src/metadata_services/vlc/imagecompressors/JpegCompressor.h
libmedialibrary_la_CPPFLAGS += $(LIBJPEG_CFLAGS)
libmedialibrary_la_LIBADD += $(LIBJPEG_LIBS)
endif

240 241
endif

242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272
libmedialibrary_la_SOURCES += \
	src/metadata_services/vlc/VLCMetadataService.cpp \
	src/metadata_services/vlc/Common.cpp \
	src/utils/VLCInstance.cpp \
	src/factory/NetworkFileSystemFactory.cpp \
	src/filesystem/network/Directory.cpp \
	src/filesystem/network/File.cpp \
	src/filesystem/network/Device.cpp \
	$(NULL)

noinst_HEADERS += \
	src/utils/VLCInstance.h \
    src/metadata_services/vlc/Common.hpp \
	src/metadata_services/vlc/VLCMetadataService.h \
	src/metadata_services/vlc/imagecompressors/IImageCompressor.h \
	src/factory/NetworkFileSystemFactory.h \
	src/filesystem/network/Device.h \
	src/filesystem/network/Directory.h \
	src/filesystem/network/File.h \
	$(NULL)

libmedialibrary_la_CPPFLAGS += \
	$(VLC_CFLAGS) \
	$(VLCPP_CFLAGS) \
	$(NULL)

libmedialibrary_la_LIBADD += $(VLC_LIBS)

endif


273 274
EXTRA_DIST=

275 276 277 278 279 280 281 282 283 284 285 286 287
if HAVE_TESTS

check_PROGRAMS = unittest samples

lib_LTLIBRARIES += libgtest.la libgtestmain.la

libgtest_la_SOURCES = \
	googletest/src/gtest-all.cc

libgtestmain_la_SOURCES = \
	googletest/src/gtest_main.cc

libgtest_la_CPPFLAGS = \
288
	$(AM_CPPFLAGS) \
289 290
	-I$(top_srcdir)/googletest \
	-I$(top_srcdir)/googletest/include
291

292
libgtestmain_la_CPPFLAGS = $(AM_CPPFLAGS) $(libgtest_la_CPPFLAGS)
293 294 295 296 297 298 299 300 301 302 303 304 305 306 307

unittest_SOURCES = \
	test/common/MediaLibraryTester.cpp \
	test/mocks/FileSystem.cpp \
	test/mocks/filesystem/MockDevice.cpp \
	test/mocks/filesystem/MockDirectory.cpp \
	test/mocks/filesystem/MockFile.cpp \
	test/unittest/AlbumTests.cpp \
	test/unittest/AlbumTrackTests.cpp \
	test/unittest/ArtistTests.cpp \
	test/unittest/AudioTrackTests.cpp \
	test/unittest/DeviceTests.cpp \
	test/unittest/FileTests.cpp \
	test/unittest/FolderTests.cpp \
	test/unittest/FsUtilsTests.cpp \
308
	test/unittest/UrlTests.cpp \
309 310 311 312 313 314 315 316 317
	test/unittest/GenreTests.cpp \
	test/unittest/LabelTests.cpp \
	test/unittest/MediaTests.cpp \
	test/unittest/MovieTests.cpp \
	test/unittest/PlaylistTests.cpp \
	test/unittest/RemovalNotifierTests.cpp \
	test/unittest/ShowTests.cpp \
	test/unittest/Tests.cpp \
	test/unittest/VideoTrackTests.cpp \
318
	test/unittest/MiscTests.cpp \
319
	test/unittest/ThumbnailTests.cpp \
320
	test/unittest/SubtitleTrackTests.cpp \
321 322
	$(NULL)

323 324
EXTRA_DIST += test/unittest/db_v3.sql

325
unittest_CPPFLAGS = 		\
326
	$(MEDIALIB_CPPFLAGS) 	\
327
	-DSRC_DIR=\"$(abs_srcdir)\"	\
328
	-I$(top_srcdir)/test	\
329
	-I$(top_srcdir)/googletest/include \
330
	$(libmedialibrary_la_CPPFLAGS) \
331 332 333 334 335 336 337 338 339 340 341 342 343 344 345
	$(NULL)

unittest_LDADD = 		\
	libmedialibrary.la 	\
	libgtest.la			\
	libgtestmain.la		\
	$(SQLITE_LIBS)		\
	$(NULL)

samples_SOURCES = 						\
	test/common/MediaLibraryTester.cpp 	\
	test/samples/main.cpp 				\
	test/samples/Tester.cpp 			\
	$(NULL)

346
samples_CPPFLAGS = 			\
347
	$(MEDIALIB_CPPFLAGS)	\
Hugo Beauzée-Luyssen's avatar
Hugo Beauzée-Luyssen committed
348
	-DSRC_DIR=\"$(abs_srcdir)\"	\
349
	-I$(top_srcdir)/test	\
350
	-I$(top_srcdir)/googletest/include \
351
	$(RAPIDJSON_CFLAGS)		\
352
	$(libmedialibrary_la_CPPFLAGS) \
353 354 355 356 357 358 359 360 361
	$(NULL)

samples_LDADD = 		\
	libmedialibrary.la	\
	libgtest.la			\
	libgtestmain.la		\
	$(SQLITE_LIBS)		\
	$(NULL)

362 363 364 365 366 367
EXTRA_PROGRAMS = test_discoverer

test_discoverer_SOURCES = test/discoverer/main.cpp
test_discoverer_CXXFLAGS = $(MEDIALIB_CPPFLAGS)
test_discoverer_LDADD = libmedialibrary.la $(SQLITE_LIBS)

368 369
endif

370 371
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = medialibrary.pc
372
EXTRA_DIST += medialibrary.pc \
373
	src/database/migrations/migration3-5.sql \
374
	src/database/migrations/migration7-8.sql \
375 376 377 378 379 380 381
	src/database/migrations/migration13-14.sql \
	src/database/tables/File_v14.sql \
	src/database/tables/File_triggers_v14.sql \
	src/database/tables/Media_v14.sql \
	src/database/tables/Media_triggers_v14.sql \
	src/database/tables/Folder_v14.sql \
	src/database/tables/Folder_triggers_v14.sql \
382 383
	src/database/tables/Playlist_v14.sql \
	src/database/tables/Playlist_triggers_v14.sql \
384
	src/database/tables/Metadata_v14.sql \
385
	src/database/tables/Device_v14.sql \
386
	src/database/tables/Task_v14.sql \
387 388 389 390
	$(NULL)