From 3b0f9f973ad3ff2d50df5b934cd40c7b85ca237d Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Thu, 8 Jun 2006 01:25:46 +0000 Subject: [PATCH] minor improvements to python embedding code tweak the cmake files a bit, and shorten the namespace name --- qui/CMakeLists.txt | 10 ++++++++-- qui/mussagl.cpp | 13 +++++++------ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/qui/CMakeLists.txt b/qui/CMakeLists.txt index 7a62c7a..c38f1da 100644 --- a/qui/CMakeLists.txt +++ b/qui/CMakeLists.txt @@ -56,18 +56,20 @@ SET(GUI_SOURCES seqbrowser/SequenceDescription.cpp ) -SET(SOURCES +SET(MAIN_SOURCES mussagl.cpp) SET(RCCS ../icons.qrc) QT4_ADD_RESOURCES(RCC_SOURCE ${RCCS}) QT4_WRAP_CPP(MOC_SOURCES ${MOC_HEADERS}) +SET(SOURCES ${MOC_SOURCES} ${GUI_SOURCES} ${RCC_SOURCES} ${MAIN_SOURCES}) INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} ${QT_INCLUDES}) + ADD_LIBRARY(mussa_qui STATIC ${MOC_SOURCES} ${GUI_SOURCES} ${RCC_SOURCE}) TARGET_LINK_LIBRARIES(mussa_qui mussa_core) -ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${SOURCES} ) +ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${MAIN_SOURCES} ) # ${SOURCES} ${MOC_SOURCES} ${RCC_SOURCE} ) LINK_DIRECTORIES(${MUSSA_BINARY_DIR}/alg ${MUSSA_BINARY_DIR}/py) @@ -80,6 +82,10 @@ TARGET_LINK_LIBRARIES(mussagl ${BOOST_FILESYSTEM_LIBRARY} ) IF(USE_PYTHON) + SET_SOURCE_FILES_PROPERTIES(${SOURCES} + PROPERTIES + COMPILE_FLAGS "-DUSE_PYTHON=1" + ) TARGET_LINK_LIBRARIES(mussagl ${BOOST_PYTHON_LIBRARY} optimized ${PYTHON_LIBRARIES} diff --git a/qui/mussagl.cpp b/qui/mussagl.cpp index 15b01b2..dcf393b 100644 --- a/qui/mussagl.cpp +++ b/qui/mussagl.cpp @@ -1,6 +1,7 @@ #include #ifdef USE_PYTHON #include +namespace py = boost::python; #endif using namespace boost::filesystem; @@ -35,10 +36,10 @@ int main(int argc, char **argv) #ifdef USE_PYTHON if (opts.runAsPythonInterpeter) { Py_Initialize(); - boost::python::object main_module((boost::python::handle<>(boost::python::borrowed(PyImport_AddModule("__main__"))))); - boost::python::object main_namespace = main_module.attr("__dict__"); + py::object main_module((py::handle<>(py::borrowed(PyImport_AddModule("__main__"))))); + py::object main_namespace = main_module.attr("__dict__"); - boost::python::handle<> ignored((PyRun_String( + py::handle<> ignored((PyRun_String( //"from IPython.Shell import IPShellEmbed\n" //"shell = IPShellEmbed(['mussa'], '')\n", //"import mussa\n" @@ -50,8 +51,8 @@ int main(int argc, char **argv) main_namespace.ptr(), main_namespace.ptr()) )); - boost::python::object square = main_module.attr("square"); - int result = boost::python::extract(square(3)); + py::object square = main_module.attr("square"); + int result = py::extract(square(3)); std::cout << "C++ has " << result << std::endl; PyRun_InteractiveLoop(stdin, "mussa"); } else @@ -68,7 +69,7 @@ int main(int argc, char **argv) qFatal(e.what()); } #ifdef USE_PYTHON - catch (boost::python::error_already_set e) { + catch (py::error_already_set e) { PyErr_Print(); } #endif /* USE_PYTHON */ -- 2.30.2