{"id":23459560,"url":"https://github.com/d-led/premake-meta-cpp","last_synced_at":"2025-04-14T04:15:07.575Z","repository":{"id":11258031,"uuid":"13659407","full_name":"d-led/premake-meta-cpp","owner":"d-led","description":"a quickstart infrastructure for cross-platform c++ makefile and solution generation","archived":false,"fork":false,"pushed_at":"2020-04-01T22:00:19.000Z","size":8127,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T04:15:00.036Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d-led.png","metadata":{"files":{"readme":"README.md","changelog":null,"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":"2013-10-17T19:50:25.000Z","updated_at":"2025-03-22T06:25:30.000Z","dependencies_parsed_at":"2022-08-29T04:30:58.714Z","dependency_job_id":null,"html_url":"https://github.com/d-led/premake-meta-cpp","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-led%2Fpremake-meta-cpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-led%2Fpremake-meta-cpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-led%2Fpremake-meta-cpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-led%2Fpremake-meta-cpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d-led","download_url":"https://codeload.github.com/d-led/premake-meta-cpp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248819408,"owners_count":21166477,"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-12-24T06:15:41.496Z","updated_at":"2025-04-14T04:15:07.541Z","avatar_url":"https://github.com/d-led.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"premake patterns\n================\n\nFor most of my c++ projects I use [premake](http://premake.github.io/) as the meta-build system to generate platform-specific build files. This project is a collection of repeated patterns extracted from various projects to speed up the initial build environment setup.\n\nI could have used [automake](http://www.gnu.org/software/automake/), [cmake](http://www.cmake.org/) or [QMake](http://qt-project.org/doc/qt-5.0/qtdoc/qmake-project-files.html), but the eunoia of [Lua](http://www.lua.org/), having only one small executable as your pocket knife is just too appealing.\n\nThis project includes premake binaries and is build around premake, but is otherwise not affiliated with premake development. Its primary goal is providing a number of patterns for build file locations and similar simplifications.\n\nThis repository should look somewhat different, as premake5 makes many things much easier.\n\na quick start\n-------------\n\nAssuming, you include this project as a submodule or just copy it into the folder `premake`, with one file `test.cpp` that you want to build, prepare a `premake4.lua` file with the following contents in the root folder:\n\n```lua\ninclude 'premake'\n\nmake_solution 'test'\nmake_console_app('test', { 'test.cpp' }) \nuse_standard('c++11') \n```\n\ncalling `premake/premake4 gmake` in Linux will create makefiles in the folder `Build/linux/gmake`. \n\n#### customizing ####\n\na global table `config` is available for customization. I.e.\n\n`config.location_pattern = [[CustomBuild/%o/%v/%t]]`\n\nbefore `make_solution` will customize the build file location to `CustomBuild/[os name]/[os version]/[toolchain]`. Check out [`config.lua`](config.lua) for other customization options. \n\nan example project\n------------------\n\nHere's a project using this component: [selfdestructing](https://github.com/d-led/selfdestructing).\n\npremake\n-------\n\nCheck out [premake](https://premake.github.io/) for more info, license and copyrights.\n\nBinaries for Windows, Linux and Mac OS X are included in this project. See the official [premake](https://premake.github.io/) website if you want to build it or install a different version of it yourself.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-led%2Fpremake-meta-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd-led%2Fpremake-meta-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-led%2Fpremake-meta-cpp/lists"}