Libvisual/libvisual

compiling libvisual-plugins on arch-linux

shreyaspotnis opened this issue · 6 comments

Libvisual compiles and installs fine, but when I run cmake for libvisual-plugins, pkg-config fails to detech libvisual-0.5. Adding /usr/local/lib64/pkgconfig/ to $PKG_CONFIG_PATH fixes this and subsequently cmake succeeds. However, I get the following error when I try compiling with make:

[ 33%] Building C object plugins/actor/goom2k4/CMakeFiles/actor_goom2k4.dir/goomsl.c.o
/home/shreyas/github/libvisual/libvisual-plugins/plugins/actor/goom2k4/goomsl.c:1289:6: error: conflicting types for ‘yyparse’
In file included from /home/shreyas/github/libvisual/libvisual-plugins/plugins/actor/goom2k4/goomsl.c:7:0:
/home/shreyas/github/libvisual/libvisual-plugins/plugins/actor/goom2k4/goomsl_yacc.h:109:5: note: previous declaration of ‘yyparse’ was here
make[2]: *** [plugins/actor/goom2k4/CMakeFiles/actor_goom2k4.dir/goomsl.c.o] Error 1
make[1]: *** [plugins/actor/goom2k4/CMakeFiles/actor_goom2k4.dir/all] Error 2
make: *** [all] Error 2

Interesting.. what is the version of Bison/Yacc used? Can you post the contents of goomsl_yacc.h?

here's the goomsl_yacc.h file : https://gist.github.com/shreyaspotnis/4712158

running bison --version gives 2.7. The pacman file says it's 2.7.1

It took me half an hour to get to PKG_CONFIG_PATH=${PKG_CONFIG_PATH}:/usr/local/lib64/pkgconfig and I wish that I had seen this issue before solving the problem on my own. The error on make is solved, but it would be nice, if the cmake error would not occur on Arch Linux.
I think, here is some more info on the general problem: http://stackoverflow.com/questions/10220946/pkg-check-modules-considered-harmful
Please re-open this issue.

pkg-config is already the standard mechanism for querying and configuring build flags that has worked for years, replacing the old mess where various libraries each had their own -config scripts. The reasons offered against pkg-config in the SO thread are really weak in my opinion. One would experience a similar problem if /usr/local/lib was not in the linker's search path.