Commit 0f69774f authored by Jonathan Beck's avatar Jonathan Beck

Change python binding to be based on libplist++ object model.

Deprecate old binding.
parent 7ba9a543
......@@ -4,8 +4,9 @@ SET(CMAKE_SWIG_FLAGS -Werror -Wall -modern)
INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_PATH} )
SET_SOURCE_FILES_PROPERTIES(plist.i PROPERTIES CPLUSPLUS ON)
SWIG_ADD_MODULE( PList python plist.i )
SWIG_LINK_LIBRARIES( PList plist ${PYTHON_LIBRARIES} )
SWIG_LINK_LIBRARIES( PList plist plist++ ${PYTHON_LIBRARIES} )
EXEC_PROGRAM("${PYTHON_EXECUTABLE}"
ARGS "-c 'try:\n import distutils.sysconfig; print distutils.sysconfig.get_python_lib()\nexcept: pass\n'"
......
......@@ -4,6 +4,8 @@
%{
/* Includes the header in the wrapper code */
#include <plist/plist.h>
#include <plist/plist++.h>
typedef struct {
plist_t node;
char should_keep_plist;
......@@ -21,6 +23,34 @@ PListNode *allocate_plist_wrapper(plist_t plist, char should_keep_plist) {
}
%}
%include "stl.i"
%rename(__assign__) *::operator=;
%rename(__getitem__) *::operator[];
%ignore Boolean(plist_t);
%ignore Integer(plist_t);
%ignore Real(plist_t);
%ignore String(plist_t);
%ignore Data(plist_t);
%ignore Date(plist_t);
%ignore Array(plist_t);
%ignore Dictionary(plist_t);
%include <plist/Node.h>
%include <plist/Boolean.h>
%include <plist/Integer.h>
%include <plist/Real.h>
%include <plist/String.h>
%include <plist/Data.h>
%include <plist/Date.h>
%include <plist/Structure.h>
%include <plist/Array.h>
%include <plist/Dictionary.h>
%include <plist/Utils.h>
//deprecated wrapper below
%include "stdint.i"
%include "cstring.i"
......@@ -189,9 +219,9 @@ typedef struct {
}
char as_bool() {
char b;
uint8_t b;
plist_get_bool_val($self->node, &b);
return b;
return (char)b;
}
uint64_t as_uint() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment