Changeset 062eaf1


Ignore:
Timestamp:
Nov 21, 2018, 1:28:40 AM (13 months ago)
Author:
Paul Brossier <piem@piem.org>
Branches:
feature/autosink, feature/constantq, feature/pitchshift, feature/pydocstrings, feature/timestretch, master
Children:
3636600
Parents:
7ed058c (diff), 0b9e3b8a (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'fix/py3x_win-amd64' (closes #199, #208)

Adds a workaround in gen_external.py to prevent the `Exception:
preprocessor output is empty` build failure on windows amd64.

Files:
2 edited

Legend:

Unmodified
Added
Removed
  • .appveyor.yml

    r7ed058c r062eaf1  
    33
    44environment:
    5 
    6   global:
    7       CUSTOM64PATH: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
    85
    96  matrix:
     
    4441
    4542install:
    46 
    4743  - ECHO "Installed SDKs:"
    4844  - ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\""
    4945
    5046  - "SET PATH=%PYTHONDIR%;%PYTHONDIR%\\Scripts;%PATH%"
    51 
    52   - if [%PYTHON_ARCH%]==[64] SET PATH=%CUSTOM64PATH%;%PATH%
    5347
    5448  # Check that we have the expected version and architecture for Python
     
    7266  # clean before building python package
    7367  - python waf distclean
    74   # build python module without using libaubio
    75   - pip wheel -v -v -v --wheel-dir=dist .
    7668  # build, upload and install wheel (inspired by numpy's appveyor)
    7769  - ps: |
  • python/lib/gen_external.py

    r7ed058c r062eaf1  
    7575        cpp_cmd += ['-E']
    7676
     77    # On win-amd64 (py3.x), the default compiler is cross-compiling, from x86
     78    # to amd64 with %WIN_SDK_ROOT%\x86_amd64\cl.exe, but using this binary as a
     79    # pre-processor generates no output, so we use %WIN_SDK_ROOT%\cl.exe
     80    # instead.
     81    if len(cpp_cmd) > 1 and 'cl.exe' in cpp_cmd[-2]:
     82        plat = os.path.basename(os.path.dirname(cpp_cmd[-2]))
     83        if plat == 'x86_amd64':
     84            print('workaround on win64 to avoid empty pre-processor output')
     85            cpp_cmd[-2] = cpp_cmd[-2].replace('x86_amd64', '')
     86        elif True in ['amd64' in f for f in cpp_cmd]:
     87            print('warning: not using workaround for', cpp_cmd[0], plat)
     88
    7789    if not cpp_cmd:
    7890        print("Warning: could not guess preprocessor, using env's CC")
Note: See TracChangeset for help on using the changeset viewer.