A common example would be to use `-std=c++11` for code that makes use of C++11 features.
(This key is not in the Conda spec).
### `build/ldflags`
Extra arguments to pass to the linker when building for WebAssembly.
(This key is not in the Conda spec).
### `build/library`
Should be set to true for library packages. Library packages are packages that are needed for other packages but are not Python packages themselves. For library packages, the script specified in the `build/script` section is run to compile the library. See the [zlib meta.yaml](https://github.com/pyodide/pyodide/blob/main/packages/zlib/meta.yaml) for an example of a library package specification.
### `build/sharedlibrary`
Should be set to true for shared library packages. Shared library packages are packages that are needed for other packages, but are loaded dynamically when Pyodide is run. For shared library packages, the script specified in the `build/script` section is run to compile the library. The script should build the shared library and copy into into a subfolder of the source folder called `install`. Files or folders in this install folder will be packaged to make the Pyodide package. See the [CLAPACK meta.yaml](https://github.com/pyodide/pyodide/blob/main/packages/CLAPACK/meta.yaml) for an example of a shared library specification.
### `build/script`
The script section is required for a library package (`build/library` set to true). For a Python package this section is optional. If it is specified for a Python package, the script section will be run before the build system runs `setup.py`. This script is run by `bash` in the directory where the tarball was extracted.
### `build/post`
Shell commands to run after building the library. These are run inside of
`bash`, and there are two special environment variables defined:
-`$SITEPACKAGES`: The `site-packages` directory into which the package has been installed.
-`$PKGDIR`: The directory in which the `meta.yaml` file resides.
(This key is not in the Conda spec).
### `build/replace-libs`
A list of strings of the form `<old_name>=<new_name>`, to rename libraries when linking. This in particular
might be necessary when using emscripten ports.
For instance, `png16=png` is currently used in matplotlib.