diff --git a/.github/workflows/build-and-upload-to-pypi.yml b/.github/workflows/build-and-upload-to-pypi.yml index 4e96401..54749e5 100644 --- a/.github/workflows/build-and-upload-to-pypi.yml +++ b/.github/workflows/build-and-upload-to-pypi.yml @@ -11,9 +11,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - # Windows builds currently broken - #os: [ubuntu-20.04, windows-2019, macos-11] - os: [ubuntu-20.04, macos-11] + os: [ubuntu-20.04, windows-2019, macos-11] steps: - uses: actions/checkout@v3 @@ -31,6 +29,7 @@ jobs: CIBW_ARCHS: auto64 CIBW_BUILD: 'cp3*' CIBW_SKIP: '*-musllinux_*' + CIBW_BEFORE_BUILD_WINDOWS: make pip - uses: actions/upload-artifact@v3 with: diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index 762fdae..67096a2 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -7,7 +7,7 @@ on: jobs: build_wheels: name: Build wheel on Windows ${{ matrix.config.arch }} - runs-on: windows-latest + runs-on: windows-2019 strategy: matrix: config: @@ -98,3 +98,4 @@ jobs: env: CIBW_BUILD: cp37-* cp38-* cp39-* cp310-* cp311-* CIBW_ARCHS: auto64 + CIBW_BEFORE_BUILD_WINDOWS: make pip diff --git a/Makefile b/Makefile index 41ce8e9..749f730 100644 --- a/Makefile +++ b/Makefile @@ -17,9 +17,7 @@ install: clean python setup.py install build-wheels-on-manylinux2014: - docker pull quay.io/pypa/manylinux2014_i686 docker pull quay.io/pypa/manylinux2014_x86_64 - docker run --rm -ti -v `pwd`:/project -w /project quay.io/pypa/manylinux2014_i686 bash dockerfiles/buildwheel.sh docker run --rm -ti -v `pwd`:/project -w /project quay.io/pypa/manylinux2014_x86_64 bash dockerfiles/buildwheel.sh build: clean pip test sdist build-wheels-on-manylinux2014 diff --git a/requirements-dev.txt b/requirements-dev.txt index 5f74673..4d8e087 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,4 +1,4 @@ -chardet==3.0.4 +chardet>=3.0.4 pytest==6.2.5 tox==3.20.1 Cython==0.29.32 diff --git a/setup.py b/setup.py index bb49a2e..831acbe 100644 --- a/setup.py +++ b/setup.py @@ -20,8 +20,8 @@ except ImportError: have_cython = False -cchardet_dir = 'src/cchardet/' -uchardet_dir = 'src/ext/uchardet/src' +cchardet_dir = os.path.join("src", "cchardet") + os.path.sep +uchardet_dir = os.path.join("src", "ext", "uchardet", "src") if have_cython: pyx_sources = glob.glob(cchardet_dir + '*.pyx') @@ -35,35 +35,35 @@ uchardet_sources = [ os.path.join(uchardet_dir, 'CharDistribution.cpp'), os.path.join(uchardet_dir, 'JpCntx.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangArabicModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangBulgarianModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangCroatianModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangCzechModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangEsperantoModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangEstonianModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangFinnishModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangFrenchModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangDanishModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangGermanModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangGreekModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangHungarianModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangHebrewModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangIrishModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangItalianModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangLithuanianModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangLatvianModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangMalteseModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangPolishModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangPortugueseModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangRomanianModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangRussianModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangSlovakModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangSloveneModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangSwedishModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangSpanishModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangThaiModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangTurkishModel.cpp'), - os.path.join(uchardet_dir, 'LangModels/LangVietnameseModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangArabicModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangBulgarianModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangCroatianModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangCzechModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangEsperantoModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangEstonianModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangFinnishModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangFrenchModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangDanishModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangGermanModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangGreekModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangHungarianModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangHebrewModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangIrishModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangItalianModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangLithuanianModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangLatvianModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangMalteseModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangPolishModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangPortugueseModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangRomanianModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangRussianModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangSlovakModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangSloveneModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangSwedishModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangSpanishModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangThaiModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangTurkishModel.cpp'), + os.path.join(uchardet_dir, 'LangModels','LangVietnameseModel.cpp'), os.path.join(uchardet_dir, 'nsHebrewProber.cpp'), os.path.join(uchardet_dir, 'nsCharSetProber.cpp'), os.path.join(uchardet_dir, 'nsBig5Prober.cpp'),