Skip to content

Commit

Permalink
enable distro settings by default (#125)
Browse files Browse the repository at this point in the history
* meson: enable distro settings by default

Signed-off-by: Stephan Lachnit <[email protected]>

* meson: add note about version in pkg-config file

See also #123.

Signed-off-by: Stephan Lachnit <[email protected]>
  • Loading branch information
stephanlachnit authored Feb 7, 2021
1 parent e192e47 commit 98dafac
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,13 +132,14 @@ Some differences between inih and Python's [ConfigParser](http://docs.python.org
## Meson notes ##

* The `meson.build` file is not required to use or compile inih, its main purpose is for distributions.
* By default Meson only creates a static library for inih, but Meson can be used to configure this behavior:
* with `-Ddefault_library=shared` a shared library is build.
* with `-Ddistro_install=true` the library will be installed with the header and a pkg-config entry, you may want to set `-Ddefault_library=shared` when using this.
* with `-Dwith_INIReader` you can build (and install if selected) the C++ library.
* all compile-time options are implemented in Meson as well, you can take a look at [meson_options.txt](https://github.com/benhoyt/inih/blob/master/meson_options.txt) for their definition. These won't work if `distro_install` is set to `true`.
* By default Meson is set up for distro installation, but this behavior can be configured for embedded use cases:
* with `-Ddefault_library=static` static libraries are built.
* with `-Ddistro_install=false` libraries, headers and pkg-config files won't be installed.
* with `-Dwith_INIReader=false` you can disable building the C++ library.
* All compile-time options are implemented in Meson as well, you can take a look at [meson_options.txt](https://github.com/benhoyt/inih/blob/master/meson_options.txt) for their definition. These won't work if `distro_install` is set to `true`.
* If you want to use inih for programs which may be shipped in a distro, consider linking against the shared libraries. The pkg-config entries are `inih` and `INIReader`.
* In case you use inih as a subproject, you can use the `inih_dep` and `INIReader_dep` dependency variables.
* In case you use inih as a Meson subproject, you can use the `inih_dep` and `INIReader_dep` dependency variables. You might want to set `default_library=static` and `distro_install=false` for the subproject. An official Wrap is provided on [WrapDB](https://wrapdb.mesonbuild.com/inih).
* For packagers: if you want to tag the version in the pkg-config file, you will need to do this downstream. Add `version : '<version_as_int>',` after the `license` tag in the `project()` function and `version : meson.project_version(),` after the `soversion` tag in both `library()` functions.

## Building from vcpkg ##

Expand Down
1 change: 0 additions & 1 deletion meson.build
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
project('inih',
['c'],
default_options : ['default_library=static'],
license : 'BSD-3-Clause',
)

Expand Down
4 changes: 2 additions & 2 deletions meson_options.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
option('distro_install',
type : 'boolean',
value : false,
value : true,
description : 'install shared libs, headers and pkg-config entries'
)
option('with_INIReader',
type : 'boolean',
value : false,
value : true,
description : 'compile and (if selected) install INIReader'
)
option('multi-line_entries',
Expand Down

0 comments on commit 98dafac

Please sign in to comment.