thecoshman / pinkpill Goto Github PK
View Code? Open in Web Editor NEWA build system for C++ written in Perl
A build system for C++ written in Perl
Will need to add in functionality to configure a command to be run both before and after the main script is run. This will allow for the build system to be used as part of a larger system, for example, it could report the status of the build to a build server.
Need to ensure that when a .cpp is to be built, it is only done so when required. This will help prevent needless recompiles of files, and potentially avoid re-linking.
Currently the build system always links, this should be avoided.
Something akin to calling the build program in 'debug' mode. Would be nice if 'extra' options could be passed via the command line to toggle things like certain flags.
an example could be something like calling perl pinkpill.pl debug
and have the flags string contain #[debug]^DEBUG
where the '#' denotes you are wish to only match the following item if is passed via command line, and the square brackets wrap the term you wish to match. This should allow it to be combined with things like OS toggles.
Currently there is no way to tell the linker what additional libraries you wish to use. This is a bug and needs to be fixed.
Need to look at allowing the compilation of each file to split into many threads thus gaining the benefit of multiple cores.
Should probably do this via a 'max threads' variable.
When compiling files to '.o' files, they are saved to the local folder when the script is run. They should be saved to the folder that is set by 'obj_folder'.
It has been implemented for linux, but needs to also cover windows and mac static libraries too
When creating a static library, need to ensure that it is actually required.
Need reduce the amount of output that pinkpill produces. This might also need to be coupled with more control levels, such debug messages, basic messages (such as what command is about to be run), info for what stage the compilation is at and verbose. Verbose might not be required, it would be more information then info, but not as much as debug.
whilst gcc is fairly standard for linux for other platforms it is not.
The platform selection strings should be used so that you can define what compiler to use for what platforms. eg
linux^gcc win^mingw osx^mingw
Despite not logging any warnings, the stage that ensures all required folders are built is failing to create the build and object folder
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.