mirror of
https://github.com/mappu/miqt.git
synced 2024-12-22 08:58:37 +00:00
doc/pkg-config: add instructions about custom pkg-config files
This commit is contained in:
parent
7fe6fae0b5
commit
5afa94f2cc
3
.gitignore
vendored
3
.gitignore
vendored
@ -7,6 +7,9 @@ container-build-cache/
|
||||
# local genbindings configuration
|
||||
cmd/genbindings/genbindings.local*
|
||||
|
||||
# local pkg-config configuration
|
||||
pkg-config/*.pc
|
||||
|
||||
# binaries
|
||||
cmd/handbindings/handbindings
|
||||
cmd/handbindings/bindings_test/direct
|
||||
|
27
pkg-config/README.md
Normal file
27
pkg-config/README.md
Normal file
@ -0,0 +1,27 @@
|
||||
# pkg-config
|
||||
|
||||
MIQT always uses [pkg-config](https://people.freedesktop.org/~dbn/pkg-config-guide.html) to find C++ libraries to bind to.
|
||||
|
||||
For Qt Widgets, the `.pc` definition is supplied along with Qt, but for other third-party libraries, definitions might not be present. To use such third-party libraries, one option is to set the `CGO_CFLAGS`, `CGO_CXXFLAGS`, `CGO_LDFLAGS` environment variables for `go build`. However, this has a global effect and may cause issues if you use multiple libraries. Therefore, another option is to create a pkg-config file.
|
||||
|
||||
To specify the CFLAGS/CXXFLAGS and LDFLAGS for a specific library, make a `MyLibrary.pc` file as follows:
|
||||
|
||||
```pkgconfig
|
||||
Name: My Library
|
||||
Libs: -lfoo
|
||||
Cflags: -I/path/
|
||||
```
|
||||
|
||||
Then run `PKG_CONFIG_PATH=/path/to/dir/ go build` so CGO will find your library. Then, the necessary flags for your system will be used only as required for the specific package.
|
||||
|
||||
The `PKG_CONFIG_PATH` environment variable is understood both by CGO and by genbindings.
|
||||
|
||||
## Further reading
|
||||
|
||||
- [Guide to pkg-config](https://people.freedesktop.org/~dbn/pkg-config-guide.html)
|
||||
|
||||
```bash
|
||||
# Find where pkg-config looks for system libraries
|
||||
$ pkg-config --variable pc_path pkg-config
|
||||
/usr/local/lib/x86_64-linux-gnu/pkgconfig:/usr/local/lib/pkgconfig:/usr/local/share/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig
|
||||
```
|
Loading…
Reference in New Issue
Block a user