Added some travis ci target + corrected some warnings

This commit is contained in:
emeric
2020-10-31 22:33:01 +01:00
parent 45b6f67896
commit 8520ca5c0f
17 changed files with 108 additions and 51 deletions
+50 -10
View File
@@ -1,15 +1,55 @@
arch:
- amd64
- arm64
language: cpp language: cpp
sudo: required os: linux
dist: focal 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: 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 if [ ! -d ${HOME}/wt-${WT_VERSION}/include ]; then
- git clone https://github.com/emweb/wt.git wt git clone https://github.com/emweb/wt.git wt
- pushd wt; cd wt
- git checkout 4.4.0 git checkout ${WT_VERSION}
- cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr && sudo make install cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${WT_INSTALL_PREFIX} -DENABLE_LIBWTTEST=OFF
- popd make install
script: cmake -DCMAKE_BUILD_TYPE=Release . && make && make test 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: env:
global: global:
- MAKEFLAGS="-j 2" - 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
View File
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.12)
project(lms) 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 17)
set(CMAKE_CXX_STANDARD_REQUIRED True) set(CMAKE_CXX_STANDARD_REQUIRED True)
@@ -14,27 +14,57 @@ find_package(FFMPEGAV REQUIRED)
find_package(Taglib REQUIRED) find_package(Taglib REQUIRED)
find_package(Boost REQUIRED COMPONENTS system program_options) find_package(Boost REQUIRED COMPONENTS system program_options)
find_package(PStreams REQUIRED) find_package(PStreams REQUIRED)
find_package(Wt REQUIRED COMPONENTS Wt Dbo DboSqlite3 HTTP)
find_package(PAM) find_package(PAM)
find_package(STB) find_package(STB)
pkg_check_modules(GRAPHICSMAGICKXX GraphicsMagick++) 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) if (STB_FOUND)
set(IMAGE_LIBRARY STB CACHE STRING "STB library") set(IMAGE_LIBRARY STB CACHE STRING "STB library")
elseif (GRAPHICSMAGICKXX_FOUND) elseif (GRAPHICSMAGICKXX_FOUND)
set(IMAGE_LIBRARY GraphicksMagick++ CACHE STRING "GraphicsMagick++") set(IMAGE_LIBRARY GraphicsMagick++ CACHE STRING "GraphicsMagick++")
else () else ()
message(FATAL_ERROR "Cannot find suitable image library") message(FATAL_ERROR "Cannot find suitable image library")
endif() endif()
set_property(CACHE IMAGE_LIBRARY PROPERTY STRINGS GraphicksMagick++ STB) set_property(CACHE IMAGE_LIBRARY PROPERTY STRINGS GraphicsMagick++ STB)
if (IMAGE_LIBRARY STREQUAL GraphicsMagick++ AND NOT GRAPHICSMAGICKXX_FOUND)
if (IMAGE_LIBRARY STREQUAL GraphicksMagick++ AND NOT GRAPHICSMAGICKXX_FOUND) message(FATAL_ERROR "GraphicsMagick++ not found")
message(FATAL_ERROR "GraphicksMagick++ not found")
elseif (IMAGE_LIBRARY STREQUAL STB AND NOT STB_FOUND) elseif (IMAGE_LIBRARY STREQUAL STB AND NOT STB_FOUND)
message(FATAL_ERROR "STB not found") message(FATAL_ERROR "STB not found")
endif () endif ()
message(STATUS "IMAGE_LIBRARY set to ${IMAGE_LIBRARY}") message(STATUS "IMAGE_LIBRARY set to ${IMAGE_LIBRARY}")
add_subdirectory(src) add_subdirectory(src)
install(DIRECTORY approot DESTINATION share/lms) install(DIRECTORY approot DESTINATION share/lms)
+1 -1
View File
@@ -117,7 +117,7 @@ RUN \
RUN \ RUN \
DIR=/tmp/lms && mkdir -p ${DIR} && cd ${DIR} && \ 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 && \ make && \
LD_LIBRARY_PATH=${PREFIX}/lib make test && \ LD_LIBRARY_PATH=${PREFIX}/lib make test && \
make install && \ make install && \
+4 -4
View File
@@ -10,7 +10,7 @@ target_include_directories(lmsauth INTERFACE
) )
target_include_directories(lmsauth PRIVATE target_include_directories(lmsauth PRIVATE
include/ include
) )
target_link_libraries(lmsauth PRIVATE target_link_libraries(lmsauth PRIVATE
@@ -21,15 +21,15 @@ target_link_libraries(lmsauth PRIVATE
target_link_libraries(lmsauth PUBLIC target_link_libraries(lmsauth PUBLIC
pthread pthread
Boost::system Boost::system
wt Wt::Wt
) )
if (PAM_FOUND) if (USE_PAM)
target_compile_options(lmsauth PRIVATE "-DLMS_SUPPORT_PAM") target_compile_options(lmsauth PRIVATE "-DLMS_SUPPORT_PAM")
target_sources(lmsauth PRIVATE impl/pam/PAM.cpp) target_sources(lmsauth PRIVATE impl/pam/PAM.cpp)
target_include_directories(lmsauth PRIVATE ${PAM_INCLUDE_DIR}) target_include_directories(lmsauth PRIVATE ${PAM_INCLUDE_DIR})
target_link_libraries(lmsauth PRIVATE ${PAM_LIBRARIES}) target_link_libraries(lmsauth PRIVATE ${PAM_LIBRARIES})
endif (PAM_FOUND) endif (USE_PAM)
install(TARGETS lmsauth DESTINATION lib) install(TARGETS lmsauth DESTINATION lib)
-3
View File
@@ -37,9 +37,6 @@ namespace Auth {
AuthTokenService(std::size_t maxThrottlerEntries); AuthTokenService(std::size_t maxThrottlerEntries);
AuthTokenService() = default;
~AuthTokenService() = default;
AuthTokenService(const AuthTokenService&) = delete; AuthTokenService(const AuthTokenService&) = delete;
AuthTokenService& operator=(const AuthTokenService&) = delete; AuthTokenService& operator=(const AuthTokenService&) = delete;
AuthTokenService(AuthTokenService&&) = delete; AuthTokenService(AuthTokenService&&) = delete;
+1 -4
View File
@@ -38,9 +38,6 @@ namespace Auth {
PasswordService(std::size_t maxThrottlerEntries); PasswordService(std::size_t maxThrottlerEntries);
PasswordService() = default;
~PasswordService() = default;
PasswordService(const PasswordService&) = delete; PasswordService(const PasswordService&) = delete;
PasswordService& operator=(const PasswordService&) = delete; PasswordService& operator=(const PasswordService&) = delete;
PasswordService(PasswordService&&) = delete; PasswordService(PasswordService&&) = delete;
@@ -48,7 +45,7 @@ namespace Auth {
private: 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; 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; Database::User::PasswordHash hashPassword(const std::string& password) const override;
bool evaluatePasswordStrength(const std::string& loginName, const std::string& password) const override; bool evaluatePasswordStrength(const std::string& loginName, const std::string& password) const override;
+1 -4
View File
@@ -11,7 +11,7 @@ target_include_directories(lmsav INTERFACE
) )
target_include_directories(lmsav PRIVATE target_include_directories(lmsav PRIVATE
include/ include
${AVCODEC_INCLUDE_DIR} ${AVCODEC_INCLUDE_DIR}
${AVFORMAT_INCLUDE_DIR} ${AVFORMAT_INCLUDE_DIR}
${AVUTIL_INCLUDE_DIR} ${AVUTIL_INCLUDE_DIR}
@@ -19,10 +19,7 @@ target_include_directories(lmsav PRIVATE
target_link_libraries(lmsav PUBLIC target_link_libraries(lmsav PUBLIC
lmsutils lmsutils
avformat
avutil
std::filesystem std::filesystem
wt
) )
target_link_libraries(lmsav PRIVATE target_link_libraries(lmsav PRIVATE
+1 -1
View File
@@ -28,7 +28,7 @@ if (IMAGE_LIBRARY STREQUAL STB)
) )
target_compile_options(lmscover PRIVATE "-DLMS_SUPPORT_IMAGE_STB") target_compile_options(lmscover PRIVATE "-DLMS_SUPPORT_IMAGE_STB")
target_include_directories(lmscover PRIVATE ${STB_INCLUDE_DIR}) target_include_directories(lmscover PRIVATE ${STB_INCLUDE_DIR})
elseif (IMAGE_LIBRARY STREQUAL GraphicksMagick++) elseif (IMAGE_LIBRARY STREQUAL GraphicsMagick++)
target_sources(lmscover PRIVATE target_sources(lmscover PRIVATE
impl/graphicsmagick/JPEGImage.cpp impl/graphicsmagick/JPEGImage.cpp
impl/graphicsmagick/RawImage.cpp impl/graphicsmagick/RawImage.cpp
+2 -2
View File
@@ -24,13 +24,13 @@ target_include_directories(lmsdatabase PRIVATE
) )
target_link_libraries(lmsdatabase PRIVATE target_link_libraries(lmsdatabase PRIVATE
wtdbosqlite3 Wt::DboSqlite3
) )
target_link_libraries(lmsdatabase PUBLIC target_link_libraries(lmsdatabase PUBLIC
lmsutils lmsutils
std::filesystem std::filesystem
wtdbo Wt::Dbo
) )
install(TARGETS lmsdatabase DESTINATION lib) install(TARGETS lmsdatabase DESTINATION lib)
+1 -1
View File
@@ -145,7 +145,7 @@ FromClause::FromClause(const std::string& clause)
FromClause& FromClause&
FromClause::And(const FromClause& clause) FromClause::And(const FromClause& clause)
{ {
for (const std::string fromClause : clause._clause) for (const std::string& fromClause : clause._clause)
{ {
_clause.push_back(fromClause); _clause.push_back(fromClause);
} }
+1 -1
View File
@@ -54,7 +54,7 @@ findFirstValueOfAs(const MetadataMap& metadataMap, std::initializer_list<std::st
std::vector<std::string> strUuids = StringUtils::splitString(*str, "/"); std::vector<std::string> strUuids = StringUtils::splitString(*str, "/");
std::vector<UUID> res; std::vector<UUID> res;
for (const std::string strUuid : strUuids) for (const std::string& strUuid : strUuids)
{ {
std::optional<UUID> uuid {UUID::fromString(strUuid)}; std::optional<UUID> uuid {UUID::fromString(strUuid)};
if (!uuid) if (!uuid)
+1 -3
View File
@@ -12,6 +12,7 @@ target_include_directories(lmsrecommendation INTERFACE
) )
target_include_directories(lmsrecommendation PRIVATE target_include_directories(lmsrecommendation PRIVATE
impl
include include
) )
@@ -19,10 +20,7 @@ target_link_libraries(lmsrecommendation PRIVATE
lmsdatabase lmsdatabase
lmssom lmssom
std::filesystem std::filesystem
wt
) )
target_include_directories(lmsrecommendation PRIVATE impl)
install(TARGETS lmsrecommendation DESTINATION lib) install(TARGETS lmsrecommendation DESTINATION lib)
+1 -1
View File
@@ -22,7 +22,7 @@ target_link_libraries(lmsscanner PRIVATE
target_link_libraries(lmsscanner PUBLIC target_link_libraries(lmsscanner PUBLIC
std::filesystem std::filesystem
wt Wt::Wt
) )
install(TARGETS lmsscanner DESTINATION lib) install(TARGETS lmsscanner DESTINATION lib)
+3 -3
View File
@@ -20,15 +20,15 @@ target_link_libraries(lmssubsonic PRIVATE
lmsauth lmsauth
lmsav lmsav
lmscover lmscover
lmsdatabase
lmsrecommendation lmsrecommendation
lmsscanner
lmsutils lmsutils
std::filesystem std::filesystem
) )
target_link_libraries(lmssubsonic PUBLIC target_link_libraries(lmssubsonic PUBLIC
lmsdatabase Wt::Wt
lmsscanner
wt
) )
install(TARGETS lmssubsonic DESTINATION lib) install(TARGETS lmssubsonic DESTINATION lib)
+1 -1
View File
@@ -28,7 +28,7 @@ target_link_libraries(lmsutils PRIVATE
target_link_libraries(lmsutils PUBLIC target_link_libraries(lmsutils PUBLIC
Boost::system Boost::system
std::filesystem std::filesystem
wt Wt::Wt
) )
install(TARGETS lmsutils DESTINATION lib) install(TARGETS lmsutils DESTINATION lib)
+1 -3
View File
@@ -35,9 +35,8 @@ namespace Zip
class ZipHeader class ZipHeader
{ {
public: public:
constexpr ZipHeader(std::byte* buffer, SizeType bufferSize) constexpr ZipHeader(std::byte* buffer, SizeType)
: _buffer {buffer} : _buffer {buffer}
, _bufferSize {bufferSize}
{} {}
enum GeneralPurposeFlag : std::uint16_t enum GeneralPurposeFlag : std::uint16_t
@@ -71,7 +70,6 @@ namespace Zip
private: private:
std::byte* _buffer {}; std::byte* _buffer {};
const SizeType _bufferSize {};
}; };
void void
+2 -2
View File
@@ -49,8 +49,8 @@ target_link_libraries(lms PRIVATE
lmsscanner lmsscanner
lmssubsonic lmssubsonic
lmsutils lmsutils
wt Wt::Wt
wthttp Wt::HTTP
) )
install(TARGETS lms DESTINATION bin) install(TARGETS lms DESTINATION bin)