{ "info": { "author": "Geoffrey Biggs", "author_email": "git@killbots.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development", "Topic :: Utilities" ], "description": "pykg-config\n==============================================================================\n\nA pkg-config replacement.\n\npykg-config is an input- and output-compatible implementation of pkg-config\nwritten in Python for greater ease of portability. It is designed to be a\ndrop-in replacement: command lines that work for pkg-config should produce\nidentical output from pykg-config.\n\n\nRequirements\n------------\n\npykg-config uses the new string formatting operations that were introduced in\nPython 2.6. It will not function with an earlier version of Python. It has been\nbeen tested with Python 2.6, 2.7, 3.1, 3.2, 3.3, and 3.4.\n\n\nInstallation\n------------\n\nThere are several methods of installation available:\n\n1. Download the source (either from the repository or a source archive),\nextract it somewhere, and run pykg-config from that directory.\n\n2. Download the source (either from the repository or a source archive),\nextract it somewhere, and use distutils to install it into your Python\ndistribution:\n\n a. Extract the source, e.g. to a directory C:\\pykg-config\\\n b. Run setup.py to install pykg-config to your default Python installation:\n\n C:\\pykg-config\\> python setup.py install\n\n c. If necessary, set environment variables. These should be set by default,\n but if not you will need to set them yourself. On Windows, you will need to\n ensure that your Python site-packages directory is in the PYTHONPATH\n variable and the Python scripts directory is in the PATH variable.\n Typically, these will be something like C:\\Python26\\Lib\\site-packages\\\n and C:\\Python26\\Scripts\\, respectively (assuming Python 2.6 installed in\n C:\\Python26\\).\n\n3. Use the Windows installer. This will perform the same job as running\nsetup.py (see #2), but saves opening a command prompt. You may still need to\nadd paths to your environment variables\n\nUnder Unix-like operating systems, if you do not already have the original\npkg-config available, you should create a symbolic link to pykg-config. This\nallows build system scripts that look for pkg-config to find pykg-config\nwithout modification. Place this link somewhere in your path. For example,\nassuming pykg-config was installed to /usr/local:\n\n$ ln -s /usr/local/bin/pykg-config.py /usr/local/bin/pkg-config\n\nOn Windows, a batch file, pkg-config.bat, is installed along with pykg-config\ninto the Scripts directory. This should function as a drop-in replacement for\npkg-config in build system scripts, such as CMake's UsePkgConfig.cmake module,\nprovided that this directory is in your PATH environment variable.\n\n\nPackage paths\n-------------\n\nIf a hard-coded package search path has been provided (see below), then only\nthat path is searched for .pc files. Otherwise, paths are searched in this\norder:\n\n1. All paths listed in the PKG_CONFIG_PATH environment variable.\n2. All paths listed in the PKG_CONFIG_LIBDIR environment variable, if set.\n Otherwise, all paths in ${prefix}/lib[64]/pkgconfig/ and\n ${prefix}/share/pkgconfig/, where ${prefix} is a system prefix (typically\n this will be /usr/).\n3. On Windows, the registry keys\n HKEY_CURRENT_USER\\Software\\pkg-config\\PKG_CONFIG_PATH and\n HKEY_LOCAL_MACHINE\\Software\\pkg-config\\PKG_CONFIG_PATH. For both of these,\n paths should be set as values of the key. The value name has no meaning to\n pkg-config; use it for your own reference. The value type must be REG_SZ (a\n string), and the data should be a single path.\n\nIf you are using Windows, I recommend you add paths to PKG_CONFIG_PATH. This is\nthe easiest place to add paths to and the easiest to check for errors. Google\ncan tell you how to add an environment variable in Windows. Unfortunately,\nbecause Windows does not have a centralised directory structure, you will\nprobably have to add every package you install to this variable. If you are\nlucky, some nice packages will do it when they are installed, but I haven't\nyet seen one that does this.\n\n\nHard-coded package path\n-----------------------\n\nIt is possible, when installing using setup.py, to specify a hard-coded list of\npaths to be searched for .pc files. Use the following setup.py command to do\nso:\n\n python setup.py build_py --with-pc-path= install\n\nThe list of paths should be specified as a single string, with the paths\nseparated by a semi-colon (';') on Windows or a colon (':') on other platforms.\n\n\npkg-config (.pc) file things-to-watch-out-for\n---------------------------------------------\n\nThe pkg-config format does not deal with spaces in values very well. If you\nhave an include or lib path with a space in it (common on Windows), pkg-config\nwill cheerfully treat up to the first space as an include or lib path, and\nthen ignore all remaining words. This is despite correctly parsing the file\nwith escaped spaces (the final value processing step is where it drops the\nrest).\n\nBy contrast, pykg-config uses Python's shlex module to split values,\npreserving things like escaped spaces. This is an advantage on Windows\n(provided your .pc files properly escape their spaces), but does mean output\nis incompatible with pkg-config.\n\nIn the interest of user-friendliness, on Windows, full compatibility is\n_disabled_ by default (i.e. paths with escaped spaces are handled correctly).\nOn other platforms, full compatibility is _enabled_ by default. You can\nmanually turn it on or off using the --full-compatibility and\n--less-compatibility switches.\n\nThe standard Windows path format (using \\) does not play well with some build\nsystems, such as CMake. Fortunately, CMake correctly handles paths specified\nusing Unix-style separators (/), so if your .pc files specify their paths using\nthat format you shouldn't have any problems.\n\nMiscellaneous notes\n-------------------\n\n1. Default target compiler\n\nThe CMake pkg-config module does not handle Microsoft Visual C++ style libdir\nspecifications (/libpath:). For this reason, even on Windows, the output\ndefaults to the standard non-MSVC-compatible format. You can change which style\nis used with the --msvc-syntax and --no-msvc-syntax options.\n\n2. Testing compatibility\n\nThe test script, test_compatibility.py, performs a set of unit tests in an\nattempt to maintain compatibility with the version of pkg-config mentioned in\nCORRESPONDING_VERSION in pykg-config.py. Executing it will run through all the\ntests. If they all pass, pykg-config.py is producing the same output as the\npkg-config installed on your system.\n\n3. Search prefix and system directories\n\npkg-config searchers in directories below a prefix that is defined at compile\ntime. Typically, this prefix will be /usr/lib/ or /usr/lib64/, depending on the\ntoolchain used to compile pkg-config. This path is then hard-coded into the\nbinary and cannot be changed at run-time. The only way to change it is by\nrecompiling pkg-config and forcing a different value for the system libpath\nonto it.\n\nThis presents a problem for pykg-config. Checking the Python system prefix (via\nsys.prefix) is not a guaranteed solution, as it is often different from the\nlibpath used by the compiler that builds pkg-config. While not much of a\nproblem for pykg-config's main target (Windows), in order to ensure\ncompatiblity it is best to try and meet this problem.\n\nA nasty hack is used to try and fix this in the majority of cases. At startup,\npykg-config looks at the value of sys.path. It finds the first entry containing\n'pythonxy.zip' (where x and y are the major and minor version numbers). If the\nend of the containing directory name is '64', it assumes that the system is\nrunning 64-bit libraries as the primary toolchain. This will cause paths such\nas /usr/lib/ (which are created from the sys.prefix value) to turn into\n/usr/lib64/.\n\nYou can test if the result is accurate for your system by ensuring that the\n'test_print_errors_with_error' test will have an error caused by a package in\n/usr/lib64 (see the comments for that test), then running\ntest_compatibility.py. If the error messages are the same (i.e. the test\npasses), then the hack has worked.\n\n5. Why?\n\nBecause building pkg-config for Windows in an easy-to-distribute, easy-to-use\nway is a pain. The core functionality of pkg-config is simple and easy to\nprovide using Python (which provides several modules useful for such things as\nparsing text files, which is what .pc files are).\n\nIt was also fun.\n\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/gbiggs/pykg-config", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "pykg-config", "package_url": "https://pypi.org/project/pykg-config/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pykg-config/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/gbiggs/pykg-config" }, "release_url": "https://pypi.org/project/pykg-config/1.3.0/", "requires_dist": null, "requires_python": null, "summary": "pkg-config replacement.", "version": "1.3.0" }, "last_serial": 1118715, "releases": { "1.0.0": [], "1.2.0": [ { "comment_text": "", "digests": { "md5": "df21d04126e4d8ab1313b6de8fe792b2", "sha256": "14786fa67bbca963f415c964ff42d8cc44d1d2905cc02ad9a49578d88195d316" }, "downloads": -1, "filename": "pykg-config-1.2.0.macosx-10.9-intel.exe", "has_sig": false, "md5_digest": "df21d04126e4d8ab1313b6de8fe792b2", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 94859, "upload_time": "2013-12-11T18:43:15", "url": "https://files.pythonhosted.org/packages/51/7b/63b3d5e2cd10e649511036bd6d7308a8dac350cebe646e10c31a24808f21/pykg-config-1.2.0.macosx-10.9-intel.exe" }, { "comment_text": "", "digests": { "md5": "7c45c21b356e43cdde38a5d4a4984985", "sha256": "3decc3d681092d75f099d126a383e63657ff43f5a95c794c216c47950a8827f6" }, "downloads": -1, "filename": "pykg-config-1.2.0.tar.gz", "has_sig": false, "md5_digest": "7c45c21b356e43cdde38a5d4a4984985", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23143, "upload_time": "2013-12-11T18:42:58", "url": "https://files.pythonhosted.org/packages/7f/7f/4246d325df4c52894efea0b30490564c569e88f0fb69e63da28064d50709/pykg-config-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "e874e0ac4ffe0068bd9db56ce4cdebe0", "sha256": "03db9e6d8f29cc046bd7ccc73a184a13d8870598eb12e2387799cde64f55ac56" }, "downloads": -1, "filename": "pykg-config-1.3.0.macosx-10.9-intel.exe", "has_sig": false, "md5_digest": "e874e0ac4ffe0068bd9db56ce4cdebe0", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 95230, "upload_time": "2014-06-08T23:42:38", "url": "https://files.pythonhosted.org/packages/cc/4d/900db263e935cfac504279b253363aee564fe120cfcbd17d29bc601b3fe6/pykg-config-1.3.0.macosx-10.9-intel.exe" }, { "comment_text": "", "digests": { "md5": "cd38d1ef13aa58c37e4a6bd1c14a5fa3", "sha256": "9c646103c4390bbc5070ab7075a271970333ddad54dc245df5628ed8e3dc3624" }, "downloads": -1, "filename": "pykg-config-1.3.0.tar.gz", "has_sig": false, "md5_digest": "cd38d1ef13aa58c37e4a6bd1c14a5fa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23812, "upload_time": "2014-06-08T23:42:34", "url": "https://files.pythonhosted.org/packages/23/ad/ad44cbc36d61b269f133821a220d4d5760ef08c3424ad7fe96357bf1b8e5/pykg-config-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e874e0ac4ffe0068bd9db56ce4cdebe0", "sha256": "03db9e6d8f29cc046bd7ccc73a184a13d8870598eb12e2387799cde64f55ac56" }, "downloads": -1, "filename": "pykg-config-1.3.0.macosx-10.9-intel.exe", "has_sig": false, "md5_digest": "e874e0ac4ffe0068bd9db56ce4cdebe0", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 95230, "upload_time": "2014-06-08T23:42:38", "url": "https://files.pythonhosted.org/packages/cc/4d/900db263e935cfac504279b253363aee564fe120cfcbd17d29bc601b3fe6/pykg-config-1.3.0.macosx-10.9-intel.exe" }, { "comment_text": "", "digests": { "md5": "cd38d1ef13aa58c37e4a6bd1c14a5fa3", "sha256": "9c646103c4390bbc5070ab7075a271970333ddad54dc245df5628ed8e3dc3624" }, "downloads": -1, "filename": "pykg-config-1.3.0.tar.gz", "has_sig": false, "md5_digest": "cd38d1ef13aa58c37e4a6bd1c14a5fa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23812, "upload_time": "2014-06-08T23:42:34", "url": "https://files.pythonhosted.org/packages/23/ad/ad44cbc36d61b269f133821a220d4d5760ef08c3424ad7fe96357bf1b8e5/pykg-config-1.3.0.tar.gz" } ] }