diff options
author | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-01-16 08:51:09 +0200 |
---|---|---|
committer | Jaakko Keränen <jaakko.keranen@iki.fi> | 2021-01-16 08:51:09 +0200 |
commit | 80c258a9ea94b9fee22171f9a680a2c019fb5839 (patch) | |
tree | 6da498e2b87dc96c7efe5b52bc434ff560fbf704 /README.md | |
parent | e81fb43b3cecbe1df9f86045919202e0add0b5b7 (diff) |
Updated README with build options
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 18 |
1 files changed, 15 insertions, 3 deletions
@@ -42,20 +42,32 @@ This is how to build Lagrange in a POSIX-compatible environment. The required to | |||
42 | 42 | ||
43 | ### Installing to a directory | 43 | ### Installing to a directory |
44 | 44 | ||
45 | To install to "/dest/path": | 45 | Set `CMAKE_INSTALL_PREFIX` to install to a directory of your choosing. |
46 | 46 | ||
47 | 1. `cmake {path_of_lagrange_sources} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/dest/path` | 47 | 1. `cmake {path_of_lagrange_sources} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/dest/path` |
48 | 2. `cmake --build . --target install` | 48 | 2. `cmake --build . --target install` |
49 | 49 | ||
50 | This will also install an XDG .desktop file for launching the app. | 50 | This will also install an XDG .desktop file for launching the app. |
51 | 51 | ||
52 | ### Build options | ||
53 | |||
54 | | CMake Option | Description | | ||
55 | | ------------ | ----------- | | ||
56 | | `ENABLE_BINCAT_SH` | Merge resource files (fonts, etc.) together using a Bash shell script. By default this is **OFF**, so _res/bincat.c_ is compiled as a native executable for this purpose. However, when cross-compiling, native binaries built during the CMake run may be targeted for the wrong architecture. Set this to **ON** if you are having problems with bincat while running CMake. | | ||
57 | | `ENABLE_IDLE_SLEEP` | Sleep in the main thread instead of waiting for events. On some platforms, `SDL_WaitEvent()` may have a relatively high CPU usage. Setting this to **ON** polls for events periodically but otherwise keeps the main thread sleeping, reducing CPU usage. The drawback is that there is a slightly increased latency reacting to new events after idle mode ends. | | ||
58 | | `ENABLE_KERNING` | Use kerning information in the fonts to adjust glyph placement. Setting this **ON** improves text appearance in subtle ways but slows down text rendering. It may be a good idea to set this to **OFF** when running on a slow CPU. | | ||
59 | | `ENABLE_MPG123` | Use the mpg123 library for decoding MPEG audio files. | | ||
60 | | `ENABLE_RESOURCE_EMBED` | Embed all resource files into the Lagrange executable instead of keeping them in a separate file that gets loaded at launch. Setting this **ON** makes it much slower to run CMake and to compile Lagrange. | | ||
61 | | `ENABLE_WINDOWPOS_FIX` | Set correct window position after the window has already been shown. This may be necessary on some platforms to prevent the window from being restored to the wrong position. | | ||
62 | | `ENABLE_X11_SWRENDER` | Default to software rendering when running under X11. By default Lagrange attempts to use the GPU for rendering the user interface. You can also use the `--sw` option at launch to force software rendering. | | ||
63 | |||
52 | ### Compiling on macOS | 64 | ### Compiling on macOS |
53 | 65 | ||
54 | When using OpenSSL 1.1.1 from Homebrew, you must add its pkgconfig path to your `PKG_CONFIG_PATH` environment variable, for example: | 66 | When using OpenSSL 1.1.1 from Homebrew, you must add its pkgconfig path to your `PKG_CONFIG_PATH` environment variable, for example: |
55 | 67 | ||
56 | export PKG_CONFIG_PATH=/usr/local/Cellar/openssl@1.1/1.1.1h/lib/pkgconfig | 68 | export PKG_CONFIG_PATH=/opt/homebrew/Cellar/openssl@1.1/1.1.1i/lib/pkgconfig |
57 | 69 | ||
58 | Also, SDL's trackpad scrolling behavior on macOS is not optimal for regular GUI apps because it emulates a physical mouse wheel. This may change in a future release of SDL, but at least in 2.0.12 a [small patch](https://git.skyjake.fi/skyjake/lagrange/raw/branch/dev/sdl2-macos-mouse-scrolling.diff) is required to allow momentum scrolling to come through as single-pixel mouse wheel events. Note that SDL comes with an Xcode project; use the "Shared Library" target and check that you are doing a Release build. | 70 | Also, SDL's trackpad scrolling behavior on macOS is not optimal for regular GUI apps because it emulates a physical mouse wheel. This may change in a future release of SDL, but at least in 2.0.14 (and earlier) a [small patch](https://git.skyjake.fi/skyjake/lagrange/raw/branch/dev/sdl2-macos-mouse-scrolling.diff) is required to allow momentum scrolling to come through as single-pixel mouse wheel events. Note that SDL comes with an Xcode project; use the "Shared Library" target and check that you are doing a Release build. |
59 | 71 | ||
60 | ### Compiling on Windows | 72 | ### Compiling on Windows |
61 | 73 | ||