Merge branch 'develop' for release v3.21.1
This commit is contained in:
+50
-10
@@ -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
@@ -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)
|
||||||
|
|||||||
+3
-3
@@ -47,7 +47,7 @@ RUN \
|
|||||||
curl -sLO https://github.com/nothings/stb/archive/${STB_VERSION}.tar.gz && \
|
curl -sLO https://github.com/nothings/stb/archive/${STB_VERSION}.tar.gz && \
|
||||||
tar -x --strip-components=1 -f ${STB_VERSION}.tar.gz && \
|
tar -x --strip-components=1 -f ${STB_VERSION}.tar.gz && \
|
||||||
mkdir -p ${PREFIX}/include/stb && \
|
mkdir -p ${PREFIX}/include/stb && \
|
||||||
cp *.h ${PREFIX}/include/stb
|
cp ./*.h ${PREFIX}/include/stb
|
||||||
|
|
||||||
# ffmpeg
|
# ffmpeg
|
||||||
RUN \
|
RUN \
|
||||||
@@ -98,7 +98,7 @@ RUN \
|
|||||||
|
|
||||||
RUN \
|
RUN \
|
||||||
DIR=/tmp/wt && mkdir -p ${DIR} && cd ${DIR} && \
|
DIR=/tmp/wt && mkdir -p ${DIR} && cd ${DIR} && \
|
||||||
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PREFIX} -DBUILD_EXAMPLES=NO && \
|
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PREFIX} -DBUILD_EXAMPLES=NO -DENABLE_LIBWTTEST=OFF && \
|
||||||
make && \
|
make && \
|
||||||
make install
|
make install
|
||||||
|
|
||||||
@@ -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 && \
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -265,7 +265,6 @@ Engine::loadClassifier(std::unique_ptr<IClassifier> classifier,
|
|||||||
}
|
}
|
||||||
|
|
||||||
_pendingClassifiersCondvar.notify_one();
|
_pendingClassifiersCondvar.notify_one();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user