{"id":16876919,"url":"https://github.com/nsubiron/configure-pyz","last_synced_at":"2026-05-20T09:09:49.415Z","repository":{"id":22209621,"uuid":"25542249","full_name":"nsubiron/configure-pyz","owner":"nsubiron","description":"Simple C++ build system for gcc and clang compilers.","archived":false,"fork":false,"pushed_at":"2018-04-18T16:28:55.000Z","size":72,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-25T06:41:12.339Z","etag":null,"topics":["build-system","build-tool","clang","cpp","gcc"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nsubiron.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":"2014-10-21T19:43:21.000Z","updated_at":"2018-05-30T15:56:35.000Z","dependencies_parsed_at":"2022-08-20T23:50:32.341Z","dependency_job_id":null,"html_url":"https://github.com/nsubiron/configure-pyz","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsubiron%2Fconfigure-pyz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsubiron%2Fconfigure-pyz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsubiron%2Fconfigure-pyz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nsubiron%2Fconfigure-pyz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nsubiron","download_url":"https://codeload.github.com/nsubiron/configure-pyz/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244554135,"owners_count":20471173,"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":["build-system","build-tool","clang","cpp","gcc"],"created_at":"2024-10-13T15:40:56.573Z","updated_at":"2026-05-20T09:09:44.377Z","avatar_url":"https://github.com/nsubiron.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"configure.pyz\n=============\n\nSimple C++ build system for gcc and clang compilers.\n\nMeant to quickly set up and build a C++ project for testing or prototyping.\n\nFeatures\n\n  * Fast build with ninja\n  * Makefile\n  * Doxygen documentation\n  * Sublime Text project files\n  * CodeBlocks project files (experimental)\n  * Embedder (experimental)\n\nCreating a project from scratch\n-------------------------------\n\nconfigure.pyz comes with a handy command to initialize a folder with a template\n\"Hello World\" project\n\n    $ mkdir new_project \u0026\u0026 cd new_project\n    $ configure.pyz --hello-world\n    $ make \u0026\u0026 ./bin/hello-world\n    Hello World!\n\nIt generates the minimal default configuration to build a project with\nconfigure.pyz\n\n  * A \"source\" folder with a C++ \"Hello World\".\n  * A sample `targets.json` for the given code.\n  * A `configure.yaml` with a default build configuration for the project.\n  * A build.ninja and a Makefile to build the project.\n\nMinimal example (existing project with dependencies)\n----------------------------------------------------\n\nSay you have a project structured as\n\n    your_project/\n      source/\n        your_static_lib/\n          some_files.cpp\n          ...\n        your_executable/\n          main.cpp\n\nwhere \"your_executable\" depends on \"your_static_lib\", and perhaps needs to be\nlinked against boost system.\n\nThe next step is to add some `targets.json` to the folders containing the main\nfunction of an  executable. In this example, it is enough to add one to\n\"your_executable\" folder. A typical `targets.json` would look like\n\n```json\n{\n\t\"targets\": [\n\t\t{\n\t\t\t\"target_name\": \"your_application_name\",\n\t\t\t\"type\": \"executable\",\n\t\t\t\"dependencies\": [\"your_static_lib.a\", \"-lboost_system\"]\n\t\t}\n\t]\n}\n```\n\nNote we added \"your_static_lib.a\" as a dependency. By default, any folder\ncontaining C++ source files it is recognized as static library, and\nconfigure.pyz will generate the targets for compiling as such.\n\nRun configure.pyz\n\n    $ configure.pyz -g --makefile\n\nThis generates a `configure.yaml` file containing a defaulted build\nconfiguration, a build.ninja file, and a convenience Makefile with common rules.\n\nIf your code is stored under a folder called \"source\" directly under your root\nproject, the configuration is most probably done. If not, tweak the generated\n`configure.yaml` for your needs.\n\nOnce the configuration is done, you can use the Makefile to build the project\nand generate other useful resources\n\n    $ make            # build release configuration.\n    $ make debug      # build debug configuration.\n    $ make doxygen    # build Doxygen documentation.\n    $ make sublime    # create a Sublime Text project file.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnsubiron%2Fconfigure-pyz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnsubiron%2Fconfigure-pyz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnsubiron%2Fconfigure-pyz/lists"}