Menu

#23 Build broken by lv2 1.18.0

Other
open
nobody
None
1
2020-06-09
2020-06-05
magnetophon
No

LV2 1.18.0 has a breaking change.
For most plugins, the build can be fixed with:
find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \ -exec sed -i {} -e 's/const struct _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;

When I try that with eq10q, I get:
545 | typedef struct _GTimeVal GTimeVal GLIB_DEPRECATED_TYPE_IN_2_62_FOR(GDateTime); | ^~~~~~~~ make[2]: *** [gui/CMakeFiles/dynamics_gui.dir/build.make:83: gui/CMakeFiles/dynamics_gui.dir/dyn_ui.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:734: gui/CMakeFiles/dynamics_gui.dir/all] Error 2 /tmp/nix-build-eq10q-2.2.drv-0/eq10q-2.2/gui/eq10q_ui.cpp:41:48: error: '_LV2UI_Descriptor' does not name a type; did you mean 'LV2UI_Descriptor'? 41 | static LV2UI_Handle instantiateEq10q_gui(const _LV2UI_Descriptor *descriptor, const char *plugin_uri, const char *bundle_path, LV2UI_Write_Function write_function, LV2UI_Controller controller, LV2UI_Widget *widget, const LV2_Feature *const *features) | ^~~~~~~~~~~~~~~~~ | LV2UI_Descriptor /tmp/nix-build-eq10q-2.2.drv-0/eq10q-2.2/gui/eq10q_ui.cpp:152:3: error: invalid conversion from 'void* (*)(const int*, const char*, const char*, LV2UI_Write_Function, LV2UI_Controller, void**, const LV2_Feature* const*)' {aka 'void* (*)(const int*, const char*, const char*, void (*)(void*, unsigned int, unsigned int, unsigned int, const void*), void*, void**, const LV2_Feature* const*)'} to 'void* (*)(const LV2UI_Descriptor*, const char*, const char*, LV2UI_Write_Function, LV2UI_Controller, void**, const LV2_Feature* const*)' {aka 'void* (*)(const LV2UI_Descriptor*, const char*, const char*, void (*)(void*, unsigned int, unsigned int, unsigned int, const void*), void*, void**, const LV2_Feature* const*)'} [-fpermissive] 152 | instantiateEq10q_gui, | ^~~~~~~~~~~~~~~~~~~~ | | | void* (*)(const int*, const char*, const char*, LV2UI_Write_Function, LV2UI_Controller, void**, const LV2_Feature* const*) {aka void* (*)(const int*, const char*, const char*, void (*)(void*, unsigned int, unsigned int, unsigned int, const void*), void*, void**, const LV2_Feature* const*)} make[2]: *** [gui/CMakeFiles/eq10q_gui.dir/build.make:83: gui/CMakeFiles/eq10q_gui.dir/eq10q_ui.cpp.o] Error 1 make[1]: *** [CMakeFiles/Makefile2:761: gui/CMakeFiles/eq10q_gui.dir/all] Error 2 make: *** [Makefile:172: all] Error 2

Discussion

  • magnetophon

    magnetophon - 2020-06-08

    I found the solution:

         find . -type f -exec fgrep -q LV2UI_Descriptor {} \; \
           -exec sed -i {} -e 's/const _\?LV2UI_Descriptor/const LV2UI_Descriptor/' \;
    
     
  • magnetophon

    magnetophon - 2020-06-09

    Thank you!

     

Log in to post a comment.

MongoDB Logo MongoDB