{"id":15570806,"url":"https://github.com/keith/staticindexstore","last_synced_at":"2025-10-08T08:53:12.186Z","repository":{"id":58900054,"uuid":"452792098","full_name":"keith/StaticIndexStore","owner":"keith","description":"A static archive of libIndexStore.dylib","archived":false,"fork":false,"pushed_at":"2025-01-14T05:13:56.000Z","size":7,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-16T22:43:16.645Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Shell","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/keith.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":"2022-01-27T18:09:43.000Z","updated_at":"2023-09-08T18:31:02.000Z","dependencies_parsed_at":"2022-09-13T06:02:26.661Z","dependency_job_id":null,"html_url":"https://github.com/keith/StaticIndexStore","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keith%2FStaticIndexStore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keith%2FStaticIndexStore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keith%2FStaticIndexStore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keith%2FStaticIndexStore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keith","download_url":"https://codeload.github.com/keith/StaticIndexStore/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235053746,"owners_count":18928440,"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-10-02T17:44:57.155Z","updated_at":"2025-10-03T00:31:11.743Z","avatar_url":"https://github.com/keith.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# StaticIndexStore\n\nThis is distribution of `libIndexStore.dylib` from\n[`apple/llvm-project`](https://github.com/apple/llvm-project) as a\nstatic archive. This way you do not have to add a non-portable rpath in\nyour binaries to Xcode internals or distribute the library alongside\nyour tool.\n\n# Usage\n\nSee [the releases\npage](https://github.com/keith/StaticIndexStore/releases) to get the\nright version based on your version of Xcode / Swift.\n\nWith Swift Package Manager you can use the `.binaryTarget` type with\nthis:\n\n```swift\ntargets: [\n    // Some targets\n    .binaryTarget(\n        name: \"libIndexStore\",\n        url: \"See releases page\",\n        checksum: \"See releases page\"\n    ),\n],\n```\n\nThen add `libIndexStore` to the `dependencies` of another target.\n\nIf you want to use this without Swift Package Manager you can download\nthe xcframework and use the internal `libIndexStore.framework` however\nyou'd normally include dependencies.\n\n## Building\n\nTo create a new release for this project follow these steps:\n\n- Clone [`apple/llvm-project`](https://github.com/apple/llvm-project)\n  and checkout the branch you want to build from\n- Cherry pick the most recent commit from the releases page, or use the\n  `example.patch` checked into this repo as a starting point\n- Create a `build` directory in the root of the repo\n- Run cmake with something like `cmake ../llvm -G Ninja\n  -DLLVM_ENABLE_PROJECTS='clang;clang-tools-extra'\n  -DCMAKE_BUILD_TYPE=Release -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0\n  -DLLVM_ENABLE_LTO=Thin -DCMAKE_OSX_ARCHITECTURES='x86_64;arm64'`\n- Run `ninja libIndexStore.dylib`\n- Run `create-xcframework.sh binary` to create the combined framework\n\n## Notes\n\n- This method doesn't actually produce a static binary, but it produces\n  a relocatable object file which is similar enough for this use case.\n  This is because cmake cannot create distributable static library\n  targets that include all of their nested dependencies\n- Be sure to pass `-dead_strip` to your linker when linking this library\n  with a binary to save on binary size (you likely already are)\n- Depending on how you're building your tools, you might be better off\n  using cmake and depending on this target manually in your build. See\n  [index-import](https://github.com/MobileNativeFoundation/index-import)\n  for an example\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeith%2Fstaticindexstore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeith%2Fstaticindexstore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeith%2Fstaticindexstore/lists"}