Hello !

I've got few questions about defining setup.py

My project consits of intricated packages :

setup.py
/Pack1
--__init__.py
-- sources_pack1
--/Pack2
-- -- __init__.py
-- -- sources_pack2

The package pack2 uses librairies defined in Pack1;

My setup.py looks like :

pack1_srcs = glob.glob ("pack1/*.cc")
pack1_ext = Extension (
   'Pack1',
   sources = pack1_srcs,
   libraries = ['boost_python'],
   include_dirs =  [include_dir],
   extra_objects=[]
)

pack2_srcs = glob.glob ("Pack1/Pack2/*.cc")
pack2_ext = Extension (
   'Pack2',
   sources = Pack2_srcs,
   libraries = ['boost_python'],
   include_dirs =  [include_dir],
   extra_objects=[]
)

setup (name='package,
      version = '1.0',
      author = '***',
      author_email = '***',
      url = '***',
      description = "****",
      packages = ['Pack1,
                  'Pack2'],
      ext_modules = [pack1_ext,
           pack2_ext],
      data_files= [(glob.glob("pack1/*.h"),
           ("pack1/pack2/*.h"))]
     )

The compilation ./setup.py works well, but it seems that there is a problem
with the linking of the librairies. When i launch a script using pack2,
trying to import things from pack1, i've got undefined symbols (of symbols
defined in pack1)

On the other hand, if i succeed in compiling/installing pack1,   then adding
Pack1  to extra_objects of Pack2 makes it work !

Then i'm wondering if there is a mean to compile pack1, then telling to
setup.py that it should use that library compiled before.

Probably it is not possible and i should define two separated directories
like
setup.py
Pack1/
-- __init__.py
-- pack1_sources
Pack2/
-- __init__py
-- pack2_sources

so that the first library is compiled and then , the compilation of the
second one uses the first one ... i don't know.


Thanks for your help !

Jeremy.
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to