Added some travis ci target + corrected some warnings
This commit is contained in:
+49
-9
@@ -1,15 +1,55 @@
|
||||
arch:
|
||||
- amd64
|
||||
- arm64
|
||||
language: cpp
|
||||
sudo: required
|
||||
os: linux
|
||||
dist: focal
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- build-essential
|
||||
- cmake
|
||||
- libboost-all-dev
|
||||
- libconfig++-dev
|
||||
- libavcodec-dev
|
||||
- libavutil-dev
|
||||
- libavformat-dev
|
||||
- ffmpeg
|
||||
- libstb-dev
|
||||
- libpstreams-dev
|
||||
- libtag1-dev
|
||||
- libpam0g-dev
|
||||
- libgraphicsmagick++1-dev
|
||||
compiler:
|
||||
- clang
|
||||
- gcc
|
||||
before_install:
|
||||
- eval "${MATRIX_EVAL}"
|
||||
- sudo apt-get install build-essential cmake libboost-all-dev libconfig++-dev libavcodec-dev libavutil-dev libavformat-dev ffmpeg libstb-dev libpstreams-dev libconfig++-dev libpstreams-dev libtag1-dev libpam0g-dev
|
||||
- git clone https://github.com/emweb/wt.git wt
|
||||
- pushd wt;
|
||||
- git checkout 4.4.0
|
||||
- cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr && sudo make install
|
||||
- popd
|
||||
script: cmake -DCMAKE_BUILD_TYPE=Release . && make && make test
|
||||
- |
|
||||
if [ ! -d ${HOME}/wt-${WT_VERSION}/include ]; then
|
||||
git clone https://github.com/emweb/wt.git wt
|
||||
cd wt
|
||||
git checkout ${WT_VERSION}
|
||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${WT_INSTALL_PREFIX} -DENABLE_LIBWTTEST=OFF
|
||||
make install
|
||||
cd ..
|
||||
fi
|
||||
script: mkdir build && cd build && cmake -DCMAKE_MODULE_PATH=${WT_INSTALL_PREFIX}/lib/cmake/wt -DCMAKE_BUILD_TYPE=${BUILD_TYPE} -DUSE_PAM=${USE_PAM} -DIMAGE_LIBRARY=${IMAGE_LIBRARY} .. && make && make test
|
||||
cache:
|
||||
directories:
|
||||
- ${HOME}/wt-${WT_VERSION}
|
||||
env:
|
||||
global:
|
||||
- MAKEFLAGS="-j 2"
|
||||
- WT_VERSION=4.4.0
|
||||
- WT_INSTALL_PREFIX=${HOME}/wt-${WT_VERSION}
|
||||
jobs:
|
||||
- BUILD_TYPE=Release USE_PAM=ON IMAGE_LIBRARY=STB
|
||||
- BUILD_TYPE=Release USE_PAM=OFF IMAGE_LIBRARY=STB
|
||||
- BUILD_TYPE=Release USE_PAM=OFF IMAGE_LIBRARY=GraphicsMagick++
|
||||
- BUILD_TYPE=Debug USE_PAM=ON IMAGE_LIBRARY=STB
|
||||
|
||||
# clang7 is not enough for full c++17 support
|
||||
jobs:
|
||||
exclude:
|
||||
- compiler: clang
|
||||
arch: amd64
|
||||
|
||||
+37
-7
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.12)
|
||||
|
||||
project(lms)
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/modules/)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED True)
|
||||
@@ -14,27 +14,57 @@ find_package(FFMPEGAV REQUIRED)
|
||||
find_package(Taglib REQUIRED)
|
||||
find_package(Boost REQUIRED COMPONENTS system program_options)
|
||||
find_package(PStreams REQUIRED)
|
||||
find_package(Wt REQUIRED COMPONENTS Wt Dbo DboSqlite3 HTTP)
|
||||
find_package(PAM)
|
||||
find_package(STB)
|
||||
pkg_check_modules(GRAPHICSMAGICKXX GraphicsMagick++)
|
||||
|
||||
# WT
|
||||
if (NOT Wt_FOUND)
|
||||
message(FATAL_ERROR "Wt package not found!")
|
||||
endif ()
|
||||
if (NOT TARGET Wt::Wt)
|
||||
message(FATAL_ERROR "Cannot find Wt::Wt!")
|
||||
endif ()
|
||||
if (NOT TARGET Wt::Dbo)
|
||||
message(FATAL_ERROR "Cannot find Wt::Dbo!")
|
||||
endif ()
|
||||
if (NOT TARGET Wt::DboSqlite3)
|
||||
message(FATAL_ERROR "Cannot find Wt::DboSqlite3!")
|
||||
endif ()
|
||||
if (NOT TARGET Wt::HTTP)
|
||||
message(FATAL_ERROR "Cannot find Wt::HTTP!")
|
||||
endif ()
|
||||
|
||||
# PAM
|
||||
option(USE_PAM "Use the PAM backend authentication API" ON)
|
||||
if (USE_PAM AND NOT PAM_FOUND)
|
||||
message(WARNING "PAM library not found: disabling")
|
||||
set(USE_PAM OFF)
|
||||
endif ()
|
||||
if (USE_PAM)
|
||||
message(STATUS "Using PAM authentication backend")
|
||||
else ()
|
||||
message(STATUS "NOT using PAM authentication backend")
|
||||
endif ()
|
||||
|
||||
# IMAGE
|
||||
if (STB_FOUND)
|
||||
set(IMAGE_LIBRARY STB CACHE STRING "STB library")
|
||||
elseif (GRAPHICSMAGICKXX_FOUND)
|
||||
set(IMAGE_LIBRARY GraphicksMagick++ CACHE STRING "GraphicsMagick++")
|
||||
set(IMAGE_LIBRARY GraphicsMagick++ CACHE STRING "GraphicsMagick++")
|
||||
else ()
|
||||
message(FATAL_ERROR "Cannot find suitable image library")
|
||||
endif()
|
||||
set_property(CACHE IMAGE_LIBRARY PROPERTY STRINGS GraphicksMagick++ STB)
|
||||
|
||||
if (IMAGE_LIBRARY STREQUAL GraphicksMagick++ AND NOT GRAPHICSMAGICKXX_FOUND)
|
||||
message(FATAL_ERROR "GraphicksMagick++ not found")
|
||||
set_property(CACHE IMAGE_LIBRARY PROPERTY STRINGS GraphicsMagick++ STB)
|
||||
if (IMAGE_LIBRARY STREQUAL GraphicsMagick++ AND NOT GRAPHICSMAGICKXX_FOUND)
|
||||
message(FATAL_ERROR "GraphicsMagick++ not found")
|
||||
elseif (IMAGE_LIBRARY STREQUAL STB AND NOT STB_FOUND)
|
||||
message(FATAL_ERROR "STB not found")
|
||||
endif ()
|
||||
|
||||
message(STATUS "IMAGE_LIBRARY set to ${IMAGE_LIBRARY}")
|
||||
|
||||
|
||||
add_subdirectory(src)
|
||||
|
||||
install(DIRECTORY approot DESTINATION share/lms)
|
||||
|
||||
+1
-1
@@ -117,7 +117,7 @@ RUN \
|
||||
|
||||
RUN \
|
||||
DIR=/tmp/lms && mkdir -p ${DIR} && cd ${DIR} && \
|
||||
PKG_CONFIG_PATH=/tmp/install/lib/pkgconfig CXXFLAGS="-I${PREFIX}/include" LDFLAGS="-L${PREFIX}/lib -Wl,--rpath-link=${PREFIX}/lib" cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PREFIX} && \
|
||||
PKG_CONFIG_PATH=/tmp/install/lib/pkgconfig CXXFLAGS="-I${PREFIX}/include" LDFLAGS="-L${PREFIX}/lib -Wl,--rpath-link=${PREFIX}/lib" cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_MODULE_PATH=${PREFIX}/lib/cmake/wt && \
|
||||
make && \
|
||||
LD_LIBRARY_PATH=${PREFIX}/lib make test && \
|
||||
make install && \
|
||||
|
||||
@@ -10,7 +10,7 @@ target_include_directories(lmsauth INTERFACE
|
||||
)
|
||||
|
||||
target_include_directories(lmsauth PRIVATE
|
||||
include/
|
||||
include
|
||||
)
|
||||
|
||||
target_link_libraries(lmsauth PRIVATE
|
||||
@@ -21,15 +21,15 @@ target_link_libraries(lmsauth PRIVATE
|
||||
target_link_libraries(lmsauth PUBLIC
|
||||
pthread
|
||||
Boost::system
|
||||
wt
|
||||
Wt::Wt
|
||||
)
|
||||
|
||||
if (PAM_FOUND)
|
||||
if (USE_PAM)
|
||||
target_compile_options(lmsauth PRIVATE "-DLMS_SUPPORT_PAM")
|
||||
target_sources(lmsauth PRIVATE impl/pam/PAM.cpp)
|
||||
target_include_directories(lmsauth PRIVATE ${PAM_INCLUDE_DIR})
|
||||
target_link_libraries(lmsauth PRIVATE ${PAM_LIBRARIES})
|
||||
endif (PAM_FOUND)
|
||||
endif (USE_PAM)
|
||||
|
||||
install(TARGETS lmsauth DESTINATION lib)
|
||||
|
||||
|
||||
@@ -37,9 +37,6 @@ namespace Auth {
|
||||
|
||||
AuthTokenService(std::size_t maxThrottlerEntries);
|
||||
|
||||
AuthTokenService() = default;
|
||||
~AuthTokenService() = default;
|
||||
|
||||
AuthTokenService(const AuthTokenService&) = delete;
|
||||
AuthTokenService& operator=(const AuthTokenService&) = delete;
|
||||
AuthTokenService(AuthTokenService&&) = delete;
|
||||
|
||||
@@ -38,9 +38,6 @@ namespace Auth {
|
||||
|
||||
PasswordService(std::size_t maxThrottlerEntries);
|
||||
|
||||
PasswordService() = default;
|
||||
~PasswordService() = default;
|
||||
|
||||
PasswordService(const PasswordService&) = delete;
|
||||
PasswordService& operator=(const PasswordService&) = delete;
|
||||
PasswordService(PasswordService&&) = delete;
|
||||
@@ -48,7 +45,7 @@ namespace Auth {
|
||||
|
||||
private:
|
||||
|
||||
bool isAuthModeSupported(Database::User::AuthMode authMode) const;
|
||||
bool isAuthModeSupported(Database::User::AuthMode authMode) const override;
|
||||
PasswordCheckResult checkUserPassword(Database::Session& session, const boost::asio::ip::address& clientAddress, const std::string& loginName, const std::string& password) override;
|
||||
Database::User::PasswordHash hashPassword(const std::string& password) const override;
|
||||
bool evaluatePasswordStrength(const std::string& loginName, const std::string& password) const override;
|
||||
|
||||
@@ -11,7 +11,7 @@ target_include_directories(lmsav INTERFACE
|
||||
)
|
||||
|
||||
target_include_directories(lmsav PRIVATE
|
||||
include/
|
||||
include
|
||||
${AVCODEC_INCLUDE_DIR}
|
||||
${AVFORMAT_INCLUDE_DIR}
|
||||
${AVUTIL_INCLUDE_DIR}
|
||||
@@ -19,10 +19,7 @@ target_include_directories(lmsav PRIVATE
|
||||
|
||||
target_link_libraries(lmsav PUBLIC
|
||||
lmsutils
|
||||
avformat
|
||||
avutil
|
||||
std::filesystem
|
||||
wt
|
||||
)
|
||||
|
||||
target_link_libraries(lmsav PRIVATE
|
||||
|
||||
@@ -28,7 +28,7 @@ if (IMAGE_LIBRARY STREQUAL STB)
|
||||
)
|
||||
target_compile_options(lmscover PRIVATE "-DLMS_SUPPORT_IMAGE_STB")
|
||||
target_include_directories(lmscover PRIVATE ${STB_INCLUDE_DIR})
|
||||
elseif (IMAGE_LIBRARY STREQUAL GraphicksMagick++)
|
||||
elseif (IMAGE_LIBRARY STREQUAL GraphicsMagick++)
|
||||
target_sources(lmscover PRIVATE
|
||||
impl/graphicsmagick/JPEGImage.cpp
|
||||
impl/graphicsmagick/RawImage.cpp
|
||||
|
||||
@@ -24,13 +24,13 @@ target_include_directories(lmsdatabase PRIVATE
|
||||
)
|
||||
|
||||
target_link_libraries(lmsdatabase PRIVATE
|
||||
wtdbosqlite3
|
||||
Wt::DboSqlite3
|
||||
)
|
||||
|
||||
target_link_libraries(lmsdatabase PUBLIC
|
||||
lmsutils
|
||||
std::filesystem
|
||||
wtdbo
|
||||
Wt::Dbo
|
||||
)
|
||||
|
||||
install(TARGETS lmsdatabase DESTINATION lib)
|
||||
|
||||
@@ -145,7 +145,7 @@ FromClause::FromClause(const std::string& clause)
|
||||
FromClause&
|
||||
FromClause::And(const FromClause& clause)
|
||||
{
|
||||
for (const std::string fromClause : clause._clause)
|
||||
for (const std::string& fromClause : clause._clause)
|
||||
{
|
||||
_clause.push_back(fromClause);
|
||||
}
|
||||
|
||||
@@ -54,7 +54,7 @@ findFirstValueOfAs(const MetadataMap& metadataMap, std::initializer_list<std::st
|
||||
std::vector<std::string> strUuids = StringUtils::splitString(*str, "/");
|
||||
std::vector<UUID> res;
|
||||
|
||||
for (const std::string strUuid : strUuids)
|
||||
for (const std::string& strUuid : strUuids)
|
||||
{
|
||||
std::optional<UUID> uuid {UUID::fromString(strUuid)};
|
||||
if (!uuid)
|
||||
|
||||
@@ -12,6 +12,7 @@ target_include_directories(lmsrecommendation INTERFACE
|
||||
)
|
||||
|
||||
target_include_directories(lmsrecommendation PRIVATE
|
||||
impl
|
||||
include
|
||||
)
|
||||
|
||||
@@ -19,10 +20,7 @@ target_link_libraries(lmsrecommendation PRIVATE
|
||||
lmsdatabase
|
||||
lmssom
|
||||
std::filesystem
|
||||
wt
|
||||
)
|
||||
|
||||
target_include_directories(lmsrecommendation PRIVATE impl)
|
||||
|
||||
install(TARGETS lmsrecommendation DESTINATION lib)
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ target_link_libraries(lmsscanner PRIVATE
|
||||
|
||||
target_link_libraries(lmsscanner PUBLIC
|
||||
std::filesystem
|
||||
wt
|
||||
Wt::Wt
|
||||
)
|
||||
|
||||
install(TARGETS lmsscanner DESTINATION lib)
|
||||
|
||||
@@ -20,15 +20,15 @@ target_link_libraries(lmssubsonic PRIVATE
|
||||
lmsauth
|
||||
lmsav
|
||||
lmscover
|
||||
lmsdatabase
|
||||
lmsrecommendation
|
||||
lmsscanner
|
||||
lmsutils
|
||||
std::filesystem
|
||||
)
|
||||
|
||||
target_link_libraries(lmssubsonic PUBLIC
|
||||
lmsdatabase
|
||||
lmsscanner
|
||||
wt
|
||||
Wt::Wt
|
||||
)
|
||||
|
||||
install(TARGETS lmssubsonic DESTINATION lib)
|
||||
|
||||
@@ -28,7 +28,7 @@ target_link_libraries(lmsutils PRIVATE
|
||||
target_link_libraries(lmsutils PUBLIC
|
||||
Boost::system
|
||||
std::filesystem
|
||||
wt
|
||||
Wt::Wt
|
||||
)
|
||||
|
||||
install(TARGETS lmsutils DESTINATION lib)
|
||||
|
||||
@@ -35,9 +35,8 @@ namespace Zip
|
||||
class ZipHeader
|
||||
{
|
||||
public:
|
||||
constexpr ZipHeader(std::byte* buffer, SizeType bufferSize)
|
||||
constexpr ZipHeader(std::byte* buffer, SizeType)
|
||||
: _buffer {buffer}
|
||||
, _bufferSize {bufferSize}
|
||||
{}
|
||||
|
||||
enum GeneralPurposeFlag : std::uint16_t
|
||||
@@ -71,7 +70,6 @@ namespace Zip
|
||||
|
||||
private:
|
||||
std::byte* _buffer {};
|
||||
const SizeType _bufferSize {};
|
||||
};
|
||||
|
||||
void
|
||||
|
||||
@@ -49,8 +49,8 @@ target_link_libraries(lms PRIVATE
|
||||
lmsscanner
|
||||
lmssubsonic
|
||||
lmsutils
|
||||
wt
|
||||
wthttp
|
||||
Wt::Wt
|
||||
Wt::HTTP
|
||||
)
|
||||
|
||||
install(TARGETS lms DESTINATION bin)
|
||||
|
||||
Reference in New Issue
Block a user