diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0d79707..4c2d618 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,19 +16,19 @@ jobs: build: strategy: matrix: - os: [ubuntu-20.04] - ruby: [2.7, 3.2] + os: [ubuntu-22.04] + ruby: [3.0, 3.3] runs-on: ${{ matrix.os }} env: MAKEFLAGS: -j2 PLATFORM: x86_64-linux - TAGLIB_VERSION: 1.11.1 + TAGLIB_VERSION: "2.0" SWIG_DIR: .swig-v4.1.1 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: ruby/setup-ruby@v1 with: @@ -36,7 +36,7 @@ jobs: - name: Cache SWIG v4.1.1 id: cache-swig - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: ~/${{ env.SWIG_DIR }} key: swig-${{ matrix.os }}-v4.1.1 @@ -58,13 +58,15 @@ jobs: - name: Cache TagLib (C++) id: cache-taglib - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: tmp/${{ env.PLATFORM }}/taglib-${{ env.TAGLIB_VERSION }} key: taglib-${{ matrix.os }}-v${{ env.TAGLIB_VERSION }} - name: Install TagLib (C++) - run: bundle exec rake vendor + run: | + sudo apt install libutfcpp-dev + bundle exec rake vendor - name: Generate SWIG Wrappers run: | diff --git a/README.md b/README.md index 0d31d2b..0d2aedf 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Ruby interface for the [TagLib C++ library][taglib], for reading and writing meta-data (tags) of many audio formats. -In contrast to other libraries, this one wraps the full C++ API, not +In contrast to other libraries, this one wraps the C++ API, not only the minimal C API. This means that all tag data can be accessed, e.g. cover art of ID3v2 or custom fields of Ogg Vorbis comments. @@ -15,17 +15,21 @@ e.g. cover art of ID3v2 or custom fields of Ogg Vorbis comments. * Reading/writing MP4 tags (.m4a) * Reading audio properties (e.g. bitrate) of the above formats -Contributions for more coverage of the library are very welcome. +Requirements: +* Ruby >= 3.0 +* TagLib >= 2.0 + +Contributions, e.g. for more coverage of the library are very welcome. [![Gem version][gem-img]][gem-link] [![ci](https://github.com/robinst/taglib-ruby/workflows/ci/badge.svg)](https://github.com/robinst/taglib-ruby/actions?query=workflow%3Aci) ## Installation -Before you install the gem, make sure to have [taglib 1.11.1 or higher][taglib] +Before you install the gem, make sure to have [taglib 2.0 or higher][taglib] installed with header files (and a C++ compiler of course): -* Debian/Ubuntu: `sudo apt-get install libtag1-dev` +* Debian/Ubuntu: `sudo apt-get install libtag-dev` * Fedora/RHEL: `sudo dnf install taglib-devel` * Brew: `brew install taglib` * MacPorts: `sudo port install taglib` diff --git a/ext/taglib_base/includes.i b/ext/taglib_base/includes.i index f416b94..097545a 100644 --- a/ext/taglib_base/includes.i +++ b/ext/taglib_base/includes.i @@ -4,6 +4,7 @@ #define TAGLIB_EXPORT #define TAGLIB_IGNORE_MISSING_DESTRUCTOR #define TAGLIB_DEPRECATED +#define TAGLIB_MSVC_SUPPRESS_WARNING_NEEDS_TO_HAVE_DLL_INTERFACE // Replaces the typemap from swigtype.swg and just adds the line // SWIG_RubyUnlinkObjects. This is done to be safe in the case when a