2009/12/21 Troy D. Straszheim <t...@resophonic.com> > AFAIK this is the only python module built by boost and nobody has given > serious thought to where it should be installed. This is a large can of > wriggly worms. /usr/lib[64]/python2.6/boost does sounds reasonable, the > important thing is that it is on the system's PYTHONPATH. You'd also > need to drop an empty __init__.py into that boost directory. >
As I understand, the building of Python modules (extensions) is configured thanks to the boost_python_extension directive within CMakeLists.txt files. Also, it is then easy to see where such extensions are generated: $ find . -name '*.txt' -exec grep -Hn "boost_python_extension" {} \; ./libs/python/test/CMakeLists.txt:39: boost_python_extension(${BPL_EXTENSION_MODULE} ${SRC}) ./libs/python/test/CMakeLists.txt:53: boost_python_extension(${TESTNAME}_ext "${TESTNAME}.cpp") ./libs/python/test/CMakeLists.txt:139:boost_python_extension(builtin_converters_ext test_builtin_converters.cpp) ./libs/python/test/CMakeLists.txt:146:# boost_python_extension(overload_resolution test_overload_resolution.cpp) ./libs/python/test/CMakeLists.txt:208:boost_python_extension(map_indexing_suite_ext ./libs/parameter/test/CMakeLists.txt:70: boost_python_extension(${BPL_EXTENSION_MODULE} ${SRC}) ./libs/parameter/test/CMakeLists.txt:84: boost_python_extension(${TESTNAME}_ext "${TESTNAME}.cpp") ./libs/mpi/src/CMakeLists.txt:54: boost_python_extension(mpi ./tools/build/CMake/selftest_projects/pymodules/src/CMakeLists.txt:10:boost_python_extension(fooext_rel ./tools/build/CMake/selftest_projects/pymodules/src/CMakeLists.txt:20:boost_python_extension(fooext_dbg ./tools/build/CMake/selftest_projects/pymodules/src/CMakeLists.txt:30:boost_python_extension(fooext_default ./tools/build/CMake/selftest_projects/pymodules/src/CMakeLists.txt:42:boost_python_extension(fooext_test_linkflags ./tools/build/CMake/test/libs/d/src/CMakeLists.txt:55:boost_python_extension(doesntbuild So, you are right, Troy: except for MPI, only test suites build Python extensions. Following is the building directive for the MPI Python extension (in libs/mpi/src/CMakeLists.txt): boost_python_extension(mpi python/collectives.cpp [...] python/py_timer.cpp DEPENDS boost_python boost_mpi SHARED_COMPILE_FLAGS "-DBOOST_MPI_DYN_LINK=1 -DBOOST_MPI_PYTHON_DYN_LINK=1 -DBOOST_PYTHON_DYN_LINK=1" LINK_FLAGS ${MPI_LINK_FLAGS} LINK_LIBS ${MPI_LIBRARIES} ${PYTHON_LIBRARIES}) So, as I understand, we should explicitly link the mpi.so Python extension, not only with the MPI libraries, but also with the Boost.MPI ones (libboost_mpi.so). We would have to amend the LINK_LIBS directive with something like: LINK_LIBS ${MPI_LIBRARIES} ${PYTHON_LIBRARIES} ${BOOST_MPI_LIBRARIES} But I do not see any such ${BOOST_MPI_LIBRARIES} variable defined. How should we do it? The other question is: how could we set a distinct installation path for that Python extension? We could maybe define a CMAKE_PYTEXT_INSTALL_PREFIX variable for that purpose? Thanks in advance Denis
_______________________________________________ Boost-cmake mailing list Boost-cmake@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-cmake