{"id":20990311,"url":"https://github.com/patrickgold/icu4c-android","last_synced_at":"2025-05-14T19:31:55.740Z","repository":{"id":105865369,"uuid":"382390800","full_name":"patrickgold/icu4c-android","owner":"patrickgold","description":"Cross-compile ICU4C for Android NDK projects","archived":false,"fork":false,"pushed_at":"2023-12-26T14:17:13.000Z","size":67,"stargazers_count":6,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-05-02T02:27:01.448Z","etag":null,"topics":["android-ndk","icu","icu4c","icu4c-library"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/patrickgold.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,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-07-02T15:38:38.000Z","updated_at":"2024-05-02T02:27:01.450Z","dependencies_parsed_at":null,"dependency_job_id":"26df66e5-73f6-4812-a243-d035844160e8","html_url":"https://github.com/patrickgold/icu4c-android","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/patrickgold%2Ficu4c-android","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickgold%2Ficu4c-android/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickgold%2Ficu4c-android/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickgold%2Ficu4c-android/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patrickgold","download_url":"https://codeload.github.com/patrickgold/icu4c-android/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225306619,"owners_count":17453635,"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":["android-ndk","icu","icu4c","icu4c-library"],"created_at":"2024-11-19T06:28:53.030Z","updated_at":"2024-11-19T06:28:53.841Z","avatar_url":"https://github.com/patrickgold.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"**This project is out-dated and not maintained anymore, please refer to [florisboard/icu4c](https://github.com/florisboard/icu4c), where the cross-compiling has been implemented mostly using cmake.**\n\n---\n\n# icu4c-android\n\nWIP project for cross-compiling of ICU4C for Android NDK projects.\n\n## How to use\n\n### Requirements\n\n- Host OS: 64-bit linux* or darwin*, if you are on Windows you can try\n  using WSL\n- Android NDK r19 or newer (it won't work with older versions!!)\n- `realpath` for working with paths (should be installed on any modern distro)\n- ICU source code (either use the source code from the submodule or download\n  a source code archive and unpack it)\n\n### Usage\n\nA simple usage of the script, which will build ICU for arm and arm64 and\ninstall them to the default location, is shown below:\n\n```\n$ chmod +x cc-icu4c.sh\n$ ./cc-icu4c.sh build --arch=arm,arm64 --library-type=static\n```\n\nThere are a lot of configuration options available, see below or use\n```\n$ ./cc-icu4c.sh build --help\n```\nto get the list of available options. Note: the `clean` action as well as the `--lib-*` options currently do nothing.\n\n### Help output\n\n```\nUsage: ./cc-icu4c.sh \u003caction\u003e [options]\n\nGeneral options:\n    --help          print this message (or specific help if \u003caction\u003e is defined) and exits\n    --version       print the version and exits\n\nActions:\n    build           builds the ICU library\n    clean           cleans the build dir\n\nOptions for build action:\n    --arch=arch1,arch2,...      comma-separated list of architectures to build the ICU library for. Supported\n                                architectures: arm, arm64, x86 and x86_64. default=arm64\n    --api=level                 minimum Android API level. default=23\n    --build-dir=path            path to the build output dir. default=./build\n    --icu-src-dir=path          path to the ICU4C source dir. default=./icu/icu4c\n    --install-include-dir=path  path to the output dir for the include files. default=./build/install/include\n    --install-libs-dir=path     path to the output dir for the library (and data) files. default=./build/install/libs\n    --ndk-dir=path              path to the NDK installation. If not defined, this script attempts to find the path\n                                on its own. default=\n\n    --lib-data=yes|no           if the 'data' library should be built. default=yes [NYI]\n    --lib-i18n=yes|no           if the 'i18n' library should be built. default=no [NYI]\n    --lib-io=yes|no             if the 'io' library should be built. default=no\n    --lib-tu=yes|no             if the 'tu' library should be built. default=no [NYI]\n    --lib-uc=yes|no             if the 'uc' library should be built. default=yes [NYI]\n\n    --library-type=value        specify the library type. Possible values:\n        shared      shared library (.dll/.so/etc.) (default)\n        static      static library (.a/.lib/etc.)\n    --library-bits=bits         specify the bits to use for the library (32, 64, 64else32, nochange). default=nochange\n    --library-suffix=suffix     tag a suffix to the library names. default=\n\n    --data-filter-file=path     specify a filter JSON file to reduce ICU data size. default=\n                                See https://unicode-org.github.io/icu/userguide/icu_data/buildtool.html for more info.\n    --data-packaging            specify how to package ICU data. Possible values:\n        files       raw files (.res, etc)\n        archive     build a single icudtXX.dat file\n        shared      shared library (.dll/.so/etc.)\n        static      static library (.a/.lib/etc.)\n        auto        build shared if possible (default)\n\n    --require-PIC[=yes|no]      if a static library is built, specifies if the compiler flag -fPIC (Position\n                                Independent Code) should be set. default=yes\n\n    --enable-FEATURE[=yes|no]   enable/disable a FEATURE (list below)\n    --enable-collation          turn on collation and collation-based string search. default=yes\n    --enable-draft              enable draft APIs (and internal APIs). default=yes\n    --enable-formatting         turn on all formatting and calendar/timezone services. default=yes\n    --enable-legacy-converters  enable legacy converters (everything apart from UTF, CESU-8, SCSU, BOCU-1, US-ASCII,\n                                and ISO-8859-1). default=no\n    --enable-regex              turn on the regular expression functionality. default=yes\n    --enable-samples            build ICU samples. default=no\n    --enable-tests              build ICU tests. default=no\n    --enable-transliteration    turn on script-to-script transliteration. default=yes\n```\n\n## Attribution\n\nThe following sources have helped a lot to write this script:\n- https://unicode-org.github.io/icu/userguide/icu4c/build.html\n- https://unicode-org.github.io/icu/userguide/icu4c/packaging.html#reduce-the-number-of-libraries-used\n- https://unicode-org.github.io/icu-docs/apidoc/released/icu4c/uconfig_8h.html\n- https://unicode-org.github.io/icu/userguide/icu_data/buildtool.html\n- https://developer.android.com/ndk/guides/other_build_systems\n- https://github.com/NanoMichael/cross_compile_icu4c_for_android\n\n## License\n\n```\nCopyright 2021 Patrick Goldinger\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickgold%2Ficu4c-android","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatrickgold%2Ficu4c-android","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickgold%2Ficu4c-android/lists"}