{"id":13755847,"url":"https://github.com/Eyescale/CMake","last_synced_at":"2025-05-10T02:33:16.951Z","repository":{"id":2775009,"uuid":"3774178","full_name":"Eyescale/CMake","owner":"Eyescale","description":"Common CMake modules","archived":false,"fork":false,"pushed_at":"2023-12-05T09:07:13.000Z","size":3887,"stargazers_count":156,"open_issues_count":12,"forks_count":71,"subscribers_count":17,"default_branch":"master","last_synced_at":"2024-11-16T11:33:23.211Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"CMake","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/Eyescale.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE.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":"2012-03-20T10:50:06.000Z","updated_at":"2024-10-30T18:30:34.000Z","dependencies_parsed_at":"2022-09-10T03:44:52.340Z","dependency_job_id":"f525b57b-b53a-42ce-abcb-8030b4fad143","html_url":"https://github.com/Eyescale/CMake","commit_stats":{"total_commits":1431,"total_committers":46,"mean_commits":"31.108695652173914","dds":0.6177498252969951,"last_synced_commit":"f5651546b0d3036cebb61cea1293d2b3f1bedb2e"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eyescale%2FCMake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eyescale%2FCMake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eyescale%2FCMake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Eyescale%2FCMake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Eyescale","download_url":"https://codeload.github.com/Eyescale/CMake/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253354490,"owners_count":21895437,"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-03T11:00:31.626Z","updated_at":"2025-05-10T02:33:16.346Z","avatar_url":"https://github.com/Eyescale.png","language":"CMake","readme":"# CMake Modules\n\nThis repository contains common CMake modules and a collection of find scripts\nto locate non-CMake dependencies. The recommended way to use it is:\n\n## As a git submodule\n\nIn your project source dir, do:\n\n    git submodule add https://github.com/Eyescale/CMake CMake/common\n\nAnd include it in the top-level CMakeLists.txt as follows:\n\n    list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake/common)\n    include(Common)\n\n## Documentation\n\nThe following CMake modules can be included in your project:\n\n* [Common](Common.cmake) does a common CMake setup, and also includes:\n    * [CommonLibrary](CommonLibrary.cmake) *common_library* function to build a\n      (shared) library using a standard recipe and generates header files for\n      the library (api.h, version.h).\n    * [CommonApplication](CommonApplication.cmake) *common_application*\n      function to build an application using a standard recipe.\n    * [CommonFindPackage](CommonFindPackage.cmake) *common_find_package* for\n      more convenience over find_package and *common_find_package_post* (must be\n      last after all common_find_package calls) to generate defines.h and\n      options.cmake for feature checking.\n    * [CommonCompiler](CommonCompiler.cmake): Default compiler flags (including\n      C++14) and useful default warnings can be set on given target to\n      common_compile_options(); automatically applied for targets created with\n      common_application() and common_library()\n    * [CommonHelp](CommonHelp.cmake) *common_help* function to create a\n      documentation page from an application's --help output.\n    * [GitInfo](GitInfo.cmake) sets variables with information about the git\n      source tree.\n    * [GitTargets](GitTargets.cmake) *branch*, *cut*, *tag*, *erase*, *retag*,\n      *tarball* targets.\n* [CommonCTest](CommonCTest.cmake) should be included from a tests subfolder.\n      Does a common CTest setup, automatically adding all .cpp files in the\n      current folder as unit tests to a *tests* target. It also includes:\n    * [CommonCoverage](CommonCoverage.cmake) *coverage* target to generate a\n      code coverage report as html, if COMMON_ENABLE_COVERAGE option is set.\n      Additional compiler flags are set in that case, so it should be enabled\n      only for debug builds.\n    * [CommonCheckTargets](CommonCheckTargets.cmake) adds test targets for\n      various static code checkers if the COMMON_ENABLE_STATIC_TESTS option is\n      set.\n    * [CommonCPPCheck](CommonCPPCheck.cmake): *cppcheck* target for\n      static code analysis. Also adds all cppcheck targets to *tests* target.\n    * [CommonClangCheck](CommonClangCheck.cmake): *clangcheck* target for\n      clang-check code analysis. Adds all clangcheck targets to *tests* if\n      COMMON_ENABLE_CLANGCHECK_TESTS is set.\n* [CommonPackageConfig](CommonPackageConfig.cmake) generates cmake package\n  information files for the project. These files let other CMake-based projects\n  locate it through find_package (in config mode, without the need for a finder\n  script). Must be included at the end of the CMakeLists.txt, after all targets\n  have been added via common_library() and common_application().\n* [CommonCPack](CommonCPack.cmake) Configures the CPack package generator to\n  redistribute the project as an installable package. Also includes\n  CommonPackageConfig.\n* [DoxygenRule](DoxygenRule.cmake): *doxygen* target to build documentation into\n  PROJECT_BINARY_DIR/doc. Optional *doxycopy* target to copy the results to\n  ../GITHUB_ORGANIZATION/Project-M.m/. Must be included after all other targets.\n* [SubProject](SubProject.cmake): This module is automatically included in\n  Common.cmake to build several CMake subprojects (which may depend on each\n  other), which are declared in a .gitsubprojects file.\n  To be compatible with the SubProject feature, (sub)projects might need to\n  adapt their CMake scripts. Generally, CMAKE_BINARY_DIR should be changed to\n  PROJECT_BINARY_DIR and CMAKE_SOURCE_DIR should be changed to\n  PROJECT_SOURCE_DIR. See [SubProject](SubProject.cmake) documentation for\n  more details.\n  A simple example project can be found at\n  https://github.com/Eyescale/Collage.git, and a more complex one at\n  https://github.com/BlueBrain/Brayns.git.\n\nAdditional features:\n* [InstallDependencies](InstallDependencies.cmake) lets users install known\n  system packages during the initial configuration by doing\n  \"cmake -DINSTALL_PACKAGES=1\".\n  This is only implemented for Linux distributions using apt-get and yum\n  package managers and MacPorts in OS X. The actual support depends on the\n  project declaring its dependencies for each particular case.\n* [CommonGraph](CommonGraph.cmake) adds *graphs* target to generate .png tree\n  view of dependencies, gathered by CommonFindPackage and SubProject.\n\n[Detailed Change Log](CHANGES.md)\n","funding_links":[],"categories":["CMake","Modules"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEyescale%2FCMake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FEyescale%2FCMake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FEyescale%2FCMake/lists"}