diff --git a/configure.ac b/configure.ac index 7fc7bb93..e7408b53 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ AC_PREREQ(2.59) AC_INIT(lms, 1.0.0, test@test) AM_INIT_AUTOMAKE -AC_CONFIG_HEADER(include/config.h) +AC_CONFIG_HEADER(src/config/config.h) AC_LANG_CPLUSPLUS @@ -9,16 +9,16 @@ AC_LANG_CPLUSPLUS AC_PROG_CXX -AC_ARG_ENABLE(remote, AS_HELP_STRING([--enable-remote], - [Build with the remote protocol support. Defaults to yes.])], - [enable_remote="$enableval"], - [enable_remote="yes"]) +AC_ARG_ENABLE(lmsapi, AS_HELP_STRING([--enable-lmsapi], + [Build with the lmsapi protocol support. Defaults to yes.])], + [enable_lmsapi="$enableval"], + [enable_lmsapi="yes"]) # ProtoBuf compiler. # First, specify with --with-protoc=/path/of/protoc. # Or, specify with env variable PROTOC. # If neither of the above, find it in the path. -AS_IF([test "$enable_remote" = "yes"], +AS_IF([test "$enable_lmsapi" = "yes"], [AC_ARG_WITH([protoc], [AS_HELP_STRING([--with-protoc=/path/of/protoc], [Location of the protocol buffers compiler protoc. Defaults to looking on path.])], @@ -32,10 +32,12 @@ AS_IF([test "$enable_remote" = "yes"], [main], , [AC_MSG_ERROR([libprotobuf not found!])])] - [AC_DEFINE(REMOTE_ENABLE, 1, [Remote support disabled])] + [lmsapi=true] , - [AC_DEFINE(REMOTE_ENABLE, 0, [Remote support enabled])] -) + [lmsapi=false]) + +AM_CONDITIONAL([LMSAPI], [test x$lmsapi = xtrue]) +AS_IF([test x$lmsapi = xtrue], [AC_DEFINE(HAVE_LMSAPI, [1], [Enable LMS API support])]) AC_CHECK_HEADERS([Wt/WApplication jpeglib.h], [], diff --git a/src/Makefile.am b/src/Makefile.am index c4d71c2b..ef3bb63e 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -26,17 +26,9 @@ lms_SOURCES = \ $(srcdir)/logger/Logger.cpp \ $(srcdir)/metadata/AvFormat.cpp \ $(srcdir)/metadata/Utils.cpp \ - $(srcdir)/remote/server/Connection.cpp \ - $(srcdir)/remote/server/ConnectionManager.cpp \ - $(srcdir)/remote/server/AudioCollectionRequestHandler.cpp \ - $(srcdir)/remote/server/AuthRequestHandler.cpp \ - $(srcdir)/remote/server/MediaRequestHandler.cpp \ - $(srcdir)/remote/server/RequestHandler.cpp \ - $(srcdir)/remote/server/Server.cpp \ $(srcdir)/service/ServiceManager.cpp \ $(srcdir)/service/DatabaseUpdateService.cpp \ $(srcdir)/service/UserInterfaceService.cpp \ - $(srcdir)/service/RemoteServerService.cpp \ $(srcdir)/transcode/AvConvTranscoder.cpp \ $(srcdir)/transcode/Format.cpp \ $(srcdir)/transcode/Parameters.cpp \ @@ -73,6 +65,17 @@ lms_SOURCES = \ $(srcdir)/ui/settings/SettingsUserFormView.cpp \ $(srcdir)/ui/settings/SettingsUsers.cpp +if LMSAPI +lms_SOURCES += \ + $(srcdir)/remote/server/Connection.cpp \ + $(srcdir)/remote/server/ConnectionManager.cpp \ + $(srcdir)/remote/server/AudioCollectionRequestHandler.cpp \ + $(srcdir)/remote/server/AuthRequestHandler.cpp \ + $(srcdir)/remote/server/MediaRequestHandler.cpp \ + $(srcdir)/remote/server/RequestHandler.cpp \ + $(srcdir)/remote/server/Server.cpp \ + $(srcdir)/service/RemoteServerService.cpp + nodist_lms_SOURCES = \ $(builddir)/auth.pb.cc \ $(builddir)/auth.pb.h \ @@ -112,5 +115,7 @@ MOSTLYCLEANFILES = \ %.pb.cc %.pb.h: $(srcdir)/remote/proto/%.proto $(PROTOC) --proto_path=$(srcdir)/remote/proto/ --cpp_out=$(builddir)/ $^ +endif + lms_CXXFLAGS=-DBOOST_LOG_DYN_LINK -std=c++11 -Wall -I$(top_srcdir)/third-party -I$(srcdir)/ui -I$(srcdir)/remote diff --git a/src/main/main.cpp b/src/main/main.cpp index afd404cc..48502d8e 100644 --- a/src/main/main.cpp +++ b/src/main/main.cpp @@ -97,7 +97,13 @@ int main(int argc, char* argv[]) serviceManager.startService( std::make_shared( dbUpdateConfig ) ); if (remoteConfig.enable) + { +#if defined HAVE_LMSAPI serviceManager.startService( std::make_shared( remoteConfig )); +#else + LMS_LOG(MOD_MAIN, SEV_ERROR) << "LMS API cannot be activated since it is not compiled"; +#endif + } if (uiConfig.enable) serviceManager.startService( std::make_shared(boost::filesystem::path(argv[0]), uiConfig)); diff --git a/test/Makefile.am b/test/Makefile.am index 3f6ea18a..13243127 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,24 +1,11 @@ -TESTS = database-basics database-integrity sql-query database-user remote-client +TESTS = database-basics database-integrity sql-query database-user -check_PROGRAMS = database-basics database-integrity sql-query database-user remote-client - -database_basics_SOURCES = \ - $(srcdir)/CheckDbBasics.cpp \ - $(top_srcdir)/src/logger/Logger.cpp \ - $(top_srcdir)/src/database/Artist.cpp \ - $(top_srcdir)/src/database/DatabaseHandler.cpp \ - $(top_srcdir)/src/database/MediaDirectory.cpp \ - $(top_srcdir)/src/database/Playlist.cpp \ - $(top_srcdir)/src/database/Release.cpp \ - $(top_srcdir)/src/database/SearchFilter.cpp \ - $(top_srcdir)/src/database/SqlQuery.cpp \ - $(top_srcdir)/src/database/Track.cpp \ - $(top_srcdir)/src/database/User.cpp \ - $(top_srcdir)/src/database/Video.cpp - -database_basics_CXXFLAGS=-std=c++11 -Wall -Wextra -DBOOST_LOG_DYN_LINK -I$(top_srcdir)/src +check_PROGRAMS = database-basics database-integrity sql-query database-user +if LMSAPI +TESTS += remote-client +check_PROGRAMS += remote-client remote_client_SOURCES = \ $(srcdir)/RemoteClient.cpp \ @@ -37,12 +24,28 @@ BUILT_SOURCES = \ $(builddir)/media.pb.h \ $(builddir)/messages.pb.h - remote_client_CXXFLAGS=-std=c++11 -Wall -Wextra -DBOOST_LOG_DYN_LINK -I$(top_srcdir)/src %.pb.cc %.pb.h: $(top_srcdir)/src/remote/proto/%.proto $(PROTOC) --proto_path=$(top_srcdir)/src/remote/proto/ --cpp_out=$(builddir)/ $^ +endif + +database_basics_SOURCES = \ + $(srcdir)/CheckDbBasics.cpp \ + $(top_srcdir)/src/logger/Logger.cpp \ + $(top_srcdir)/src/database/Artist.cpp \ + $(top_srcdir)/src/database/DatabaseHandler.cpp \ + $(top_srcdir)/src/database/MediaDirectory.cpp \ + $(top_srcdir)/src/database/Playlist.cpp \ + $(top_srcdir)/src/database/Release.cpp \ + $(top_srcdir)/src/database/SearchFilter.cpp \ + $(top_srcdir)/src/database/SqlQuery.cpp \ + $(top_srcdir)/src/database/Track.cpp \ + $(top_srcdir)/src/database/User.cpp \ + $(top_srcdir)/src/database/Video.cpp + +database_basics_CXXFLAGS=-std=c++11 -Wall -Wextra -DBOOST_LOG_DYN_LINK -I$(top_srcdir)/src database_user_SOURCES = \ $(srcdir)/CheckDatabaseUser.cpp \