{"id":13442049,"url":"https://github.com/rpavlik/cmake-modules","last_synced_at":"2026-02-08T13:03:25.775Z","repository":{"id":1116726,"uuid":"987281","full_name":"rpavlik/cmake-modules","owner":"rpavlik","description":"My collection of CMake modules","archived":false,"fork":false,"pushed_at":"2025-02-10T19:46:56.000Z","size":1322,"stargazers_count":1027,"open_issues_count":16,"forks_count":216,"subscribers_count":43,"default_branch":"main","last_synced_at":"2025-03-25T07:12:13.859Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://academic.cleardefinition.com","language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rpavlik.png","metadata":{"files":{"readme":"README.markdown","changelog":null,"contributing":null,"funding":null,"license":"LICENSES/BSD-3-Clause.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2010-10-14T15:20:52.000Z","updated_at":"2025-03-07T05:43:29.000Z","dependencies_parsed_at":"2023-07-07T20:46:19.236Z","dependency_job_id":"0d3e15c3-7c1e-45a1-966b-a5407de6d985","html_url":"https://github.com/rpavlik/cmake-modules","commit_stats":{"total_commits":404,"total_committers":33,"mean_commits":"12.242424242424242","dds":0.3935643564356436,"last_synced_commit":"14094b5ed352d96e0a919237f3018f385f980344"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/rpavlik/cmake-modules","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpavlik%2Fcmake-modules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpavlik%2Fcmake-modules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpavlik%2Fcmake-modules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpavlik%2Fcmake-modules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rpavlik","download_url":"https://codeload.github.com/rpavlik/cmake-modules/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rpavlik%2Fcmake-modules/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268351299,"owners_count":24236380,"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","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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-07-31T03:01:41.088Z","updated_at":"2026-02-08T13:03:25.689Z","avatar_url":"https://github.com/rpavlik.png","language":"CMake","readme":"# Rylie's CMake Modules Collection\n\nRylie Pavlik, Ph.D.\n\n\u003crylie@ryliepavlik.com\u003e\n\n\u003chttps://ryliepavlik.com/\u003e\n\n\u003c!--\nCopyright 2009-2014, Iowa State University\nCopyright 2014-2017, Sensics, Inc.\nCopyright 2011-2020, Contributors\nCopyright 2018-2023, Collabora, Ltd.\nCopyright 2009-2023, Rylie Pavlik\n\nSPDX-License-Identifier: BSL-1.0\n--\u003e\n\n## Introduction\n\nThis is a collection of CMake modules that I've produced during the course\nof a variety of software development.  There are a number of find modules,\nespecially for virtual reality and physical simulation packages, some utility\nmodules of more general interest, and some patches or workarounds for\n(very old versions of) CMake itself.\n\nEach module is generally documented, and depending on how busy I was\nwhen I created it, the documentation can be fairly complete.\n\nBy now, it also includes contributions both from open-source projects I work on,\nas well as friendly strangers on the Internet contributing their modules. I am\nvery grateful for improvements/fixes/pull requests! As usual, contributions to\nfiles are assumed to be under the same license as they were offered to you\n(incoming == outgoing), and any new files must have proper copyright and SPDX\nlicense identifer headers.\n\n## How to Integrate\n\nHow would you like to use these? Some of the modules, particularly older ones,\nhave a number of internal dependencies, and thus would be best placed wholesale\ninto a `cmake` subdirectory of your project source. Otherwise, you may consider\njust picking the subset you prefer into such a `cmake` subdirectory.\n\n### All Modules\n\nIf you use Git, try installing [git-subtree][1] (included by default on\nGit for Windows and perhaps for your Linux distro, especially post-1.9.1), so\nyou can easily use this repository for subtree merges, updating simply.\n\nFor the initial checkout:\n\n```sh\ncd yourprojectdir\n\ngit subtree add --squash --prefix=cmake https://github.com/rpavlik/cmake-modules.git main\n```\n\nFor updates:\n\n```sh\ncd yourprojectdir\n\ngit subtree pull --squash --prefix=cmake https://github.com/rpavlik/cmake-modules.git main\n```\n\nIf you originally installed this by just copying the files, you'll sadly have to\ndelete the directory, commit that, then do the `git subtree add`. Annoying, but\nI don't know a workaround. (Alternately you can use the method described below,\nfor the \"subset of modules\", to update.)\n\nIf you use some other version control, you can export a copy of this directory\nwithout the git metadata by calling:\n\n```sh\n./export-to-directory.sh ../yourprojectdir/cmake\n```\n\nYou might also consider exporting to a temp directory and merging changes, since\nthis will not overwrite by default.  You can pass -f to overwrite existing files.\n\n### Just a few modules\n\nMany newer modules don't have any or many internal dependencies. You can review\nthem to look for any `include(` statements or other things that increase the\nfiles used (e.g. `configure_file(`, `file(READ`, `file(GENERATE`), and make sure\nyou copy those too.\n\nIf this is how you originally started using these modules, then running the\nfollowing from within a clone of this repo will automatically update any files.\n**Be sure you have committed any local changes in your project first to avoid\npotentially losing work!**\n\n```sh\n./update-modules.sh ../yourprojectdir/cmake/\n```\n\nNote that the script is not smart enough to know about changed dependent\nscripts/files, nor about scripts with matching names but not originating in this\nproject (it just looks at file names/paths), so manually review the diff before\ncommitting in your project.\n\n## How to Use\n\nAt the minimum, all you have to do is add a line like this near the top\nof your root CMakeLists.txt file (but not before your `project()` call):\n\n```cmake\nlist(APPEND CMAKE_MODULE_PATH \"${CMAKE_CURRENT_SOURCE_DIR}/cmake\")\n```\n\nYou might also want the extra automatic features/fixes included with the\nmodules, for that, just add another line following the first one:\n\n```cmake\ninclude(UseBackportedModules)\n```\n\nFor more information on individual modules, look at the files themselves: they\nshould all start with a comment.\n\n## Licenses\n\nThe modules that I wrote myself are all subject to this license:\n\n\u003e Copyright 2009-2014, Iowa State University.\n\u003e or Copyright 2014-2017, Sensics, Inc.,\n\u003e or Copyright 2018-2023, Collabora, Ltd.,\n\u003e or Copyright 2009-2023, Rylie Pavlik\n\u003e\n\u003e Distributed under the Boost Software License, Version 1.0.\n\u003e\n\u003e (See accompanying file `LICENSE_1_0.txt` or copy at\n\u003e \u003chttp://www.boost.org/LICENSE_1_0.txt\u003e)\n\nModules based on those included with CMake are under the OSI-approved BSD\nlicense, which is included in each of those modules. A few other modules are\nmodified from other sources - when in doubt, look at the `.cmake` file - each\nfile has correct licensing information.\n\nIf you'd like to contribute, that would be great! Just make sure to include\nthe license boilerplate in your module, and send a pull request.\n\n## Important License Note\n\nIf you find this file inside of another project, rather at the top-level\ndirectory, you're in a separate project that is making use of these modules.\nThat separate project can (and probably does) have its own license specifics.\n\n[1]: https://github.com/git/git/tree/main/contrib/subtree  \"Git Subtree upstream\"\n","funding_links":[],"categories":["CMake","Modules"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frpavlik%2Fcmake-modules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frpavlik%2Fcmake-modules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frpavlik%2Fcmake-modules/lists"}