diff --git a/.gitignore b/.gitignore index c03c37c3a01d7f8860348cf47b979985aebef434..fab08031571898040c6aec854492c49c52e4f2c9 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,6 @@ build dist .eggs *.c +__bootstrap__.* + diff --git a/CHANGELOG.md b/CHANGELOG.md index 64be275657ab09f6c952392fcd9ad4e81c250fbd..f396b2e4ef63ca5f446341366daec9bb79db2fa7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # v1.1.1 -* _TBA_ +* allowed Linux-style paths on Windows build environments # v1.1 diff --git a/example/setup.py b/example/setup.py index 9b1ac8c10d268988e1b6beeaee5747eabd409b70..8e7ce4058901a7eaccb443ab2fe3f3d39d223669 100644 --- a/example/setup.py +++ b/example/setup.py @@ -6,7 +6,9 @@ from setuptools import Extension # note that you can include standard Extension classes in this list, those won't be touched # and will be directed directly to Cython.Build.cythonize() cython_multibuilds = [ - Multibuild('example_module', ['example_module/test.pyx', 'example_module/test2.pyx', + # note that Windows-style pathes are supported on Linux build environment, + # also, the reverse is true + Multibuild('example_module', ['example_module\\test.pyx', 'example_module/test2.pyx', 'example_module/test3/test3.pyx', 'example_module/test_n.c']), Extension('example2.example', ['example2/example.pyx']) diff --git a/requirements.txt b/requirements.txt index 8bf5286075008453d3f8e9cecef3da9ad42e8fc6..e17969fc1d0d7dba749c634fa8d053959d507fe1 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,3 @@ Cython mako +satella diff --git a/setup.py b/setup.py index 3a0c0731896fa1aa636ee40b2d875270ede49b17..5a0916f430760df724a5db46ee4d33b1967b2c16 100644 --- a/setup.py +++ b/setup.py @@ -6,7 +6,7 @@ setup(keywords=['cython', 'extension', 'multiple', 'pyx'], packages=find_packages(include=['snakehouse']), version=__version__, install_requires=[ - 'Cython', 'mako' + 'Cython', 'mako', 'satella', ], python_requires='!=2.7.*,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*', package_data={ diff --git a/snakehouse/__init__.py b/snakehouse/__init__.py index 891acea1fa8ee614f16aa960dd5f8cde59339f24..982a623f9e735b5c636e7fa9fc0bded18c8f65f4 100644 --- a/snakehouse/__init__.py +++ b/snakehouse/__init__.py @@ -1,4 +1,4 @@ from .build import build from .multibuild import Multibuild -__version__ = '1.1.1_a1' \ No newline at end of file +__version__ = '1.1.1' diff --git a/snakehouse/multibuild.py b/snakehouse/multibuild.py index 48de6ba1c35695ac4eaa3c7f49b70b3db5800a15..c9d7bb96db94aba79ed04238eb8252d57a924ebc 100644 --- a/snakehouse/multibuild.py +++ b/snakehouse/multibuild.py @@ -1,6 +1,7 @@ import os import collections import pkg_resources +from satella.files import split from mako.template import Template from setuptools import Extension @@ -25,6 +26,8 @@ class Multibuild: :param extension_name: the module name :param files: list of pyx and c files """ + # sanitize path separators so that Linux-style paths are supported on Windows + files = [os.path.join(*split(file)) for file in files] self.files = list([file for file in files if not file.endswith('__bootstrap__.pyx')]) file_name_set = set(os.path.split(file)[1] for file in self.files) if len(self.files) != len(file_name_set):