-
-
Notifications
You must be signed in to change notification settings - Fork 93
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
build(binding): add universal macOS ARM64 dylib and static FreeType c…
…ompilation - Static FreeType linking flow for all OS - Flow to build universal binaries for macOS (x86_64, aarch64) - Simplified CI workflow by removing FreeType branches from the build matrix Added 2 new scripts: 1. `buildSrc/scripts/vendor_freetype.sh` 2. `buildSrc/scripts/build.sh` The first script prepares FreeType for usage in the build process. The result of this script is used in the `GenerateLibs` task. Other ways of building with FreeType are removed. If it's impossible to build with FreeType, it is recommended to set `freetype=false`. The second script aggregates commands to build native binaries. It includes specific steps, such as creating a universal library for macOS and copying the result to the specific folder `/tmp/imgui/dst`. Script 1 can be used for local builds. Script 2 is primarily intended for use in CI.
- Loading branch information
Showing
16 changed files
with
423 additions
and
220 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,37 @@ | ||
Folder contains libraries used by the binding and `binding.sha1` sum of the `imgui-binding/src/main` directory libraries has been built upon. | ||
### Overview | ||
|
||
Provide `imgui.library.path` (or `java.library.path`) VM option to the folder with one of those file (ex: `-Dimgui.library.path=./folder/path`). | ||
In the same way you can use 'java.library.path' option instead. | ||
The folder contains libraries used by the binding and the `binding.sha1` checksum for the `imgui-binding/src/main` directory that the libraries are built upon. These libraries are utilized during the release process. | ||
|
||
By default, binding expects `imgui-java64` file name. | ||
You can change that by using `imgui.library.name` VM option (ex: `-Dimgui.library.name=custom-lib-name.dll`). | ||
### Specifying the Library Path | ||
|
||
To specify the folder containing these files, provide the `imgui.library.path` (or `java.library.path`) VM option. For example: | ||
``` | ||
-Dimgui.library.path=./folder/path | ||
``` | ||
You can also use the `java.library.path` option in the same manner. | ||
|
||
### Changing the Library Name | ||
|
||
By default, the binding expects the file name `imgui-java64`. You can change this by using the `imgui.library.name` VM option. For example: | ||
``` | ||
-Dimgui.library.name=custom-lib-name.dll | ||
``` | ||
|
||
### Expected Library File Names | ||
|
||
The expected library file names for different operating systems are: | ||
|
||
| OS | Library | | ||
|---------|-----------------------| | ||
| Windows | imgui-java64.dll | | ||
| Linux | libimgui-java64.so | | ||
| macOS | libimgui-java64.dylib | | ||
|
||
Freetype directory contains same libraries, but with Freetype support. | ||
### Additional Information | ||
|
||
- All libraries include statically compiled **FreeType**. | ||
- The macOS version is a universal library and support x86_64 and arm64 architectures. | ||
|
||
### Continuous Integration | ||
|
||
Hash sum in the `binding.sha1` file is used in CI to see, if there is a need to update native binaries. | ||
The hash sum in the `binding.sha1` file is used in continuous integration (CI) to determine if there is a need to update the native binaries. |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Oops, something went wrong.