Commit cb0e26998fa98ccac8f5b65e041ab8ff4999c04e

Authored by Perry Werneck
1 parent 3dda0800
Exists in master

Adding "setup.py" script.

@@ -26,3 +26,4 @@ scripts @@ -26,3 +26,4 @@ scripts
26 *.bak 26 *.bak
27 *.rc 27 *.rc
28 *.cache 28 *.cache
  29 +MANIFEST
@@ -37,10 +37,9 @@ Compiling for Windows (With MSYS2) @@ -37,10 +37,9 @@ Compiling for Windows (With MSYS2)
37 37
38 * git clone https://github.com/PerryWerneck/python-tn3270.git 38 * git clone https://github.com/PerryWerneck/python-tn3270.git
39 39
40 -6. Build zip file with the modules using the mingw shell 40 +6. Build the extension using setup.py
41 41
42 * cd python-tn3270 42 * cd python-tn3270
43 - * ./autogen.sh  
44 - * make zip 43 + * python setup.py build
45 44
46 45
@@ -318,6 +318,10 @@ AC_DEFINE_UNQUOTED(PACKAGE_DESCRIPTION,"$app_cv_description") @@ -318,6 +318,10 @@ AC_DEFINE_UNQUOTED(PACKAGE_DESCRIPTION,"$app_cv_description")
318 AC_SUBST(OSNAME,$app_cv_osname) 318 AC_SUBST(OSNAME,$app_cv_osname)
319 AC_SUBST(LIBS) 319 AC_SUBST(LIBS)
320 AC_SUBST(DLLEXT) 320 AC_SUBST(DLLEXT)
  321 +
  322 +CFLAGS="$CFLAGS -DHAVE_CONFIG_H"
  323 +CXXFLAGS="$CXXFLAGS -DHAVE_CONFIG_H"
  324 +
321 AC_SUBST(CFLAGS) 325 AC_SUBST(CFLAGS)
322 AC_SUBST(CXXFLAGS) 326 AC_SUBST(CXXFLAGS)
323 AC_SUBST(LDFLAGS) 327 AC_SUBST(LDFLAGS)
1 from distutils.core import setup, Extension 1 from distutils.core import setup, Extension
2 2
3 -tn3270 = Extension('tn3270',  
4 - define_macros = [('MAJOR_VERSION', '5'), ('MINOR_VERSION', '2')], 3 +tn3270 = Extension(
  4 + 'tn3270',
  5 + define_macros = [
  6 + ('PACKAGE_NAME', '\"python-tn3270\"'),
  7 + ('PACKAGE_VERSION', '\"5.2\"')
  8 + ],
5 include_dirs = ['src/include'], 9 include_dirs = ['src/include'],
6 libraries = ['ipc3270'], 10 libraries = ['ipc3270'],
7 - library_dirs = ['/usr/lib64'],  
8 sources = [ 11 sources = [
9 'src/action/type.c', 12 'src/action/type.c',
10 'src/module/init.c', 13 'src/module/init.c',
@@ -22,11 +25,20 @@ tn3270 = Extension('tn3270', @@ -22,11 +25,20 @@ tn3270 = Extension('tn3270',
22 'src/session/misc.cc', 25 'src/session/misc.cc',
23 'src/session/set.cc', 26 'src/session/set.cc',
24 'src/session/attributes.cc', 27 'src/session/attributes.cc',
25 - 'src/session/actions.cc' 28 + 'src/session/actions.cc',
  29 + 'src/module/windows/init.cc',
  30 + 'src/module/windows/tools.cc'
26 ]) 31 ])
27 32
28 setup ( name = 'tn3270', 33 setup ( name = 'tn3270',
29 version = '5.2', 34 version = '5.2',
30 - description = 'TN3270 module.', 35 + description = 'Python bindings for lib3270/pw3270.',
  36 + author = 'Perry Werneck',
  37 + author_email = 'perry.werneck@gmail.com',
  38 + url = 'https://github.com/PerryWerneck/python-tn3270',
  39 + long_description = '''
  40 +This is an extension allowing tn3270 acess for python applications
  41 +using lib3270 directly or ipc calls to an enabled pw3270 window.
  42 +''',
31 ext_modules = [ tn3270 ]) 43 ext_modules = [ tn3270 ])
32 44
src/include/py3270.h
@@ -31,11 +31,20 @@ @@ -31,11 +31,20 @@
31 31
32 #define PY3270_H_INCLUDED 32 #define PY3270_H_INCLUDED
33 33
  34 + #ifdef HAVE_CONFIG_H
  35 + #include <config.h>
  36 + #else
  37 + #define PACKAGE_DESCRIPTION "Python bindings for lib3270/pw3270"
  38 + #define HAVE_GNUC_VISIBILITY 1
  39 + #endif // HAVE_CONFIG_H
  40 +
  41 + #ifndef PACKAGE_NAME
  42 + #define PACKAGE_NAME "Python-TN3270"
  43 + #endif // !PACKAGE_NAME
  44 +
34 #define PY_SSIZE_T_CLEAN 45 #define PY_SSIZE_T_CLEAN
35 #include <Python.h> 46 #include <Python.h>
36 47
37 - #include <config.h>  
38 -  
39 #if defined(_WIN32) 48 #if defined(_WIN32)
40 49
41 #include <windows.h> 50 #include <windows.h>
src/module/properties.cc
@@ -32,10 +32,18 @@ @@ -32,10 +32,18 @@
32 /*---[ Implement ]----------------------------------------------------------------------------------*/ 32 /*---[ Implement ]----------------------------------------------------------------------------------*/
33 33
34 PyObject * py3270_get_module_version(PyObject *self, PyObject *args) { 34 PyObject * py3270_get_module_version(PyObject *self, PyObject *args) {
  35 +#ifdef PACKAGE_VERSION
35 return PyUnicode_FromString(PACKAGE_VERSION); 36 return PyUnicode_FromString(PACKAGE_VERSION);
  37 +#else
  38 + return PyUnicode_FromString("");
  39 +#endif // PACKAGE_VERSION
36 } 40 }
37 41
38 PyObject * py3270_get_module_revision(PyObject *self, PyObject *args) { 42 PyObject * py3270_get_module_revision(PyObject *self, PyObject *args) {
  43 +#ifdef PACKAGE_REVISION
39 return PyLong_FromLong(PACKAGE_REVISION); 44 return PyLong_FromLong(PACKAGE_REVISION);
  45 +#else
  46 + return PyLong_FromLong(0);
  47 +#endif // PACKAGE_REVISION
40 } 48 }
41 49
src/module/windows/init.cc
@@ -36,10 +36,10 @@ @@ -36,10 +36,10 @@
36 * 36 *
37 */ 37 */
38 38
39 - #include <config.h>  
40 - #include <winsock2.h>  
41 - #include <windows.h>  
42 #include <py3270.h> 39 #include <py3270.h>
  40 +
  41 + #if defined(_WIN32) && defined(USING_STATIC_IPC3270)
  42 +
43 #include <lmcons.h> 43 #include <lmcons.h>
44 #include <delayimp.h> 44 #include <delayimp.h>
45 #include <fcntl.h> 45 #include <fcntl.h>
@@ -47,8 +47,6 @@ @@ -47,8 +47,6 @@
47 #include <stdexcept> 47 #include <stdexcept>
48 #include <lib3270.h> 48 #include <lib3270.h>
49 49
50 - #ifdef USING_STATIC_IPC3270  
51 -  
52 extern "C" { 50 extern "C" {
53 51
54 extern __declspec (dllexport) PfnDliHook __pfnDliNotifyHook2; 52 extern __declspec (dllexport) PfnDliHook __pfnDliNotifyHook2;
src/module/windows/tools.cc
@@ -27,10 +27,12 @@ @@ -27,10 +27,12 @@
27 * 27 *
28 */ 28 */
29 29
30 - #include <py3270.h> 30 +#include <py3270.h>
31 31
32 /*--[ Implement ]------------------------------------------------------------------------------------*/ 32 /*--[ Implement ]------------------------------------------------------------------------------------*/
33 33
  34 +#ifdef _WIN32
  35 +
34 std::string py3270_get_datadir() noexcept { 36 std::string py3270_get_datadir() noexcept {
35 37
36 LSTATUS rc; 38 LSTATUS rc;
@@ -76,3 +78,5 @@ @@ -76,3 +78,5 @@
76 return string(datadir); 78 return string(datadir);
77 } 79 }
78 80
  81 +#endif // _WIN32
  82 +