{"id":13726698,"url":"https://github.com/EduardoRFS/reason-mobile","last_synced_at":"2025-05-07T22:30:28.732Z","repository":{"id":44629692,"uuid":"243386643","full_name":"EduardoRFS/reason-mobile","owner":"EduardoRFS","description":null,"archived":false,"fork":false,"pushed_at":"2022-02-03T15:17:02.000Z","size":354,"stargazers_count":174,"open_issues_count":12,"forks_count":10,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-05-03T04:52:25.208Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Reason","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EduardoRFS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-02-26T23:20:56.000Z","updated_at":"2024-11-05T00:48:25.000Z","dependencies_parsed_at":"2022-08-19T13:31:35.823Z","dependency_job_id":null,"html_url":"https://github.com/EduardoRFS/reason-mobile","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EduardoRFS%2Freason-mobile","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EduardoRFS%2Freason-mobile/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EduardoRFS%2Freason-mobile/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EduardoRFS%2Freason-mobile/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EduardoRFS","download_url":"https://codeload.github.com/EduardoRFS/reason-mobile/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252965069,"owners_count":21832817,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T01:03:17.009Z","updated_at":"2025-05-07T22:30:28.090Z","avatar_url":"https://github.com/EduardoRFS.png","language":"Reason","funding_links":[],"categories":["Reason"],"sub_categories":[],"readme":"# ReasonML Mobile\n\nThis repository is designed to provide tooling's to cross compile OCaml and ReasonML to Android and iOS. But it also should work for any platform including Linux and Windows.\n\n## Requirements\n\n- esy@0.6.10\n- bash\n\n**warning, esy@0.6.10 actually matters**\n\n## Example\n\nTo compile the hello-reason project for android arm64:\n\n```sh\n## build for host\ncd hello-reason\nesy\n\n## generate the wrapper\nesy add -D generate@EduardoRFS/reason-mobile:generate.json\nesy generate android.arm64\n\n## build for android.arm64\nesy @android.arm64\n```\n\nAs most esy projects the binary will be available at `#{self.target_dir}`\n\n```sh\nesy @android.arm64 file \"#{self.target_dir}/default.android.arm64/bin/hello.exe\"\n```\n\n## Status\n\nCurrently a couple of big projects can be built with small or zero changes, `esy` itself can also be built using this project, allowing it to run inside Android, iOS or any Linux box with a musl and static build.\n\n### Android\n\nBoth `android.arm64` and `android.x86_64` are supposed to work out of box, as it has no dependency in the system and will download the toolchain from `android.ndk`.\n\n### iOS\n\nOn macOS it requires the Xcode SDK, install Xcode for that.\nOn Linux it requires `cctools-ports` installed globally and the SDK in the right path at `/Applications`\n\nWith that done, `ios.arm64` and `ios.simulator.x86_64` should work\n\n### Linux Musl\n\nFor macOS you should follow this `https://github.com/FiloSottile/homebrew-musl-cross`\nIf you have `aarch64-linux-musl-gcc`, `linux.musl.arm64` should work\nIf you have `x86_64-linux-musl-gcc`, `linux.musl.x86_64` should work\n\nFor Linux both should work out of the box, as it will download the toolchain from `https://musl.cc/`\n\n## What it is\n\n### Generate\n\nA package for esy that will automagically generate the needed assets to cross compile using esy.\n\n### Patches\n\nA collection of patches designed to solve packages that aren't solved by the hacks implemented on the generate or are package specific, like the cstubs who cannot be generated in a cross compilation environment, we use the host ones to solve the problem.\n\n### Sysroot\n\nAn esy package, making the compiler + sysroot available to esy. Currently we target the following environments\n\n| OS            | ARCH   | ENV    |\n| ------------- | ------ | ------ |\n| Android       | arm64  | 24     |\n| Android       | x86_64 | 24     |\n| iOS           | arm64  | 17.7.0 |\n| iOS.simulator | x86_64 | 17.7.0 |\n| Linux         | arm64  | musl   |\n| Linux         | x86_64 | musl   |\n| macOS         | arm64  | 20.1.0 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEduardoRFS%2Freason-mobile","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEduardoRFS%2Freason-mobile","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEduardoRFS%2Freason-mobile/lists"}