From 5b739250192208c3b739dd0a402c2e6648ad9c2d Mon Sep 17 00:00:00 2001 From: emeric Date: Wed, 22 Jan 2025 18:34:08 +0100 Subject: [PATCH] Switched to full static release + enable lto for the docker release image --- CMakeLists.txt | 1 - Dockerfile-release | 16 ++++++---------- src/libs/av/CMakeLists.txt | 4 +--- src/libs/core/CMakeLists.txt | 4 +--- src/libs/database/CMakeLists.txt | 4 +--- src/libs/image/CMakeLists.txt | 5 +---- src/libs/metadata/CMakeLists.txt | 5 +---- src/libs/services/artwork/CMakeLists.txt | 5 +---- src/libs/services/auth/CMakeLists.txt | 5 +---- src/libs/services/feedback/CMakeLists.txt | 4 +--- src/libs/services/recommendation/CMakeLists.txt | 5 +---- src/libs/services/scanner/CMakeLists.txt | 5 +---- src/libs/services/scrobbling/CMakeLists.txt | 4 +--- src/libs/som/CMakeLists.txt | 4 +--- src/libs/subsonic/CMakeLists.txt | 4 +--- src/tools/metadata/CMakeLists.txt | 1 - src/tools/recommendation/CMakeLists.txt | 2 -- 17 files changed, 19 insertions(+), 59 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 53c0e351..6cb75ea9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,7 +50,6 @@ endif() if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug") add_definitions(-DNDEBUG) - set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) endif() add_subdirectory(src) diff --git a/Dockerfile-release b/Dockerfile-release index 099657cc..7a7c0485 100644 --- a/Dockerfile-release +++ b/Dockerfile-release @@ -56,8 +56,8 @@ RUN \ --disable-postproc \ --disable-pixelutils \ --disable-network \ - --enable-shared \ - --disable-static \ + --disable-shared \ + --enable-static \ --enable-gpl \ --enable-small \ --enable-version3 \ @@ -73,6 +73,7 @@ RUN \ --enable-muxer=ogg,matroska,mp3,webm \ --enable-protocol=file,pipe \ --enable-filter=aresample \ + --enable-lto \ --extra-libs=-ldl && \ make -j$(nproc) && \ make install && \ @@ -87,7 +88,7 @@ RUN \ RUN \ DIR=/tmp/wt && mkdir -p ${DIR} && cd ${DIR} && \ - cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PREFIX} -DBUILD_EXAMPLES=OFF -DENABLE_LIBWTTEST=OFF -DCONNECTOR_FCGI=OFF -DUSE_SYSTEM_SQLITE3=ON && \ + cmake -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE -DSHARED_LIBS=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PREFIX} -DBUILD_EXAMPLES=OFF -DENABLE_LIBWTTEST=OFF -DCONNECTOR_FCGI=OFF -DUSE_SYSTEM_SQLITE3=ON && \ make -j$(nproc) && \ make install @@ -109,7 +110,7 @@ RUN \ RUN \ DIR=/tmp/taglib && mkdir -p ${DIR} && cd ${DIR} && \ - CXXFLAGS="-I/usr/include/utf8cpp" cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PREFIX} -DBUILD_SHARED_LIBS=ON -DBUILD_EXAMPLES=OFF -DBUILD_BINDINGS=OFF -DBUILD_TESTING=OFF -DTRACE_IN_RELEASE=OFF -DWITH_ZLIB=ON && \ + CXXFLAGS="-I/usr/include/utf8cpp" cmake -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PREFIX} -DBUILD_SHARED_LIBS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_BINDINGS=OFF -DBUILD_TESTING=OFF -DTRACE_IN_RELEASE=OFF -DWITH_ZLIB=ON && \ make -j$(nproc) && \ make install @@ -117,7 +118,7 @@ RUN \ COPY . /tmp/lms/ RUN \ DIR=/tmp/lms/build && 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 /tmp/lms/ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_PREFIX_PATH=${PREFIX} && \ + PKG_CONFIG_PATH=/tmp/install/lib/pkgconfig CXXFLAGS="-I${PREFIX}/include" LDFLAGS="-L${PREFIX}/lib -Wl,--rpath-link=${PREFIX}/lib" cmake /tmp/lms/ -DCMAKE_BUILD_TYPE=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION=TRUE -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_PREFIX_PATH=${PREFIX} && \ LD_LIBRARY_PATH=${PREFIX}/lib make -j$(nproc) && \ LD_LIBRARY_PATH=${PREFIX}/lib make test && \ make install && \ @@ -132,11 +133,6 @@ RUN \ strip --strip-all $bin && \ cp $bin /tmp/fakeroot/bin/; \ done && \ - for lib in ${PREFIX}/lib/*.so; \ - do \ - strip --strip-all $lib; \ - done && \ - cp -r ${PREFIX}/lib /tmp/fakeroot/lib && \ cp -r ${PREFIX}/share /tmp/fakeroot/share && \ rm -rf /tmp/fakeroot/share/doc && \ rm -rf /tmp/fakeroot/share/man diff --git a/src/libs/av/CMakeLists.txt b/src/libs/av/CMakeLists.txt index be2bd834..5c63d843 100644 --- a/src/libs/av/CMakeLists.txt +++ b/src/libs/av/CMakeLists.txt @@ -1,6 +1,6 @@ pkg_check_modules(LIBAV IMPORTED_TARGET libavcodec libavutil libavformat) -add_library(lmsav SHARED +add_library(lmsav STATIC impl/AudioFile.cpp impl/RawResourceHandlerCreator.cpp impl/Transcoder.cpp @@ -26,5 +26,3 @@ target_link_libraries(lmsav PUBLIC target_link_libraries(lmsav PRIVATE PkgConfig::LIBAV ) - -install(TARGETS lmsav DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/src/libs/core/CMakeLists.txt b/src/libs/core/CMakeLists.txt index f5b6efe9..cb66dd13 100644 --- a/src/libs/core/CMakeLists.txt +++ b/src/libs/core/CMakeLists.txt @@ -1,7 +1,7 @@ pkg_check_modules(Config++ REQUIRED IMPORTED_TARGET libconfig++) pkg_check_modules(Archive REQUIRED IMPORTED_TARGET libarchive) -add_library(lmscore SHARED +add_library(lmscore STATIC impl/http/Client.cpp impl/http/SendQueue.cpp impl/ArchiveZipper.cpp @@ -42,8 +42,6 @@ target_link_libraries(lmscore PUBLIC Wt::Wt ) -install(TARGETS lmscore DESTINATION ${CMAKE_INSTALL_LIBDIR}) - if(BUILD_TESTING) add_subdirectory(test) endif() diff --git a/src/libs/database/CMakeLists.txt b/src/libs/database/CMakeLists.txt index 2fe78ac7..a2aece03 100644 --- a/src/libs/database/CMakeLists.txt +++ b/src/libs/database/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(lmsdatabase SHARED +add_library(lmsdatabase STATIC impl/Artist.cpp impl/AuthToken.cpp impl/Cluster.cpp @@ -54,8 +54,6 @@ target_link_libraries(lmsdatabase PUBLIC Wt::Dbo ) -install(TARGETS lmsdatabase DESTINATION ${CMAKE_INSTALL_LIBDIR}) - if(BUILD_TESTING) add_subdirectory(test) endif() diff --git a/src/libs/image/CMakeLists.txt b/src/libs/image/CMakeLists.txt index 3dcf7bd3..015feaac 100644 --- a/src/libs/image/CMakeLists.txt +++ b/src/libs/image/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(lmsimage SHARED +add_library(lmsimage STATIC impl/EncodedImage.cpp ) @@ -47,6 +47,3 @@ elseif (${LMS_IMAGE_BACKEND} STREQUAL "graphicsmagick") else () message(FATAL_ERROR "Invalid image library") endif () - -install(TARGETS lmsimage DESTINATION ${CMAKE_INSTALL_LIBDIR}) - diff --git a/src/libs/metadata/CMakeLists.txt b/src/libs/metadata/CMakeLists.txt index 67614df0..8fa1167c 100644 --- a/src/libs/metadata/CMakeLists.txt +++ b/src/libs/metadata/CMakeLists.txt @@ -8,7 +8,7 @@ if (BUILD_BENCHMARKS) add_subdirectory(bench) endif() -add_library(lmsmetadata SHARED +add_library(lmsmetadata STATIC impl/AvFormatTagReader.cpp impl/Lyrics.cpp impl/Parser.cpp @@ -34,6 +34,3 @@ target_link_libraries(lmsmetadata PUBLIC lmscore std::filesystem ) - -install(TARGETS lmsmetadata DESTINATION ${CMAKE_INSTALL_LIBDIR}) - diff --git a/src/libs/services/artwork/CMakeLists.txt b/src/libs/services/artwork/CMakeLists.txt index 1d18565a..74c3f91c 100644 --- a/src/libs/services/artwork/CMakeLists.txt +++ b/src/libs/services/artwork/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(lmsartwork SHARED +add_library(lmsartwork STATIC impl/ImageCache.cpp impl/ArtworkService.cpp ) @@ -24,6 +24,3 @@ target_link_libraries(lmsartwork PUBLIC lmscore std::filesystem ) - -install(TARGETS lmsartwork DESTINATION ${CMAKE_INSTALL_LIBDIR}) - diff --git a/src/libs/services/auth/CMakeLists.txt b/src/libs/services/auth/CMakeLists.txt index 45c6557d..3558812d 100644 --- a/src/libs/services/auth/CMakeLists.txt +++ b/src/libs/services/auth/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(lmsauth SHARED +add_library(lmsauth STATIC impl/AuthTokenService.cpp impl/AuthServiceBase.cpp impl/EnvService.cpp @@ -50,6 +50,3 @@ if (USE_PAM) target_include_directories(lmsauth PRIVATE ${PAM_INCLUDE_DIR}) target_link_libraries(lmsauth PRIVATE ${PAM_LIBRARIES}) endif (USE_PAM) - -install(TARGETS lmsauth DESTINATION ${CMAKE_INSTALL_LIBDIR}) - diff --git a/src/libs/services/feedback/CMakeLists.txt b/src/libs/services/feedback/CMakeLists.txt index d5d143cb..ca9c9682 100644 --- a/src/libs/services/feedback/CMakeLists.txt +++ b/src/libs/services/feedback/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(lmsfeedback SHARED +add_library(lmsfeedback STATIC impl/internal/InternalBackend.cpp impl/listenbrainz/FeedbacksParser.cpp impl/listenbrainz/FeedbacksSynchronizer.cpp @@ -25,5 +25,3 @@ target_link_libraries(lmsfeedback PRIVATE target_link_libraries(lmsfeedback PUBLIC lmsdatabase ) - -install(TARGETS lmsfeedback DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/src/libs/services/recommendation/CMakeLists.txt b/src/libs/services/recommendation/CMakeLists.txt index 603a66b0..b31cf280 100644 --- a/src/libs/services/recommendation/CMakeLists.txt +++ b/src/libs/services/recommendation/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(lmsrecommendation SHARED +add_library(lmsrecommendation STATIC impl/clusters/ClustersEngine.cpp impl/features/FeaturesEngineCache.cpp impl/features/FeaturesEngine.cpp @@ -25,6 +25,3 @@ target_link_libraries(lmsrecommendation PRIVATE lmssom std::filesystem ) - -install(TARGETS lmsrecommendation DESTINATION ${CMAKE_INSTALL_LIBDIR}) - diff --git a/src/libs/services/scanner/CMakeLists.txt b/src/libs/services/scanner/CMakeLists.txt index ee13b263..b4072e3a 100644 --- a/src/libs/services/scanner/CMakeLists.txt +++ b/src/libs/services/scanner/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(lmsscanner SHARED +add_library(lmsscanner STATIC impl/scanners/AudioFileScanner.cpp impl/scanners/ImageFileScanner.cpp impl/scanners/LyricsFileScanner.cpp @@ -43,6 +43,3 @@ target_link_libraries(lmsscanner PUBLIC std::filesystem Wt::Wt ) - -install(TARGETS lmsscanner DESTINATION ${CMAKE_INSTALL_LIBDIR}) - diff --git a/src/libs/services/scrobbling/CMakeLists.txt b/src/libs/services/scrobbling/CMakeLists.txt index efcf7147..55b5e825 100644 --- a/src/libs/services/scrobbling/CMakeLists.txt +++ b/src/libs/services/scrobbling/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(lmsscrobbling SHARED +add_library(lmsscrobbling STATIC impl/internal/InternalBackend.cpp impl/listenbrainz/ListenBrainzBackend.cpp impl/listenbrainz/ListenTypes.cpp @@ -26,8 +26,6 @@ target_link_libraries(lmsscrobbling PUBLIC lmsdatabase ) -install(TARGETS lmsscrobbling DESTINATION ${CMAKE_INSTALL_LIBDIR}) - if(BUILD_TESTING) add_subdirectory(test) endif() diff --git a/src/libs/som/CMakeLists.txt b/src/libs/som/CMakeLists.txt index 9000eb6f..79c1ac54 100644 --- a/src/libs/som/CMakeLists.txt +++ b/src/libs/som/CMakeLists.txt @@ -1,4 +1,4 @@ -add_library(lmssom SHARED +add_library(lmssom STATIC impl/DataNormalizer.cpp impl/Network.cpp ) @@ -17,8 +17,6 @@ target_link_libraries(lmssom PUBLIC set_property(TARGET lmssom PROPERTY POSITION_INDEPENDENT_CODE ON) -install(TARGETS lmssom DESTINATION ${CMAKE_INSTALL_LIBDIR}) - if(BUILD_TESTING) add_subdirectory(test) endif() diff --git a/src/libs/subsonic/CMakeLists.txt b/src/libs/subsonic/CMakeLists.txt index 875fce08..3149d14f 100644 --- a/src/libs/subsonic/CMakeLists.txt +++ b/src/libs/subsonic/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(lmssubsonic SHARED +add_library(lmssubsonic STATIC impl/endpoints/AlbumSongLists.cpp impl/endpoints/Bookmarks.cpp impl/endpoints/Browsing.cpp @@ -60,8 +60,6 @@ target_link_libraries(lmssubsonic PUBLIC Wt::Wt ) -install(TARGETS lmssubsonic DESTINATION ${CMAKE_INSTALL_LIBDIR}) - if (BUILD_BENCHMARKS) add_subdirectory(bench) endif() \ No newline at end of file diff --git a/src/tools/metadata/CMakeLists.txt b/src/tools/metadata/CMakeLists.txt index 30decda4..dcdd2394 100644 --- a/src/tools/metadata/CMakeLists.txt +++ b/src/tools/metadata/CMakeLists.txt @@ -10,4 +10,3 @@ target_link_libraries(lms-metadata PRIVATE ) install(TARGETS lms-metadata DESTINATION bin) - diff --git a/src/tools/recommendation/CMakeLists.txt b/src/tools/recommendation/CMakeLists.txt index 12f20ef0..a4923a32 100644 --- a/src/tools/recommendation/CMakeLists.txt +++ b/src/tools/recommendation/CMakeLists.txt @@ -8,5 +8,3 @@ target_link_libraries(lms-recommendation PRIVATE lmsrecommendation Boost::program_options ) - -install(TARGETS lms-recommendation DESTINATION bin)