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
+49 -9
View File
@@ -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
View File
@@ -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
View File
@@ -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 && \
+4 -4
View File
@@ -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)
-3
View File
@@ -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;
+1 -4
View File
@@ -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;
+1 -4
View File
@@ -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
+1 -1
View File
@@ -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
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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);
}
+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<UUID> res;
for (const std::string strUuid : strUuids)
for (const std::string& strUuid : strUuids)
{
std::optional<UUID> uuid {UUID::fromString(strUuid)};
if (!uuid)
+1 -3
View File
@@ -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)
+1 -1
View File
@@ -22,7 +22,7 @@ target_link_libraries(lmsscanner PRIVATE
target_link_libraries(lmsscanner PUBLIC
std::filesystem
wt
Wt::Wt
)
install(TARGETS lmsscanner DESTINATION lib)
+3 -3
View File
@@ -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)
+1 -1
View File
@@ -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)
+1 -3
View File
@@ -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
+2 -2
View File
@@ -49,8 +49,8 @@ target_link_libraries(lms PRIVATE
lmsscanner
lmssubsonic
lmsutils
wt
wthttp
Wt::Wt
Wt::HTTP
)
install(TARGETS lms DESTINATION bin)