lv2 / lilv

LV2 host library
ISC License
37 stars 20 forks source link

Build fails under macOS 12 when tests are enabled #63

Closed falkTX closed 8 months ago

falkTX commented 8 months ago

Trying to build using github actions and its macos-12 is failing. Using build options

--buildtype release -Ddefault_library=static -Dbindings_py=disabled -Ddocs=disabled

configuration output:

The Meson build system
Version: 1.3.2
Source dir: /Users/runner/PawPawBuilds/builds/macos-10.15/lilv-0.24.24
Build dir: /Users/runner/PawPawBuilds/builds/macos-10.15/lilv-0.24.24/build
Build type: native build
Project name: lilv
Project version: 0.24.24
C compiler for the host machine: gcc (clang 14.0.0 "Apple clang version 14.0.0 (clang-1400.0.29.202)")
C linker for the host machine: gcc ld64 820.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
C++ compiler for the host machine: g++ (clang 14.0.0 "Apple clang version 14.0.0 (clang-1400.0.29.202)")
C++ linker for the host machine: g++ ld64 820.1
Library m found: YES
Library dl found: YES
Found pkg-config: YES (/Users/runner/PawPawBuilds/targets/macos-10.15/bin/pkg-config) 0.28
Run-time dependency zix-0 found: YES 0.4.2
Run-time dependency serd-0 found: YES 0.32.2
Run-time dependency sord-0 found: YES 0.16.16
Run-time dependency lv2 found: YES 1.18.10
Run-time dependency sratom-0 found: YES 0.6.16
Run-time dependency sndfile found: YES 1.2.2
Library rt found: NO
Checking if "clock_gettime" with dependency -lrt compiles: YES 
Configuring manifest.ttl using configuration
Configuring bad_syntax.ttl using configuration
Configuring manifest.ttl using configuration
Configuring failed_instantiation.ttl using configuration
Configuring manifest.ttl using configuration
Configuring failed_lib_descriptor.ttl using configuration
Configuring manifest.ttl using configuration
Configuring lib_descriptor.ttl using configuration
Configuring manifest.ttl using configuration
Configuring missing_descriptor.ttl using configuration
Configuring manifest.ttl using configuration
Configuring missing_name.ttl using configuration
Configuring manifest.ttl using configuration
Configuring missing_plugin.ttl using configuration
Configuring manifest.ttl using configuration
Configuring missing_port.ttl using configuration
Configuring manifest.ttl using configuration
Configuring missing_port_name.ttl using configuration
Configuring manifest.ttl using configuration
Configuring new_version.ttl using configuration
Configuring manifest.ttl using configuration
Configuring old_version.ttl using configuration
Configuring manifest.ttl using configuration
Configuring test_plugin.ttl using configuration
Build targets in project: 49
NOTICE: Future-deprecated features used:
 * 0.64.0: {'copy arg in configure_file'}

lilv 0.24.24

  Components
    Tests           : YES
    Tools           : YES

  Configuration
    Default LV2_PATH: ~/.lv2:~/Library/Audio/Plug-Ins/LV2:/usr/local/lib/lv2:/usr/lib/lv2:/Library/Audio/Plug-Ins/LV2

  Directories
    Install prefix  : /Users/runner/PawPawBuilds/targets/macos-10.15
    Headers         : /Users/runner/PawPawBuilds/targets/macos-10.15/include
    Libraries       : /Users/runner/PawPawBuilds/targets/macos-10.15/lib
    Executables     : /Users/runner/PawPawBuilds/targets/macos-10.15/bin
    Man pages       : /Users/runner/PawPawBuilds/targets/macos-10.15/share/man

  User defined options
    buildtype       : release
    default_library : static
    libdir          : lib
    prefix          : /Users/runner/PawPawBuilds/targets/macos-10.15
    bindings_py     : disabled
    docs            : disabled

Found ninja-1.11.1 at /usr/local/bin/ninja

error output:

FAILED: test/cpp/test_lilv_hpp.p/test_lilv_hpp.cpp.o 
g++ -Itest/cpp/test_lilv_hpp.p -Itest/cpp -I../test/cpp -I../src -I../include -I/Users/runner/PawPawBuilds/targets/macos-10.15/include -I/Users/runner/PawPawBuilds/targets/macos-10.15/include/serd-0 -I/Users/runner/PawPawBuilds/targets/macos-10.15/include/sord-0 -I/Users/runner/PawPawBuilds/targets/macos-10.15/include/zix-0 -I/Users/runner/PawPawBuilds/targets/macos-10.15/include/sratom-0 -fdiagnostics-color=always -DNDEBUG -Wall -Winvalid-pch -O3 -pipe -fPIC -DPIC -fdata-sections -ffunction-sections -fno-common -fvisibility=hidden -fno-stack-protector -U_FORTIFY_SOURCE -Wp,-U_FORTIFY_SOURCE -ffast-math -fno-finite-math-only -Os -DNDEBUG=1 -fomit-frame-pointer -mtune=generic -msse -msse2 -mfpmath=sse -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_15 -DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_15 -mmacosx-version-min=10.15 -arch x86_64 -Werror=objc-method-access -DHAVE_MIXED_SIZE_ADDRESSING -fvisibility-inlines-hidden -DSRATOM_STATIC -DSORD_STATIC -DZIX_STATIC -DSERD_STATIC -DLILV_STATIC -Wno-c++98-compat -Wno-cast-align -Wno-cast-qual -Wno-documentation-unknown-command -Wno-padded -Wno-poison-system-directories -Wno-reserved-id-macro -MD -MQ test/cpp/test_lilv_hpp.p/test_lilv_hpp.cpp.o -MF test/cpp/test_lilv_hpp.p/test_lilv_hpp.cpp.o.d -o test/cpp/test_lilv_hpp.p/test_lilv_hpp.cpp.o -c ../test/cpp/test_lilv_hpp.cpp
In file included from ../test/cpp/test_lilv_hpp.cpp:4:
../include/lilv/lilvmm.hpp:120:19: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  inline Node(Node&& other) noexcept
                  ^
../include/lilv/lilvmm.hpp:120:28: error: expected ';' at end of declaration list
  inline Node(Node&& other) noexcept
                           ^
                           ;
../include/lilv/lilvmm.hpp:104:7: error: member initializer 'me' does not name a non-static data member or base class
    : me(lilv_node_duplicate(node))
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/lilv/lilvmm.hpp:108:35: error: no member named 'me' in 'Lilv::Node'
    : me(lilv_node_duplicate(copy.me))
                             ~~~~ ^
../include/lilv/lilvmm.hpp:108:7: error: member initializer 'me' does not name a non-static data member or base class
    : me(lilv_node_duplicate(copy.me))
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/lilv/lilvmm.hpp:114:22: error: use of undeclared identifier 'me'
      lilv_node_free(me);
                     ^
../include/lilv/lilvmm.hpp:115:7: error: use of undeclared identifier 'me'
      me = lilv_node_duplicate(rhs.me);
      ^
../include/lilv/lilvmm.hpp:115:36: error: no member named 'me' in 'Lilv::Node'
      me = lilv_node_duplicate(rhs.me);
                               ~~~ ^
../include/lilv/lilvmm.hpp:215:3: error: no matching function for call to 'lilv_nodes_contains'
  LILV_WRAP1(bool, nodes, contains, const Node&, node)
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/lilv/lilvmm.hpp:65:12: note: expanded from macro 'LILV_WRAP1'
    return lilv_##prefix##_##name(me, a1);   \
           ^~~~~~~~~~~~~~~~~~~~~~
<scratch space>:491:1: note: expanded from here
lilv_nodes_contains
^~~~~~~~~~~~~~~~~~~
../include/lilv/lilv.h:521:1: note: candidate function not viable: no known conversion from 'const Lilv::Node' to 'const LilvNode *' (aka 'const LilvNodeImpl *') for 2nd argument
lilv_nodes_contains(const LilvNodes* nodes, const LilvNode* value);
^
In file included from ../test/cpp/test_lilv_hpp.cpp:4:
../include/lilv/lilvmm.hpp:293:3: error: no matching function for call to 'lilv_plugin_get_value'
  LILV_WRAP1(Nodes, plugin, get_value, const Node&, pred)
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/lilv/lilvmm.hpp:65:12: note: expanded from macro 'LILV_WRAP1'
    return lilv_##prefix##_##name(me, a1);   \
           ^~~~~~~~~~~~~~~~~~~~~~
<scratch space>:52:1: note: expanded from here
lilv_plugin_get_value
^~~~~~~~~~~~~~~~~~~~~
../include/lilv/lilv.h:944:1: note: candidate function not viable: no known conversion from 'const Lilv::Node' to 'const LilvNode *' (aka 'const LilvNodeImpl *') for 2nd argument
lilv_plugin_get_value(const LilvPlugin* plugin, const LilvNode* predicate);
^
In file included from ../test/cpp/test_lilv_hpp.cpp:4:
../include/lilv/lilvmm.hpp:294:3: error: no matching function for call to 'lilv_plugin_has_feature'
  LILV_WRAP1(bool, plugin, has_feature, const Node&, feature_uri)
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/lilv/lilvmm.hpp:65:12: note: expanded from macro 'LILV_WRAP1'
    return lilv_##prefix##_##name(me, a1);   \
           ^~~~~~~~~~~~~~~~~~~~~~
<scratch space>:55:1: note: expanded from here
lilv_plugin_has_feature
^~~~~~~~~~~~~~~~~~~~~~~
../include/lilv/lilv.h:954:1: note: candidate function not viable: no known conversion from 'const Lilv::Node' to 'const LilvNode *' (aka 'const LilvNodeImpl *') for 2nd argument
lilv_plugin_has_feature(const LilvPlugin* plugin, const LilvNode* feature);
^
In file included from ../test/cpp/test_lilv_hpp.cpp:4:
../include/lilv/lilvmm.hpp:307:3: error: no matching function for call to 'lilv_plugin_get_related'
  LILV_WRAP1(Nodes, plugin, get_related, const Node&, type)
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../include/lilv/lilvmm.hpp:65:12: note: expanded from macro 'LILV_WRAP1'
    return lilv_##prefix##_##name(me, a1);   \
           ^~~~~~~~~~~~~~~~~~~~~~
<scratch space>:94:1: note: expanded from here
lilv_plugin_get_related
^~~~~~~~~~~~~~~~~~~~~~~
../include/lilv/lilv.h:1221:1: note: candidate function not viable: no known conversion from 'const Lilv::Node' to 'const LilvNode *' (aka 'const LilvNodeImpl *') for 2nd argument
lilv_plugin_get_related(const LilvPlugin* plugin, const LilvNode* type);
^
In file included from ../test/cpp/test_lilv_hpp.cpp:4:
../include/lilv/lilvmm.hpp:354:55: error: use of undeclared identifier 'nullptr'
    : me(lilv_plugin_instantiate(plugin, sample_rate, nullptr))
                                                      ^
../include/lilv/lilvmm.hpp:370:36: error: use of undeclared identifier 'nullptr'
    return me ? new Instance(me) : nullptr;
                                   ^
../include/lilv/lilvmm.hpp:408:36: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
  World(const World&)            = delete;
                                   ^
../include/lilv/lilvmm.hpp:409:36: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
  World& operator=(const World&) = delete;
                                   ^
../include/lilv/lilvmm.hpp:411:14: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  World(World&&)            = delete;
             ^
../include/lilv/lilvmm.hpp:411:31: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
  World(World&&)            = delete;
                              ^
../include/lilv/lilvmm.hpp:412:25: warning: rvalue references are a C++11 extension [-Wc++11-extensions]
  World& operator=(World&&) = delete;
                        ^
../include/lilv/lilvmm.hpp:412:31: warning: deleted function definitions are a C++11 extension [-Wc++11-extensions]
  World& operator=(World&&) = delete;
                              ^
../test/cpp/test_lilv_hpp.cpp:9:26: error: expected ';' at end of declaration
  const Lilv::World world{};
                         ^
                         ;
7 warnings and 14 errors generated.

with the full logs available at https://github.com/DISTRHO/PawPaw/actions/runs/8203426480/job/22436150152

seems to me there is a -std=c++11 or similar missing

drobilla commented 8 months ago

Curse these old bindings...

drobilla commented 8 months ago

seems to me there is a -std=c++11 or similar missing

Yeah, this is a silly default, but I imagine you can just jam that in CXXFLAGS (or set the cpp_flags option) as a workaround for now.

drobilla commented 8 months ago

Hm, reproducible. Not sure how this one wasn't caught...

Fixed in cc394e5, thanks.