{"id":32175802,"url":"https://github.com/sarnold/cccc","last_synced_at":"2026-02-21T13:01:20.215Z","repository":{"id":34927174,"uuid":"38989749","full_name":"sarnold/cccc","owner":"sarnold","description":"Source code counter and metrics tool for C++, C, and Java","archived":false,"fork":false,"pushed_at":"2023-01-16T16:16:54.000Z","size":12033,"stargazers_count":67,"open_issues_count":18,"forks_count":20,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-10-21T19:48:47.945Z","etag":null,"topics":["complexity","complexity-metrics","metrics","posix","reports","visual-studio"],"latest_commit_sha":null,"homepage":"https://sarnold.github.io/cccc/","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/sarnold.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2015-07-13T03:37:38.000Z","updated_at":"2025-10-09T13:02:27.000Z","dependencies_parsed_at":"2023-02-10T04:35:13.022Z","dependency_job_id":null,"html_url":"https://github.com/sarnold/cccc","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/sarnold/cccc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarnold%2Fcccc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarnold%2Fcccc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarnold%2Fcccc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarnold%2Fcccc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sarnold","download_url":"https://codeload.github.com/sarnold/cccc/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sarnold%2Fcccc/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29681468,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T12:30:22.644Z","status":"ssl_error","status_checked_at":"2026-02-21T12:29:55.402Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["complexity","complexity-metrics","metrics","posix","reports","visual-studio"],"created_at":"2025-10-21T19:48:37.452Z","updated_at":"2026-02-21T13:01:19.702Z","avatar_url":"https://github.com/sarnold.png","language":"C","readme":"README for CCCC versions 3.2.x\n==============================\n\n[![Github CI](https://github.com/sarnold/cccc/actions/workflows/ci.yml/badge.svg)](https://github.com/sarnold/cccc/actions/workflows/ci.yml)\n[![Conda CI](https://github.com/sarnold/cccc/actions/workflows/conda.yml/badge.svg)](https://github.com/sarnold/cccc/actions/workflows/conda.yml)\n[![Debian packages](https://github.com/sarnold/cccc/actions/workflows/debs.yml/badge.svg)](https://github.com/sarnold/cccc/actions/workflows/debs.yml)\n[![Release CI](https://github.com/sarnold/cccc/actions/workflows/release.yml/badge.svg)](https://github.com/sarnold/cccc/actions/workflows/release.yml)\n\n[![CCCC License](https://img.shields.io/badge/license-GPL2-green.svg?dummy)](https://github.com/sarnold/cccc/blob/master/cccc/COPYING)\n![GitHub tag (latest SemVer pre-release)](https://img.shields.io/github/v/tag/sarnold/cccc?include_prereleases)\n[![Github Issues](https://img.shields.io/github/issues/sarnold/cccc)](https://github.com/sarnold/cccc/issues?q=is:issue+is:open)\n\n[![Conda Version](https://img.shields.io/conda/vn/conda-forge/cccc.svg)](https://anaconda.org/conda-forge/cccc)\n[![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/cccc.svg)](https://anaconda.org/conda-forge/cccc)\n\nThis is a maintenance update of the last (sourceforge) release of the program\nCCCC (C and C++ Code Counter).  This software performs analysis and reports\nmetrics on source code written in C, C++ and Java.  The languages Ada83 and\nAda95, which were supported in previous versions are presently not supported\n(stay tuned for updates).  The original source is still on sourceforge; the\nnew site for CCCC development is: https://github.com/sarnold/cccc and for\ncurrent documentation see: http://sarnold.github.io/cccc/\n\n* [Github Action](https://github.com/marketplace/actions/cccc-action) - Now available as a github action!\n* [Quick Install](https://github.com/sarnold/cccc/blob/master/README_install.rst) - Quick start install instructions\n* [User Guide](http://sarnold.github.io/cccc/CCCC_User_Guide.html) - User guide (updated)\n* [Release Notes](https://github.com/sarnold/cccc/blob/master/CHANGELOG.md) - Autogenerated changelog for github releases (with a little SVN history for context)\n* [Software API docs](http://sarnold.github.io/cccc/api/html/index.html) - Software API documentation with design diagrams, etc\n* [Complexity Metrics](http://sarnold.github.io/cccc/metrics/cccc.html) - Source code metrics for a source code metrics tool... ;)\n\nCCCC is a command line tool, originally implemented for Linux and other\nPOSIX-style platforms, but also buildable on the Win32 platform.  Files\nto be analyzed are listed (typically on the command line, although support\ndoes exist for the list of files to be read from standard input.  The\nprogram analyzes the files and generates a one or more reports in HTML\nor XML format on the content.\n\nThis distribution is intended to be a single package containing everything\nwhich is required to compile and install CCCC on either a POSIX or Win32\nplatform.  Whereas previous distributions contained only a single directory,\ncontaining the source code of CCCC, this distribution is divided into a number\nof subdirectories, with the following contents:\n\n* A full distribution of the Purdue Compiler Construction Toolset (PCCTS) by\n  Terence Parr and others, now maintained by Tom Moog of Polhode Inc.\n  PCCTS is required to compile CCCC: in the past the distribution has relied\n  on the existence of a PCCTS package on the compilation platform, while this\n  distribution chooses to include it as part of CCCC's own package.\n* The source of a new version of CCCC, which I hope will turn out to be more\n  efficient, accurate and useful than previous versions, although it is very\n  similar in spirit and interface.\n* The source of an accessory program called CcccDevStudioAddIn.dll which\n  provides integration between the command line CCCC program and the\n  Microsoft Visual Studio IDE (version 5.0 or 6.0).\n* A directory of minimal test cases for the command line CCCC tool.\n* Miscellaneous batch files, makefiles and Microsoft Visual Studio workspace\n  and project files to support building, testing and installing the software\n  under POSIX and Win32.\n\nCurrent versions should be installed via ebuild or built using the makefile,\nhowever, in earlier versions (3.pre-*) the recommended way of building the\nsoftware was by using the BAT and SH scripts in the top directory of the\ndistribution as appropriate for your platform.  On Win32, the script\nbuild_w32vc.bat builds the software with Microsoft Visual C++ version\n5 or 6 (locations within the script may need to be modified according\nto which you have and whether it is installed at the default position\nin the filesystem).  On Linux and similar platforms the shell script\nbuild_posixgcc.sh should still work.\n\nAs of the last upstream release (ver 3.1.4) the reference build tool for the\nWin32 platform is the freely distributed Microsoft Visual C++ Toolkit 2003.\nAs this toolkit does not contain a 'make' style program the script\nbuild_w32vct2003.bat has been written which automates all parts of the build.\n\nIf you wish to try the Visual Studio integration, there are some additional\nsteps to perform.  Within Visual Studio, select menu option \"Tools/Customize\",\nthen click on the \"Macros and AddIns\" tab.  Within this control, click on the\n\"Browse\" button, change the file type from \"*.dsm\" to \"*.dll\", browse to the\ndirectory C:\\Program Files\\CCCC, and select the CcccDevStudioAddIn.dll file\nbefore pressing \"OK\".  This should cause Visual Studio to load the add-in,\nand a tool bar should appear with four different icons containing the text\n\"C4\" and six white icons.  The fourth of the \"C4\" icons has a device like\na steering wheel on it and is used to configure the add-in.  Press this\nicon and a dialog box should appear containing 8 strings, of which the\nfirst should read \"C:\\Program Files\\CCCC\\CCCC.EXE\" and the next should\ncontain some path to Internet Explorer (IEXPLORE.EXE).  Verify that the\npath to IE is valid (or substitute a path to Netscape, Mozilla, Opera or\nany other HTML browser according to your tastes).\n\nThe add-in can now be used to run CCCC on either the current file (the \"C4\"\nicon with a \"f\" subscript), all files in the current active project (\"C4\"\nwith a \"p\" subscript), or all files in any project in the current workspace\n(\"C4\" with a \"w\" subscript).  The add-in can also have up to 6 other commands\nset in the configuration dialog defined above, which will be bound to\nthe six blank icons on the toolbar.  Each command will run in character\nmode and standard output from each should be captured and redirected to\nthe \"Macros\" tab in the Visual Studio Output window.  This may be useful\nfor programs which generate messages in the same format as the Visual\nStudio compiler error messages or Find in Files, as conformance to this\nformat allows Visual Studio to implement the convenient \"jump to source\nline\" behaviour.  I have on my list of issues for CCCC to convert the\nparser syntax error messages to this format, but it hasn't happened yet.\nThe add-in is experimental at this stage.  I am aware of some issues\nwith projects in locations with spaces in the path, and I have also found\nthat the logic I am using to deduce the home directories of .dsp and .dsw\nfiles is not always correct.\n\nThe add-in requires use of MFC libraries which are not provided as a part\nof Microsoft Visual C++ Toolkit 2003, hence it is not built by the\nbuild_w32vct2003.bat script, however the add-in should still be buildable\nusing Visual C++ or Visual Studio 5.0 or 6.0 (and is any case\nuseless to developers who don't have and IDE of this kind).\n\nAs well as the addin, the current version includes a directory which contains\na script to build a wizard-style installer for the program under Win32.\nThe binary release provides Windows start menu access to a DOS prompt\nset up with an environment to enable CCCC to be run  easily, and also\nprovides a shortcut to the HTML documentation. The  installer can be\nbuilt from the supplied scripts using the splendid free Inno Setup\nand Extensions packages by Martijn Laan (Inno Setup) and Jordan\nRussell (extensions), available from http://www.jrsoftware.org.\n\nPrevious versions of CCCC have been released like PCCTS into the public\ndomain with no restrictions, other than the pious hope that should anyone\nbase a derivative work on it I will be given due credit.  The current version\nis released under the GNU Public License (including the bundled PCCTS source).\n\nThe upcoming 3.1.5 release will be a maintenance release to clean up the build and\nmakefile config (enabling parallel make) and fix a build error with recent gcc.\nThe pccts build target \"mini\" builds only the tools required to build cccc,\nwhile the make target \"pccts\" builds the complete toolset, and \"all\" will build\ncccc and run the tests (\"metrics\" and \"docs\" targets should be obvious).\n\nSLA: Among other things, I'm grateful that Tim chose such a cool thesis, and\nalso produced some useful open source code that rarely seems to exist outside\nof (expensive) commercial engineering tools.  It has a simple CLI and other\nsupport like Jenkins plugins.  Use it to find out your own complexity metrics.\nYou might be surprised...\n\nThe above updates by Stephen L Arnold.\n\nNotes from the original author\n==============================\n\nCCCC was originally developed as a proof-of-concept tool for some ideas\nrelating to software metrics which I was investigating as an academic\nresearch project.  I have now completed the project and been awarded\nmy PhD.\n\nWith this release, I am choosing to declare the project in a dormant\nstate.  I have no plans to do further releases, either to add new features\nor to correct existing defects. I am happy to provide advice to users of\nCCCC via email, and I encourage all users to exercise the rights granted\nthem under the GPL to tinker with the code if this helps the software\nto meet their needs better.\n\nI am grateful to a number of people for assistance on this project, including\nTerence Parr and his co-workers, and Tom Moog for the development and ongoing\nmaintenance of the excellent PCCTS tool; my academic supervisor, Dr Thomas\nO'Neill; a number of developers who have contributed source patches; and\nmany people who have mailed me with constructive suggestions or merely to\nconfirm that they were using the tool. Feedback on the value or otherwise\nof CCCC will always be welcome.\n\nTim Littlefair (tim_littlefair _At_ hotmail.com) updated January 2005\n\nThis and past distributions of CCCC and related tools should be\navailable for the forseeable future from https://github.com/sarnold/cccc\nas well as the original home at http://cccc.sourceforge.net\n\n\n\n\n\n\n\n\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarnold%2Fcccc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsarnold%2Fcccc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsarnold%2Fcccc/lists"}