{"id":13342813,"url":"https://github.com/samdmarshall/pyconfig","last_synced_at":"2026-03-08T06:32:47.809Z","repository":{"id":142006326,"uuid":"59035912","full_name":"samdmarshall/pyconfig","owner":"samdmarshall","description":"A tool for generating xcconfig files from a simple DSL ","archived":false,"fork":false,"pushed_at":"2020-02-07T06:17:59.000Z","size":376,"stargazers_count":48,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"develop","last_synced_at":"2026-01-15T15:31:35.285Z","etag":null,"topics":["dsl","python","xcconfig","xcode"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/samdmarshall.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"LICENSE","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":"2016-05-17T15:40:59.000Z","updated_at":"2023-02-13T01:08:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"14eecfdc-db7e-4eb5-a264-cfa72fa45879","html_url":"https://github.com/samdmarshall/pyconfig","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/samdmarshall/pyconfig","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdmarshall%2Fpyconfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdmarshall%2Fpyconfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdmarshall%2Fpyconfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdmarshall%2Fpyconfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/samdmarshall","download_url":"https://codeload.github.com/samdmarshall/pyconfig/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/samdmarshall%2Fpyconfig/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30247363,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T05:41:50.788Z","status":"ssl_error","status_checked_at":"2026-03-08T05:41:39.075Z","response_time":56,"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":["dsl","python","xcconfig","xcode"],"created_at":"2024-07-29T19:30:04.074Z","updated_at":"2026-03-08T06:32:47.792Z","avatar_url":"https://github.com/samdmarshall.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"pyconfig \n========\n\n[![Code Climate](https://img.shields.io/codeclimate/github/samdmarshall/pyconfig.svg)](https://codeclimate.com/github/samdmarshall/pyconfig)\n[![Test Coverage](https://img.shields.io/codeclimate/coverage/github/samdmarshall/pyconfig.svg)](https://codeclimate.com/github/samdmarshall/pyconfig/coverage)\n[![CircleCI branch](https://img.shields.io/circleci/project/samdmarshall/pyconfig/develop.svg)](https://circleci.com/gh/samdmarshall/pyconfig/tree/develop)\n[![Dependency Status](https://dependencyci.com/github/samdmarshall/pyconfig/badge)](https://dependencyci.com/github/samdmarshall/pyconfig)\n\n**pyconfig** is a tool that allows you to write the contents of your [`.xcconfig` files](http://pewpewthespells.com/blog/xcconfig_guide.html) in a simple and more expressive language and have them be generated prior to building a target in Xcode. \n\n\n## Contributing and Code of Conduct [![License](https://img.shields.io/badge/License-3--Clause%20BSD-blue.svg)](./LICENSE)\nThis project and related material has a Code of Conduct that is listed in the [contributing.md](./contributing.md) file. This must be read and adhered to when interacting with this project. Additionally this code is released under a 3-clause BSD license that you can read [here](./LICENSE).\n\n\n## Requirements ![Python](https://img.shields.io/badge/Python2-2.7.10-brightgreen.svg) ![Python](https://img.shields.io/badge/Python3-3.6.0-brightgreen.svg)\nThis tool is built and tested against Python 2.7.10 and 3.6.0. \n\n   Module | Version\n----------|-----------\npyparsing | \u003e=2.0.1\n\nNote: All of these modules come as part of the system Python installation for OS X (which is 2.7.10 as of 10.11.5), but you will have to install them yourself if necessary on other systems. These modules can be accquired through `pip install`.\n\n\n## Installation [![homebrew](https://img.shields.io/badge/homebrew-v1.1.3-brightgreen.svg)](https://github.com/samdmarshall/homebrew-formulae) [![homebrew](https://img.shields.io/badge/homebrew-HEAD-orange.svg)](https://github.com/samdmarshall/homebrew-formulae)\nVia [homebrew](http://brew.sh):\n\n\t$ brew update\n\t$ brew tap samdmarshall/formulae\n\t$ brew install samdmarshall/formulae/pyconfig\n\nTo install the tool from the repo, clone from Github then run the respective `make` command for the desired version.\n\n### Installing for Python 2\n\n\t$ make build2\n\n### Installing for Python 3\n\n\t$ make build3\n\n\n## Usage\nTo use **pyconfig** to generate an `.xcconfig` file, you will have to pass it a path as input:\n\n\t$ pyconfig \u003cfile path to the configuration file or directory\u003e\n\nThere are a number of flags that can be passed to modify the behavior of **pyconfig**:\n\n   Flags | Usage\n-------------------|-----------------------------------------------------------\n`--version`        | Displays the version of **pyconfig** and exits\n`--scheme \u003cname\u003e`  | Add additional variable defined as `SCHEME_NAME = \u003cname\u003e`\n`--no-analyze`     | Skip the analysis step of processing the `.pyconfig` files\n`--dry-run`        | Do not write any output files\n`--quiet`          | Silences all logging output\n`--verbose`        | Logs additional information\n`--scm-info \u003ctype\u003e`| Write an additional `.xcconfig` file that contains information from the source control management software for versioning\n\n\n## Syntax\nOne of the greatest benefits to using `.xcconfig` files are part of your build process is that they make the configuration of build settings be represented inside of a human-readable plain-text file rather than being part of the Xcode project's `.pbxproj` file. For the documentation on the DSL syntax please refer to the [wiki](../../wiki), which is located at the docs directory of this repo.\n\n# Future Plans\nI hope to be able to further enhance the capabilities of this tool to make the management of the `.xcconfig` files easy and understandable to newcomers. If you have an idea as to how to better extend this tool you should open a new issue to discuss it.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamdmarshall%2Fpyconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsamdmarshall%2Fpyconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsamdmarshall%2Fpyconfig/lists"}