-
Notifications
You must be signed in to change notification settings - Fork 280
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
generated .pc files have no prefix information #444
Comments
In Fuerte and before the variable was mainly used to put together the other relative paths:
Since Groovy the include and library information are build differently and in this step the variables For other variables like |
Well, all the point of a .pc file is to be able to deliver this kind of information :) You can't decide (or know) yourself in advance what a end-user will want, so removing it is going to imped those who need the information with no benefit. I'd say that most .pc files are based on the same pattern: If that's easy (I think it's bascially a matter of a @(CMAKE_INSTALL_PREFIX)), why not add it back, please? :) |
No, there is no other way to retrieve that information from a package. As mentioned, I can readd the http://linux.die.net/man/1/pkg-config mentions that |
All right, thanks! I'm fine with re-adding just "prefix" :) Regarding the other variables, I understand your point and I understand that with the current code it's difficult to compute. But I'm not sure to get the rationale. The .pc file is not supposed to include information regarding the dependencies of a package. It must just contain the information for the package itself. So, for instance for includedir, a package is unlikely to install headers in multiple locations. It will basically install its public header in some place (e.g. $prefix/include/$package), and includedir is just that value (it's thus a bit different from Cflags). Are there any ros packages that scatter their includes among multiple directories? |
It is only true that a package has a single include folder when it has been installed. Inside the workspace (in the devel space) it might have multiple folders: e.g. one with the hand written header inside the package source folder, one inside the devel space containing generated code of for example messages. |
Mmm... I see. I'm really puzzled with that idea of not installing software ... but ok, this is another topic and this is not the place to discuss it. Thanks again for the quick replies :) |
Thanks, but "prefix" should be a variable and set with `=', like so: |
Thanks for catching this! |
This is a major update from 0.4.5 (ros-fuerte) to 0.5.67 (ros-groovy), featuring a massive rewrite. This version is not compatible with the previous. See CHANGELOG.rst in the sources for the gory details. Local patches fix issues regarding .pc files, introducing an incompatibility with official binarary package until this is merged upstream. See: ros/catkin#444 ros/catkin#445 Another local patch installs env.sh, setup.sh at al. in etc/ros instead of the root prefix. Their functionality is unchanged, though. While here, rename the package from catkin to ros-catkin, for consistency with other ros packages and easier package management from the command line (e.g. robotpkg_delete ros-\*) or in robotpkg.conf (e.g. PKG_OPTIONS.ros-%)
Generated .pc files in ros-groovy define no "prefix" variable:
% pkg-config --variable=prefix roslib
%
It is customary to define prefix, includedir, libdir, datadir etc. in .pc files, so that one is able to retrieve this information whenever needed. In ros-fuerte, .pc files were correctly defining these. Was this dropped intentionnaly?
The text was updated successfully, but these errors were encountered: