diff --git a/bob/learn/activation/include/bob.learn.activation/config.h b/bob/learn/activation/include/bob.learn.activation/config.h index 30f27625a8d750165abb65e1d6647f2d0e3cc558..a6958f5680d72b05c7b2dced8ee67690f8634b17 100644 --- a/bob/learn/activation/include/bob.learn.activation/config.h +++ b/bob/learn/activation/include/bob.learn.activation/config.h @@ -11,4 +11,23 @@ /* Macros that define versions and important names */ #define BOB_LEARN_ACTIVATION_API_VERSION 0x0200 +#ifdef BOB_IMPORT_VERSION + + /*************************************** + * Here we define some functions that should be used to build version dictionaries in the version.cpp file + * There will be a compiler warning, when these functions are not used, so use them! + ***************************************/ + + #include <Python.h> + #include <boost/preprocessor/stringize.hpp> + + /** + * bob.learn.activation c/c++ api version + */ + static PyObject* bob_learn_activation_version() { + return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_LEARN_ACTIVATION_API_VERSION)); + } + +#endif // BOB_IMPORT_VERSION + #endif /* BOB_LEARN_ACTIVATION_CONFIG_H */ diff --git a/bob/learn/activation/main.cpp b/bob/learn/activation/main.cpp index 3e1325055ded02425d6bad4e6514357e03deca98..d88a5af838992ec48ac54aaed874ed81e85b1785 100644 --- a/bob/learn/activation/main.cpp +++ b/bob/learn/activation/main.cpp @@ -13,6 +13,7 @@ #endif #include <bob.blitz/capi.h> #include <bob.blitz/cleanup.h> +#include <bob.core/api.h> #include <bob.io.base/api.h> static PyMethodDef module_methods[] = { @@ -150,17 +151,9 @@ static PyObject* create_module (void) { if (c_api_object) PyModule_AddObject(m, "_C_API", c_api_object); /* imports dependencies */ - if (import_bob_blitz() < 0) { - PyErr_Print(); - PyErr_Format(PyExc_ImportError, "cannot import `%s'", BOB_EXT_MODULE_NAME); - return 0; - } - - if (import_bob_io_base() < 0) { - PyErr_Print(); - PyErr_Format(PyExc_ImportError, "cannot import `%s'", BOB_EXT_MODULE_NAME); - return 0; - } + if (import_bob_blitz() < 0) return 0; + if (import_bob_core_logging() < 0) return 0; + if (import_bob_io_base() < 0) return 0; return Py_BuildValue("O",m); } diff --git a/bob/learn/activation/version.cpp b/bob/learn/activation/version.cpp index 5f77574e862fee00bb8bec3684ce588d1770496f..91998d8110091113db3ba3c16fa8a971a602475e 100644 --- a/bob/learn/activation/version.cpp +++ b/bob/learn/activation/version.cpp @@ -5,109 +5,15 @@ * @brief Binds configuration information available from bob */ -#ifdef NO_IMPORT_ARRAY -#undef NO_IMPORT_ARRAY -#endif -#include <bob.blitz/capi.h> -#include <bob.blitz/cleanup.h> -#include <string> -#include <cstdlib> -#include <blitz/blitz.h> -#include <boost/preprocessor/stringize.hpp> -#include <boost/version.hpp> -#include <boost/format.hpp> +#include <bob.learn.activation/config.h> +#define BOB_IMPORT_VERSION +#include <bob.blitz/config.h> +#include <bob.blitz/cleanup.h> #include <bob.core/config.h> #include <bob.io.base/config.h> -#include <bob.learn.activation/config.h> - -static int dict_set(PyObject* d, const char* key, const char* value) { - PyObject* v = Py_BuildValue("s", value); - if (!v) return 0; - int retval = PyDict_SetItemString(d, key, v); - Py_DECREF(v); - if (retval == 0) return 1; //all good - return 0; //a problem occurred -} - -static int dict_steal(PyObject* d, const char* key, PyObject* value) { - if (!value) return 0; - int retval = PyDict_SetItemString(d, key, value); - Py_DECREF(value); - if (retval == 0) return 1; //all good - return 0; //a problem occurred -} - -/** - * Describes the version of Boost libraries installed - */ -static PyObject* boost_version() { - boost::format f("%d.%d.%d"); - f % (BOOST_VERSION / 100000); - f % (BOOST_VERSION / 100 % 1000); - f % (BOOST_VERSION % 100); - return Py_BuildValue("s", f.str().c_str()); -} -/** - * Describes the compiler version - */ -static PyObject* compiler_version() { -# if defined(__GNUC__) && !defined(__llvm__) - boost::format f("%s.%s.%s"); - f % BOOST_PP_STRINGIZE(__GNUC__); - f % BOOST_PP_STRINGIZE(__GNUC_MINOR__); - f % BOOST_PP_STRINGIZE(__GNUC_PATCHLEVEL__); - return Py_BuildValue("ss", "gcc", f.str().c_str()); -# elif defined(__llvm__) && !defined(__clang__) - return Py_BuildValue("ss", "llvm-gcc", __VERSION__); -# elif defined(__clang__) - return Py_BuildValue("ss", "clang", __clang_version__); -# else - return Py_BuildValue("s", "unsupported"); -# endif -} - -/** - * Python version with which we compiled the extensions - */ -static PyObject* python_version() { - boost::format f("%s.%s.%s"); - f % BOOST_PP_STRINGIZE(PY_MAJOR_VERSION); - f % BOOST_PP_STRINGIZE(PY_MINOR_VERSION); - f % BOOST_PP_STRINGIZE(PY_MICRO_VERSION); - return Py_BuildValue("s", f.str().c_str()); -} - -/** - * Numpy version - */ -static PyObject* numpy_version() { - return Py_BuildValue("{ssss}", "abi", BOOST_PP_STRINGIZE(NPY_VERSION), - "api", BOOST_PP_STRINGIZE(NPY_API_VERSION)); -} - -/** - * bob.blitz c/c++ api version - */ -static PyObject* bob_blitz_version() { - return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_BLITZ_API_VERSION)); -} - -/** - * bob.core c/c++ api version - */ -static PyObject* bob_core_version() { - return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_CORE_API_VERSION)); -} - -/** - * bob.io.base c/c++ api version - */ -static PyObject* bob_io_base_version() { - return Py_BuildValue("{ss}", "api", BOOST_PP_STRINGIZE(BOB_IO_BASE_API_VERSION)); -} static PyObject* build_version_dictionary() { @@ -115,17 +21,17 @@ static PyObject* build_version_dictionary() { if (!retval) return 0; auto retval_ = make_safe(retval); - if (!dict_set(retval, "Blitz++", BZ_VERSION)) return 0; + if (!dict_steal(retval, "Blitz++", blitz_version())) return 0; if (!dict_steal(retval, "Boost", boost_version())) return 0; if (!dict_steal(retval, "Compiler", compiler_version())) return 0; if (!dict_steal(retval, "Python", python_version())) return 0; if (!dict_steal(retval, "NumPy", numpy_version())) return 0; + if (!dict_steal(retval, "HDF5", hdf5_version())) return 0; if (!dict_steal(retval, "bob.blitz", bob_blitz_version())) return 0; if (!dict_steal(retval, "bob.core", bob_core_version())) return 0; if (!dict_steal(retval, "bob.io.base", bob_io_base_version())) return 0; - Py_INCREF(retval); - return retval; + return Py_BuildValue("O", retval); } static PyMethodDef module_methods[] = { @@ -165,13 +71,6 @@ static PyObject* create_module (void) { if (!externals) return 0; if (PyModule_AddObject(m, "externals", externals) < 0) return 0; - /* imports dependencies */ - if (import_bob_blitz() < 0) { - PyErr_Print(); - PyErr_Format(PyExc_ImportError, "cannot import `%s'", BOB_EXT_MODULE_NAME); - return 0; - } - return Py_BuildValue("O", m); } diff --git a/version.txt b/version.txt index 0ac9c2deea58aac769c1c554458c3c8bc8e982ff..bdb0aa54bb23662ae20160d134a63340c659cb91 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -2.0.3b0 \ No newline at end of file +2.0.3b1