Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • P PyAV
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 37
    • Issues 37
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 26
    • Merge requests 26
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • PyAV
  • PyAV
  • Merge requests
  • !51

BLD: Build process raises if libraries are missing.

  • Review changes

  • Download
  • Email patches
  • Plain diff
Closed Administrator requested to merge github/fork/danielballan/standardize-setup into master Sep 13, 2014
  • Overview 0
  • Commits 1
  • Pipelines 0
  • Changes 2

Created by: danielballan

This supercedes #34. To summarize it and revisit the discussion there:

The most important change in stated in the title. Currently, if a required library is not found, the build finishes "sucessfully" and failure is only discovered when the user tries import av. Now, a LibraryNotFoundError stops the build and lists the missing libraries.

The build script also fails immediately and informatively if someone attempts to run it on Windows.

The code that ran pkg-config through a Unix pipe has been replaced by a module on PyPI, pkgconfig, that provides this functionality. Removing that low-level code from PyAV's setup.py file makes it cleaner and more approachable. If we eventually support Windows, as I still hope to do, this refactor paves the way for a parallel implementation of pkg_exists and get_pkg_info using ctypes.WinDLL instead of pkgconfig.

A disadvantage of this change is that setup.py requires pkgconfig, and setuptools' setup_requires is not clever enough to install what it needs and then continue the build. We could make the build process smoother by distrbuting pkgconfig (it's only one file) with PyAV in, say, PyAV/extern/pkgconfig/. What do you think?

Finally, unlike #34, this does not cythonize sources -- make build is still required. I still think it would be good for python setup.py develop to run the whole build, cythonizing included, but that's not part of this PR.

And, again unlike #34, this does not change the way the build directory's contents are automatically detected. You convinced me. :- )

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: github/fork/danielballan/standardize-setup