External dependencies ===================== Download files -------------- Used to download files from an arbitrary URL. This can download headers, shared/static libraries, and sources. .. code-block:: toml [[tool.robotpy-build.wrappers."PACKAGENAME".download]] url = "https://my/url/something.zip" incdir = "include" libs = ["mylib"] libdir = "libpath" That tells robotpy-build: * To download the zipfile at that URL * Anything in the "include" directory will be extracted to the include path for the wrapper * Libraries will be searched in the "libpath" directory (default is "") * The shared library "mylib" will be linked to the python module being built .. note:: When ``RPYBUILD_DEBUG`` isn't specified, downloaded shared libraries are stripped on Linux. Maven artifacts --------------- Used to download artifacts from a maven repository. This can download headers, shared libraries, and sources. .. code-block:: toml [tool.robotpy-build.wrappers."PACKAGENAME".maven_lib_download] artifact_id = "mything" group_id = "com.example.thing" repo_url = "http://example.com/maven" version = "1.2.3" When robotpy-build downloads an artifact from a maven repo, it will unpack it into a temporary directory and add the relevant directories to your package's include/library paths. Additionally, any headers will automatically be copied into your wheel so that other packages can utilize them when linking to your wheel. For development purposes, you can download/extract the files locally by running ``python3 setup.py build_dl``. .. seealso:: Reference for all :class:`.MavenLibDownload` options .. note:: It's possible that the archive format is specific to FIRST Robotics. If you're trying to use this and it isn't working, file a bug on github! For FIRST Robotics related projects, the metadata for ``maven_lib_download`` can be found in a vendor JSON file. .. note:: When ``RPYBUILD_DEBUG`` isn't specified, downloaded shared libraries are stripped on Linux.