-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
a ready to use build file #33
Comments
Quote @firerogue in #21:
I think this would be a good idea, and if I'm right CMake has built-in facilities for that kind of thing. |
A lot of information regarding language support can be found starting from here, with some effort: It appears that several languages are available in CMake out of the box, including assembly, Fortran, Ada, D, Java and the entire Perl family (Perl, Python, Ruby, PHP). This one is very useful for C# in particular (also relevant to @BRNMan's xkcd-windows-wallpaper): Discussions from which I found the latter: My overall impression is that CMake isn't very well documented (at least not to the point in one easy to find spot), but that it might be powerful enough that we would still want to use it. |
Given what I'm trying to do with the new setup script, I think this issue can be closed. |
I disagree, because building compiled programs can be complicated and build systems like CMake exist for a reason. Writing our own build scripts from scratch would be needless effort. Moreover, I think adding a new compiled program should be accessible as possible. For that reason I think a build file still deserves some priority. I already started working on it. |
@jgonggrijp Wouldn't the changes suggested by @firerogue allow you to still use CMake/Make/an appropriate build tool per program? @firerogue Correct me if I'm wrong, but your setup script will just call the executable in
where |
I'm arguing for a decentralized build system, while @jgonggrijp is arguing My two biggest points are
@jgonggrijp's argument is that it simplifies things for first time hackers, As a nonsequitor, should we try to write a devifier (seperate script or |
I'm fine with distributed build files instead of a centralized one. However, I don't think we should just drop an old plan which somebody already started working on simply because we thought of another way to do it (unless the new plan is in a more completed state than the old one, but that's not the case here). There's nothing wrong with having two alternative plans being worked on at the same time; let's see how both develop, and then pick which one we like best. In fact, my centralized build file could be useful even if it only functions as a temporary solution until @firerogue's idea is completed. Merging is almost never a problem with Git, but I accept the second point on letting people choose which build system they want. That could also be a disadvantage though, because users will probably need to have more external dependencies installed simply to install the software. I guess time will tell; if we get annoyed because of all the build tool dependencies, we can always switch back to a centralized build system. I'm absolutely fine with a separate presentation of affairs specifically for devs. I thought we already agreed on that before! |
I know, which is why I've started suggesting things to actually do with it |
We should have something like a portable makefile, now assuming CMake, that takes care of most of the chores for those who add compiled programs to the project. The makefile itself should reside in RED_SPIDER_ROOT, any intermediate build results (including generated platform-specific makefiles) should go into the
build
directory, and installation targets should go intobin
,extbin
orlib
depending on what's being built. It should also be possible to override the latter directories. Once the makefile is ready, a hacker shouldn't need to add much more than a line of the following form in order to have their program built and installed:CMake is very powerful and this shouldn't be too hard to achieve, but I'll need to study it before I can pull it off. Some help from anyone with experience in CMake would be much appreciated.
For the commands written in an interpreted language, which are currently handled by setup.py, we can use the information from this StackOverflow answer.
The text was updated successfully, but these errors were encountered: