{"id":18378080,"url":"https://github.com/mlabbe/corefoundation","last_synced_at":"2025-04-06T22:32:08.437Z","repository":{"id":9202251,"uuid":"11010762","full_name":"mlabbe/CoreFoundation","owner":"mlabbe","description":"CoreFoundation Lite, ported to Android.  Helps port iOS apps to NDK.","archived":true,"fork":false,"pushed_at":"2013-07-05T21:51:21.000Z","size":1216,"stargazers_count":12,"open_issues_count":0,"forks_count":5,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-01T18:47:11.007Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mlabbe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-06-27T23:47:01.000Z","updated_at":"2024-12-19T16:16:44.000Z","dependencies_parsed_at":"2022-09-22T15:01:52.847Z","dependency_job_id":null,"html_url":"https://github.com/mlabbe/CoreFoundation","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/mlabbe%2FCoreFoundation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabbe%2FCoreFoundation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabbe%2FCoreFoundation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mlabbe%2FCoreFoundation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mlabbe","download_url":"https://codeload.github.com/mlabbe/CoreFoundation/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247563900,"owners_count":20958971,"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-11-06T00:31:01.796Z","updated_at":"2025-04-06T22:32:07.950Z","avatar_url":"https://github.com/mlabbe.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CoreFoundation Lite #\n\nThere are a handful of CoreFoundation Lite repos on Github and sprinkled around the Internet.  They are all out of date as of this writing.  Some of them claim compatibility with various operating systems through small patches.\n\nThis repo's initial author aims to provide Linux and Android compatibility, starting from a base of CF-744.18 (as shipped with OS X 10.8.3)\n\nContributions that bring up CFLite functionality on other platforms are welcome.\n\n\n## Compiling code on Linux ##\n\nREADME_CFLITE, as provided by Apple, contains the Linux build instructions.  If you have installed the dependencies, this is what the compile steps look like:\n\n    sudo make -f MakefileLinux install\n    cd ./Examples\n    clang plconvert.c -o plconvert -lCoreFoundation -DDEPLOYMENT_TARGET_LINUX=1\n\n## Android NDK Support ##\n\nAbsolutely no Java bindings are provided.  This code has been tested with the Android NDK, r8.  It compiles using the experimental Clang compiler, a requirement because Apple's [block extension](http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/00_Introduction.html) is required.\n\nCoreFoundation Lite for Android has two dependencies:\n\n - libBlocksRuntime, ported to Android.  Pull from [this github repo](https://github.com/StorypandaEnterprises/libBlocksRuntime)\n - icu4c, ported to Android. Pull from [this github repo](https://github.com/android/platform_external_icu4c)\n\n### Building libBlocksRuntime\n\nAdd the libBlocksRuntime directory to your include search list in your Android.mk.  Example:\n\n    LOCAL_CFLAGS += -I./libBlocksRuntime\n\nAdd `libblocksruntime` to your `LOCAL_STATIC_LIBRARIES`.  Example:\n\n    LOCAL_STATIC_LIBRARIES += libblocksruntime\n\n### Building icu4c\n\nThe Github repo described above builds icu4c's libraries as shared libraries.  CoreFoundation Lite expects static libraries.\n\nEdit `icu4c/common/Android.mk` and `icu4c/common/i18n/Android.mk` files, swapping out the shared calls with static calls.  Example:\n\n    #include $(BUILD_SHARED_LIBRARY)\n    include $(BUILD_STATIC_LIBRARY)\n\nAdd the following directories to your search path:\n\n    LOCAL_CFLAGS += ./icu4c/i18n ./icu4c/common\n\nAdd `libicui18n` and `libicuuc` to your `LOCAL_STATIC_LIBRARIES`.  Example:\n\n    LOCAL_STATIC_LIBRARIES += libicui18n libicuuc\n\n### Finally, building CoreFoundation for Android\n\nCorefoundation references include files as follows:\n\n    #include \u003cCoreFoundation/CFBase.h\u003e\n\nIf the library has been cloned to `android-project/jni/CoreFoundation`, you must add `android-project/jni` to the list of include directories.  Example:\n\n    LOCAL_CFLAGS += ./ ./CoreFoundation\n\nIn addition to the include directories, add the following CFLAGS:\n\n    LOCAL_CFLAGS += -fblocks -DDEPLOYMENT_TARGET_LINUX -DDEPLOYMENT_TARGET_ANDROID\n\nAdd `corefoundationlite` to the `LOCAL_STATIC_LIBRARIES` list.  Example:\n\n    LOCAL_STATIC_LIBRARIES += corefoundationlite\n\nRequired settings in `Application.mk`.\n\n - `APP_ABI` must omit mips for now.  Mips in unsupported.\n - `NDK_TOOLCHAIN_VERSION` must equal `clang3.1`.\n\nYou are now ready to incorporate CoreFoundation Lite code in your Android project.\n\n# What is needed / Known Issues #\n\n 1. A series of automated CFLite test cases that run on all platforms.\n 2. A developer to port this back to OS X, ensuring that nothing was broken along the way.\n 3. A maintainer who will update the core repo, merging in Apple's changes as new versions are released along the way.\n 4. While armeabi, armeabi-v7a and x86 are supported, the mips ABI is not supported in CoreFoundation.  Patches are welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlabbe%2Fcorefoundation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmlabbe%2Fcorefoundation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmlabbe%2Fcorefoundation/lists"}