mirror of
https://github.com/FeralInteractive/gamemode.git
synced 2025-06-27 01:41:45 +02:00
Merge pull request #63 from gicmo/ltversion
Introduce libtool like library versioning
This commit is contained in:
@ -57,13 +57,13 @@ This will also satisfy the build requirement `inih` by pulling it in as a git su
|
||||
## Requesting GameMode
|
||||
|
||||
### Users
|
||||
After installing `libgamemodeauto.so` simply preload it into the game:
|
||||
After installing `libgamemodeauto.so.0` simply preload it into the game:
|
||||
```bash
|
||||
LD_PRELOAD=/usr/\$LIB/libgamemodeauto.so ./game
|
||||
LD_PRELOAD=/usr/\$LIB/libgamemodeauto.so.0 ./game
|
||||
```
|
||||
Or edit the steam launch options:
|
||||
```bash
|
||||
LD_PRELOAD=$LD_PRELOAD:/usr/\$LIB/libgamemodeauto.so %command%
|
||||
LD_PRELOAD=$LD_PRELOAD:/usr/\$LIB/libgamemodeauto.so.0 %command%
|
||||
```
|
||||
Please note the backslash here in `\$LIB` is required.
|
||||
|
||||
|
@ -152,7 +152,7 @@ __attribute__((always_inline)) static inline int internal_load_libgamemode(void)
|
||||
void *libgamemode = NULL;
|
||||
|
||||
/* Try and load libgamemode */
|
||||
libgamemode = dlopen("libgamemode.so", RTLD_NOW);
|
||||
libgamemode = dlopen("libgamemode.so.0", RTLD_NOW);
|
||||
if (!libgamemode) {
|
||||
snprintf(internal_gamemode_client_error_string,
|
||||
sizeof(internal_gamemode_client_error_string),
|
||||
|
@ -1,5 +1,12 @@
|
||||
# Libtool like versioning (current.revision.age) for the libraries
|
||||
# See https://www.sourceware.org/autobook/autobook/autobook_61.html#Library-Versioning
|
||||
lt_current = '0'
|
||||
lt_revision = '0'
|
||||
lt_age = '0'
|
||||
lt_version = '@0@.@1@.@2@'.format(lt_current, lt_age, lt_revision)
|
||||
|
||||
# Main client library to message the daemon
|
||||
shared_library(
|
||||
gamemode = shared_library(
|
||||
'gamemode',
|
||||
sources: [
|
||||
'client_impl.c',
|
||||
@ -8,6 +15,8 @@ shared_library(
|
||||
dep_systemd,
|
||||
],
|
||||
install: true,
|
||||
soversion: lt_current,
|
||||
version: lt_version,
|
||||
)
|
||||
|
||||
libgamemode_includes = [
|
||||
@ -15,7 +24,7 @@ libgamemode_includes = [
|
||||
]
|
||||
|
||||
# Small library to automatically use gamemode
|
||||
shared_library(
|
||||
gamemodeauto = shared_library(
|
||||
'gamemodeauto',
|
||||
sources: [
|
||||
'client_loader.c',
|
||||
@ -24,6 +33,8 @@ shared_library(
|
||||
libdl,
|
||||
],
|
||||
install: true,
|
||||
soversion: lt_current,
|
||||
version: lt_version,
|
||||
)
|
||||
|
||||
# Install the gamemode_client header
|
||||
@ -32,3 +43,28 @@ gamemode_headers = [
|
||||
]
|
||||
|
||||
install_headers(gamemode_headers)
|
||||
|
||||
# Generate a pkg-config files
|
||||
pkg = import('pkgconfig')
|
||||
desc = 'GameMode temporarily applies game specific optimisations to the host OS.'
|
||||
pkg.generate(
|
||||
name: 'gamemode',
|
||||
description: desc,
|
||||
filebase: 'gamemode',
|
||||
version: meson.project_version(),
|
||||
libraries: [
|
||||
libdl
|
||||
],
|
||||
)
|
||||
|
||||
pkg.generate(
|
||||
name: 'gamemode',
|
||||
description: desc,
|
||||
filebase: 'gamemode-auto',
|
||||
libraries: gamemodeauto,
|
||||
version: meson.project_version(),
|
||||
libraries_private: [
|
||||
libdl
|
||||
],
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user