diff --git a/.travis.yml b/.travis.yml index 1193accd..f2f798b8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,7 @@ before_install: - git checkout 4.1.0 - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr && sudo make install - popd -script: cmake . && make && make test +script: cmake -DCMAKE_BUILD_TYPE=Release . && make && make test env: global: - MAKEFLAGS="-j 2" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 48f68d61..d88e62ec 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,5 +2,6 @@ add_compile_options(-Wall -Wextra -pedantic) add_subdirectory(libs) add_subdirectory(lms) +add_subdirectory(tools) diff --git a/src/libs/CMakeLists.txt b/src/libs/CMakeLists.txt index 2619ec6e..7302b579 100644 --- a/src/libs/CMakeLists.txt +++ b/src/libs/CMakeLists.txt @@ -3,6 +3,7 @@ add_subdirectory(auth) add_subdirectory(av) add_subdirectory(cover) add_subdirectory(database) +add_subdirectory(metadata) add_subdirectory(recommendation) add_subdirectory(scanner) add_subdirectory(som) diff --git a/src/libs/metadata/CMakeLists.txt b/src/libs/metadata/CMakeLists.txt new file mode 100644 index 00000000..cc6a1dbb --- /dev/null +++ b/src/libs/metadata/CMakeLists.txt @@ -0,0 +1,25 @@ + +add_library(lmsmetadata SHARED + impl/AvFormatParser.cpp + impl/TagLibParser.cpp + ) + +target_include_directories(lmsmetadata INTERFACE + include + ) + +target_include_directories(lmsmetadata PRIVATE + include + ) + +target_link_libraries(lmsmetadata PRIVATE + lmsav + tag + ) + +target_link_libraries(lmsmetadata PUBLIC + lmsutils + ) + +install(TARGETS lmsmetadata DESTINATION lib) + diff --git a/src/libs/scanner/impl/metadata/AvFormat.cpp b/src/libs/metadata/impl/AvFormatParser.cpp similarity index 98% rename from src/libs/scanner/impl/metadata/AvFormat.cpp rename to src/libs/metadata/impl/AvFormatParser.cpp index 37af1554..7dfd8af4 100644 --- a/src/libs/scanner/impl/metadata/AvFormat.cpp +++ b/src/libs/metadata/impl/AvFormatParser.cpp @@ -17,13 +17,12 @@ * along with LMS. If not, see . */ -#include "AvFormat.hpp" +#include "metadata/AvFormatParser.hpp" #include #include #include "av/AvInfo.hpp" - #include "utils/Logger.hpp" #include "utils/String.hpp" @@ -128,7 +127,7 @@ getArtists(const MetadataMap& metadataMap) } std::optional -AvFormat::parse(const std::filesystem::path& p, bool debug) +AvFormatParser::parse(const std::filesystem::path& p, bool debug) { Track track; diff --git a/src/libs/scanner/impl/metadata/TagLibParser.cpp b/src/libs/metadata/impl/TagLibParser.cpp similarity index 99% rename from src/libs/scanner/impl/metadata/TagLibParser.cpp rename to src/libs/metadata/impl/TagLibParser.cpp index 75104d53..78949ce8 100644 --- a/src/libs/scanner/impl/metadata/TagLibParser.cpp +++ b/src/libs/metadata/impl/TagLibParser.cpp @@ -17,7 +17,7 @@ * along with LMS. If not, see . */ -#include "TagLibParser.hpp" +#include "metadata/TagLibParser.hpp" #include #include diff --git a/src/libs/scanner/impl/metadata/AvFormat.hpp b/src/libs/metadata/include/metadata/AvFormatParser.hpp similarity index 92% rename from src/libs/scanner/impl/metadata/AvFormat.hpp rename to src/libs/metadata/include/metadata/AvFormatParser.hpp index 28c25a8e..009d4c2e 100644 --- a/src/libs/scanner/impl/metadata/AvFormat.hpp +++ b/src/libs/metadata/include/metadata/AvFormatParser.hpp @@ -19,13 +19,13 @@ #pragma once -#include "MetaData.hpp" +#include "metadata/IParser.hpp" namespace MetaData { // Parse that makes use of AvFormat -class AvFormat : public Parser +class AvFormatParser : public IParser { public: std::optional parse(const std::filesystem::path& p, bool debug = false) override; diff --git a/src/libs/scanner/impl/metadata/MetaData.hpp b/src/libs/metadata/include/metadata/IParser.hpp similarity index 98% rename from src/libs/scanner/impl/metadata/MetaData.hpp rename to src/libs/metadata/include/metadata/IParser.hpp index b4f652ad..4a8b5362 100644 --- a/src/libs/scanner/impl/metadata/MetaData.hpp +++ b/src/libs/metadata/include/metadata/IParser.hpp @@ -26,7 +26,6 @@ #include #include -//#include "utils/Utils.hpp" #include "utils/UUID.hpp" namespace MetaData @@ -73,7 +72,7 @@ namespace MetaData std::string copyrightURL; }; - class Parser + class IParser { public: virtual std::optional parse(const std::filesystem::path& p, bool debug = false) = 0; diff --git a/src/libs/scanner/impl/metadata/TagLibParser.hpp b/src/libs/metadata/include/metadata/TagLibParser.hpp similarity index 92% rename from src/libs/scanner/impl/metadata/TagLibParser.hpp rename to src/libs/metadata/include/metadata/TagLibParser.hpp index 5dad7a3f..1c055b76 100644 --- a/src/libs/scanner/impl/metadata/TagLibParser.hpp +++ b/src/libs/metadata/include/metadata/TagLibParser.hpp @@ -19,13 +19,13 @@ #pragma once -#include "MetaData.hpp" +#include "metadata/IParser.hpp" namespace MetaData { // Parse that makes use of AvFormat -class TagLibParser : public Parser +class TagLibParser : public IParser { public: std::optional parse(const std::filesystem::path& p, bool debug = false) override; diff --git a/src/libs/scanner/CMakeLists.txt b/src/libs/scanner/CMakeLists.txt index ff0df591..3d7a77f3 100644 --- a/src/libs/scanner/CMakeLists.txt +++ b/src/libs/scanner/CMakeLists.txt @@ -1,7 +1,5 @@ add_library(lmsscanner SHARED - impl/metadata/AvFormat.cpp - impl/metadata/TagLibParser.cpp impl/MediaScanner.cpp impl/MediaScannerStats.cpp ) @@ -15,10 +13,9 @@ target_include_directories(lmsscanner PRIVATE ) target_link_libraries(lmsscanner PRIVATE - lmsav lmsdatabase + lmsmetadata lmsutils - tag ) target_link_libraries(lmsscanner PUBLIC diff --git a/src/libs/scanner/impl/MediaScanner.hpp b/src/libs/scanner/impl/MediaScanner.hpp index f7b13d3a..c6452156 100644 --- a/src/libs/scanner/impl/MediaScanner.hpp +++ b/src/libs/scanner/impl/MediaScanner.hpp @@ -29,10 +29,10 @@ #include -#include "scanner/IMediaScanner.hpp" #include "database/ScanSettings.hpp" #include "database/Session.hpp" #include "metadata/TagLibParser.hpp" +#include "scanner/IMediaScanner.hpp" namespace Scanner { diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt new file mode 100644 index 00000000..f66ea24a --- /dev/null +++ b/src/tools/CMakeLists.txt @@ -0,0 +1,4 @@ + +add_subdirectory(metadata) + + diff --git a/src/tools/Makefile.am b/src/tools/Makefile.am deleted file mode 100644 index c382f8bc..00000000 --- a/src/tools/Makefile.am +++ /dev/null @@ -1,4 +0,0 @@ -if BUILD_TOOLS -SUBDIRS = similarity similarity-parameters metadata -endif - diff --git a/src/tools/metadata/CMakeLists.txt b/src/tools/metadata/CMakeLists.txt new file mode 100644 index 00000000..4c0706cf --- /dev/null +++ b/src/tools/metadata/CMakeLists.txt @@ -0,0 +1,11 @@ + +add_executable(lms-metadata + LmsMetadata.cpp + ) + +target_link_libraries(lms-metadata PRIVATE + lmsmetadata + ) + +install(TARGETS lms-metadata DESTINATION bin) + diff --git a/src/tools/metadata/LmsMetadata.cpp b/src/tools/metadata/LmsMetadata.cpp index 9828c7f9..7a04e178 100644 --- a/src/tools/metadata/LmsMetadata.cpp +++ b/src/tools/metadata/LmsMetadata.cpp @@ -25,8 +25,7 @@ #include -#include "av/AvInfo.hpp" -#include "metadata/AvFormat.hpp" +#include "metadata/AvFormatParser.hpp" #include "metadata/TagLibParser.hpp" #include "utils/StreamLogger.hpp" @@ -52,7 +51,7 @@ std::ostream& operator<<(std::ostream& os, const MetaData::Album& album) -void parse(MetaData::Parser& parser, const std::filesystem::path& file) +void parse(MetaData::IParser& parser, const std::filesystem::path& file) { using namespace MetaData; @@ -155,7 +154,7 @@ int main(int argc, char *argv[]) { std::cout << "Using av:" << std::endl; - MetaData::AvFormat parser; + MetaData::AvFormatParser parser; parse(parser, file); } diff --git a/src/tools/metadata/Makefile.am b/src/tools/metadata/Makefile.am deleted file mode 100644 index e2a5fd10..00000000 --- a/src/tools/metadata/Makefile.am +++ /dev/null @@ -1,14 +0,0 @@ -bin_PROGRAMS = lms-metadata - -lms_metadata_SOURCES = \ - $(srcdir)/LmsMetadata.cpp \ - $(top_srcdir)/src/av/AvInfo.cpp \ - $(top_srcdir)/src/metadata/AvFormat.cpp \ - $(top_srcdir)/src/metadata/TagLibParser.cpp \ - $(top_srcdir)/src/utils/Logger.cpp \ - $(top_srcdir)/src/utils/StreamLogger.cpp \ - $(top_srcdir)/src/utils/String.cpp \ - $(top_srcdir)/src/utils/UUID.cpp - -lms_metadata_CXXFLAGS=-std=c++17 -I$(top_srcdir)/src -D_REENTRANT -