Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
bob
bob.learn.libsvm
Commits
27874dee
Commit
27874dee
authored
May 22, 2015
by
Manuel Günther
Browse files
Applied new versioning system
parent
05567d53
Changes
4
Hide whitespace changes
Inline
Side-by-side
bob/learn/libsvm/include/bob.learn.libsvm/config.h
View file @
27874dee
...
...
@@ -11,4 +11,33 @@
/* Macros that define versions and important names */
#define BOB_LEARN_LIBSVM_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>
#include
<svm.h>
/**
* Describes the libsvm version
*/
static
PyObject
*
get_libsvm_version
()
{
boost
::
format
s
(
"%d.%d"
);
s
%
(
LIBSVM_VERSION
/
100
)
%
(
LIBSVM_VERSION
%
100
);
return
Py_BuildValue
(
"s"
,
s
.
str
().
c_str
());
}
/**
* bob.learn.libsvm c/c++ api version
*/
static
PyObject
*
bob_learn_libsvm_version
()
{
return
Py_BuildValue
(
"{ss}"
,
"api"
,
BOOST_PP_STRINGIZE
(
BOB_LEARN_LIBSVM_API_VERSION
));
}
#endif // BOB_IMPORT_VERSION
#endif
/* BOB_LEARN_LIBSVM_CONFIG_H */
bob/learn/libsvm/main.cpp
View file @
27874dee
...
...
@@ -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
[]
=
{
...
...
@@ -131,17 +132,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
);
}
...
...
bob/learn/libsvm/version.cpp
View file @
27874dee
...
...
@@ -5,140 +5,32 @@
* @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
<svm.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.libsvm/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 libsvm version
*/
static
PyObject
*
get_libsvm_version
()
{
boost
::
format
s
(
"%d.%d"
);
s
%
(
LIBSVM_VERSION
/
100
);
s
%
(
LIBSVM_VERSION
%
100
);
return
Py_BuildValue
(
"s"
,
s
.
str
().
c_str
());
}
/**
* 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
()
{
PyObject
*
retval
=
PyDict_New
();
if
(
!
retval
)
return
0
;
auto
retval_
=
make_safe
(
retval
);
if
(
!
dict_s
e
t
(
retval
,
"Blitz++"
,
BZ_VERSION
))
return
0
;
if
(
!
dict_st
eal
(
retval
,
"Blitz++"
,
blitz_version
()
))
return
0
;
if
(
!
dict_steal
(
retval
,
"LIBSVM"
,
get_libsvm_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
[]
=
{
...
...
@@ -178,15 +70,10 @@ 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
;
}
// call bob_learn_libsvm_version once to avoid compiler warnings
auto
_
=
make_safe
(
bob_learn_libsvm_version
());
return
Py_BuildValue
(
"O"
,
m
);
}
PyMODINIT_FUNC
BOB_EXT_ENTRY_NAME
(
void
)
{
...
...
version.txt
View file @
27874dee
2.0.2b0
\ No newline at end of file
2.0.2b1
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment