diff options
| author | Slávek Banko <slavek.banko@axis.cz> | 2025-01-25 01:26:22 +0100 |
|---|---|---|
| committer | Slávek Banko <slavek.banko@axis.cz> | 2025-01-25 22:51:01 +0100 |
| commit | 6f57e70bd5648e0d6d95137254f8fe2d749b188b (patch) | |
| tree | be5722c23267c29c51b685cf6bb8bb6de01ad034 | |
| parent | 1b7e6ee0522bf1b922d5ca689742d40cbb65b0c5 (diff) | |
| download | amarok-6f57e70b.tar.gz amarok-6f57e70b.zip | |
Fix the problem of linking taglib2 on 32 bit architectures
if taglib is not built with large files support.
This resolves the last part from issue #60.
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
(cherry picked from commit 122c229a7d64afe9a39b310cc73a747dc01d8ca1)
| -rw-r--r-- | ConfigureChecks.cmake | 23 | ||||
| -rw-r--r-- | amarok/src/metadata/rmff/rmff.cpp | 9 | ||||
| -rw-r--r-- | config.h.cmake | 1 |
3 files changed, 33 insertions, 0 deletions
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake index ac31667c..a1ac674c 100644 --- a/ConfigureChecks.cmake +++ b/ConfigureChecks.cmake @@ -109,6 +109,29 @@ else( ) tde_message_fatal( "taglib is required, but not found on your system" ) endif( ) +tde_save_and_set( CMAKE_REQUIRED_DEFINITIONS "${LARGEFILES_DEFINITIONS}" ) +tde_save_and_set( CMAKE_REQUIRED_INCLUDES "${TAGLIB_INCLUDE_DIRS}" ) +tde_save_and_set( CMAKE_REQUIRED_LIBRARIES "${TAGLIB_LIBRARIES}" ) + +check_cxx_source_compiles( " + #include <taglib.h> + #include <id3v1tag.h> + + int main( int, char** ) + { + off_t tagOffset = 0; + TagLib::File *testFile = nullptr; + TagLib::ID3v1::Tag *id3tag = new TagLib::ID3v1::Tag(testFile, tagOffset); + return 0; + } + " + TAGLIB_LARGE_FILES_SUPPORT +) + +tde_restore( CMAKE_REQUIRED_DEFINITIONS ) +tde_restore( CMAKE_REQUIRED_INCLUDES ) +tde_restore( CMAKE_REQUIRED_LIBRARIES ) + # libvisual if( WITH_LIBVISUAL ) diff --git a/amarok/src/metadata/rmff/rmff.cpp b/amarok/src/metadata/rmff/rmff.cpp index 943e24dd..24181230 100644 --- a/amarok/src/metadata/rmff/rmff.cpp +++ b/amarok/src/metadata/rmff/rmff.cpp @@ -26,6 +26,15 @@ * https://common.helixcommunity.org/nonav/2003/HCS_SDK_r5/helixsdk.htm * * * ***************************************************************************/ + +#include "config.h" + +#if !defined(TAGLIB_LARGE_FILES_SUPPORT) + #undef _LARGE_FILES + #undef _LARGEFILE_SOURCE + #undef _FILE_OFFSET_BITS +#endif + #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> diff --git a/config.h.cmake b/config.h.cmake index e8331320..26f9d263 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -26,6 +26,7 @@ #cmakedefine HAVE_TUNEPIMP 1 #cmakedefine TAGLIB_15 1 +#cmakedefine TAGLIB_LARGE_FILES_SUPPORT 1 #cmakedefine HAVE_TQGLWIDGET 1 #cmakedefine HAVE_OLD_RUBY @HAVE_OLD_RUBY@ |
