Amos Anderson wrote:
I'm working on a project which is mixed C++/Python, and we use Boost
functionality in our C++, and we've set up bjam to compile our project
(on OSX). Everything seems to be working quite well.

To use our libraries from python scripts right now, we have to run this first:

#!/bin/bash
trunk=$HOME/project/trunk/
export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$trunk/lib
export PYTHONPATH=$trunk:$trunk/lib
python $@


which is quite inconvenient. Now obviously I can skip this step by
pasting those two export statements into my .profile, however, at some
point we're going to start distributing this software and it would be
nice if we didn't require the end user to do something like that.

I can't believe that either of these 2 steps are how it's supposed to
work... so how should I be doing it?  Ideally, I want to set something
up so that the end user only has to run 1 (one) command to build &
install. Here are some things I've thought about:

[...]

3) bjam includes a way to install libraries into a folder I can name,
but does it have a way to set environment variables? or automatically
figure out the right places to put all the python files? If so, I
can't find it...

Almost certainly not. bjam would be running in a child process and won't be able to change the environment of the parent (shell) process. Even if it did, any changes wouldn't persist into newly launched shells.

I don't think there you can get the "right place" to put the python files, especially since different users will have different "right places". I think your best bet is to follow the usual convention of using a default location of "/usr/lib/python<version>/site-packages", but allow users to override it from the command line. I'm not 100% sure of the syntax, but something like

bjam -s prefix=/usr/local/lib/python2.5

should set the variable prefix to /usr/local/lib/python2.5 inside the Jamfile.

Now you just need a way to get the default python version to set the default value. bjam's python module has a .version-countdown variable that might help.

The boost-build mailing list can probably give you better help.

--
Anthony Foglia
Princeton Consultants
(609) 987-8787 x233

_______________________________________________
Cplusplus-sig mailing list
Cplusplus-sig@python.org
http://mail.python.org/mailman/listinfo/cplusplus-sig

Reply via email to