Skip to content
  • Matt Harbison's avatar
    setup: conditionalize access to `sys.dllhandle` when building extensions · 52e4bfebc4ba
    Matt Harbison authored
    This code is only run on Windows, and was crashing PyOxidizer when running in
    `setup-py-install` mode.  Now an oxidized binary can be built by simply pointing
    to setup.py.
    
    Something is slightly different now that it's not being built from a virtualenv.
    Previously, `hg version` could print to the screen, but now it aborts saying
    "Incorrect function".  But I can see the output if redirected to a file, and
    it's not complaining about missing C extensions, so I think those are loading
    now (unlike from the virtualenv).  The interesting this about this incorrect
    function output is that it failed when initially built.  I then went back and
    did a `make clean` and `make local` with py3 and then py2 to ensure I didn't
    break the existing code.  At that point I ran the oxidized executable again and
    it was able to print to the screen normally!  So I ran `pyoxidizer build` again,
    it only output the following, and then running the executable failed to output
    again:
    
        (pyO2_venv) C:\Users\Matt\hg3\hg_pyO2>pyoxidizer build
            Finished dev [unoptimized + debuginfo] target(s) in 0.12s
        packaging application into C:/Users/Matt/hg3/hg_pyO2\build\apps\hg_pyO2\x86_64-pc-windows-msvc\debug
        purging C:/Users/Matt/hg3/hg_pyO2\build\apps\hg_pyO2\x86_64-pc-windows-msvc\debug
        copying C:/Users/Matt/hg3/hg_pyO2\build\target\x86_64-pc-windows-msvc\debug\hg_pyO2.exe to
            C:/Users/Matt/hg3/hg_pyO2\build\apps\hg_pyO2\x86_64-pc-windows-msvc\debug\hg_pyO2.exe
        resolving packaging state...
        writing license for [...]
        hg_pyO2 packaged into C:/Users/Matt/hg3/hg_pyO2\build\apps\hg_pyO2\x86_64-pc-windows-msvc\debug
        executable path: C:/Users/Matt/hg3/hg_pyO2\build\apps\hg_pyO2\x86_64-pc-windows-msvc\debug\hg_pyO2.exe
    
    Differential Revision: https://phab.mercurial-scm.org/D7444
    52e4bfebc4ba