Poll

Which development tools do you use?

Image#1 (square pixel, 1:1)
6 (27.3%)
Image#2 (non-square pixel, 1:1:2)
2 (9.1%)
MinGW
1 (4.5%)
Code::Blocks
0 (0%)
Eclipse
2 (9.1%)
Xcode
2 (9.1%)
Makefile
0 (0%)
CMake
3 (13.6%)
Autotools
2 (9.1%)
Other
4 (18.2%)

Total Members Voted: 22

Author Topic: Which development tools do you use?  (Read 26773 times)

Offline SupSuper

  • Lazy Developer
  • Administrator
  • Commander
  • *****
  • Posts: 2162
    • View Profile
Re: Which development tools do you use?
« Reply #15 on: November 14, 2011, 02:20:28 pm »
You don't need to do that. You can perfectly edit the CMakeLists.txt from visual and just build your project normally. Visual Sutdio project will be rebuilt automatically. Tweaking the build is only needed, when you generate the project for the first time.
CMake and Visual Studio don't tend to play well together.

I guess that depend what you called users. I understand your point for developpers. But normal users won't compile openxcom, they just want precompiled binaries.
Most Linux users prefer to compile it themselves, probably because precompiled binaries don't play well with all the different distros and setups out there.

Sorry, I didn't mean to be a PITA, I just wanted to make sure everyone understood what your intention was, so that you'd get meaningful responses.

1. Some IDEs support CMake, either out-of-the-box or by adding a plugin. Perhaps you can let your IDE take care of those changes for you.

2. It's not that hard, and if your IDE supports it, it's even easier. I'd be motivated to learn it if it meant reducing the amount of work I have to do for supporting the people who want to compile my code.
AFAIK there are no such solutions for Visual Studio. And well I'm not completely clueless, if push comes to shove I will dig around the files to tweak and fix something, but more often than not the contributors handling the CMake/Autotools do a much better job than me.

3. It's your project. F*** them ;) Seriously, you will always find some resistance, whatver choice you make, and unless you want to support every major tool in existance - which you don't, that being the exact purpose of this poll - you will always have some people unhappy with something. But you can always accept contributions from them, in order to unofficially support their platform of choice. Just drop their build files somewhere in "build/<platform>/*.*" and that's it. Personally I don't like that, because it will eventually mean that those build files will be out of sync with the project, and someone will make a fuss about it. But apart from having a big team and people dedicated to maintaining those build feils, I think that's the only sane way of supporting a lot of platforms.

Raúl

Well I'm one of those people. ;) I'm primarily a Windows developer (a capital OSS offense!), so I could just maintain a VS project and f*** the rest, but that wouldn't be very nice. :P

And that's pretty much how it works right now. Most "secondary" build tools like CMake/Autotools scripts are maintained by outside contributors, and I'd love to just leave it all in their capable hands but eventually the code updates faster than the tools and if someone is using them I have to step in myself and keep everything in sync.

It probably doesn't help that I haven't been able to keep up with Linux support, since my distro is currently broken and I only have enough experience to put out a binary that apparently only works on my machine, so whenever there's an issue there I'm pretty much helpless. Maybe someone would be interested in keeping all these things in check for me and make proper binaries and packages and what not?

Offline borfast

  • Squaddie
  • *
  • Posts: 3
    • View Profile
Re: Which development tools do you use?
« Reply #16 on: November 14, 2011, 04:23:44 pm »
To tell you the truth, I don't like CMake either. I do find it easier to understand than the unholy mess that a Makefile is but it's far from perfect. To tell you the truth, the best (i.e. easier to understand and use) system I've seen so far is Scons (https://www.scons.org/). Last time I used it (a few years ago) it wasn't supported by many (if any) IDEs but that seems to be changing: https://www.scons.org/wiki/IDEIntegration
If you don't know it, check it out, you may find it interesting. :)

But that's where the problem starts and that's what I was talking about before: everyone has his/her favourite build tool but you need to select just one that everyone can use - even if they don't like it. I don't like autotools/autoconf but I've been using it for years. I don't like cmake either but I've used it quite a lot as well. But in both cases, I've used them more as an end-user than as a developer, and I think this is the important point: end-users will be able to compile the code without needing to fiddle with the build scripts, so the chosen build tools should be the ones that you, the developer, are more comfortable with, because even if the end-user doesn't like that specific tool for development, he/she won't have to deal with it and will only need to execute a few of commands to run it.

Offline gchevallereau

  • Sergeant
  • **
  • Posts: 41
    • View Profile
Re: Which development tools do you use?
« Reply #17 on: November 14, 2011, 10:07:23 pm »
Quote
On the other hand CMake syntax is way more uglier than the autotools
Funny, i have the exact opposite opinion. I think it's a matter of taste  ;)

Quote
and currently it does not work/install all the files up to the linux standart (yes i could fix that, but autotools can do that out of the box right away).
I'm sure that the build work(maybe not on MacOS). About installation, i can't see any missing file. Do you have a specific example ?

Quote
The autotools also bring you powers of awesome packaging for release. Just try running "./autogen.sh && ./configure && make dist" and you will get proper tarballs that you can put on some webspace for release
Code: [Select]
mkdir build ; cd build ; cmake .. && make && cpack -G DEB && cpack -G RPMAutomatic package generation for Windows/Linux(and MacOS, once i have acces to a mac).

Quote
CMake and Visual Studio don't tend to play well together.
Strange, I have seen it work at my previous job. Might be a version problem(VS 2010 against VS 2008).

Quote
Most Linux users prefer to compile it themselves, probably because precompiled binaries don't play well with all the different distros and setups out there.
Apart from Gentoo/LFS user, i'm sure that what Linux(and BSD people) wants is an OpenXcom package available in their repositery.  So they can use the power of their package managers to install it.
By the way, the linux auto builder generate ZIP and Debian package each time a build is successful. Might be interesting to make them available. It also build the documentation.

Quote
AFAIK there are no such solutions for Visual Studio. And well I'm not completely clueless, if push comes to shove I will dig around the files to tweak and fix something, but more often than not the contributors handling the CMake/Autotools do a much better job than me.
The benefits of experience  ;)

Quote
Last time I used it (a few years ago) it wasn't supported by many (if any) IDEs but that seems to be changing: https://www.scons.org/wiki/IDEIntegration
If you don't know it, check it out, you may find it interesting.
I didn't know that scons now support IDE. interresting

Quote
so the chosen build tools should be the ones that you, the developer, are more comfortable with, because even if the end-user doesn't like that specific tool for development, he/she won't have to deal with it and will only need to execute a few of commands to run it.
Agreed, if someone want to use source package, there is not so much difference between
Code: [Select]
./configure && make && make installand
Code: [Select]
cmake . && make && make install

Offline DaiShiva

  • Sergeant
  • **
  • Posts: 39
    • View Profile
Re: Which development tools do you use?
« Reply #18 on: November 15, 2011, 09:41:44 pm »
The thing I hated about scons was that it is a python script. As a win32 user this was a huge PITA in order to get it working and not something I wanted as part of my development environment. CMake was much better in this reguard (fairly lightweight).

The thing I *hate* about cmake is the developers' unwillingness to code in support to generate a build (makefile/visual studio/xcode) that wont try to regenerate itself (run cmake during the build process). I also dont like that when I change the cmake file and build (from VS) it has to reload itself about three times before it settles down. Maybe the newer revisions of cmake has fixed this. I never got the feeling from the mailing list that kitware had any interest in decoupling their generated solutions from their tool.

Despite all those issues I have with cmake, I still would use it over rolling my own build solution any day. It is excellent at making a makefile that does 90% of what I need, and its fairly trivial to add the missing flags for a specific platform.

Premake (https://industriousone.com/premake) is what I want to look into whenever I have time to see if I can replace cmake. I like that it uses lua for its input scripts, and I like that it just generates a project that contains no dependencies.
« Last Edit: November 15, 2011, 09:45:56 pm by DaiShiva »

Offline SupSuper

  • Lazy Developer
  • Administrator
  • Commander
  • *****
  • Posts: 2162
    • View Profile
Re: Which development tools do you use?
« Reply #19 on: November 16, 2011, 05:15:15 pm »
I like how we went from disagreeing on supporting everyone to disagreeing on supporting nobody. (exaggerating of course :P)

The thing I *hate* about cmake is the developers' unwillingness to code in support to generate a build (makefile/visual studio/xcode) that wont try to regenerate itself (run cmake during the build process). I also dont like that when I change the cmake file and build (from VS) it has to reload itself about three times before it settles down. Maybe the newer revisions of cmake has fixed this. I never got the feeling from the mailing list that kitware had any interest in decoupling their generated solutions from their tool.
It still does this (this is what I meant with VS and CMake not playing well). VS doesn't handle massive reloads well, and CMake regenerates the project during compiling even though VS can't reload the project during compiling, so VS tends to just give up and crash.

Also personally I don't like how the generated projects come out, CMake adds a whole bunch of extra options and stuff which I have no clue what it does or doesn't even make sense, in the end there's so much going through CMake I'm not sure what the project does anymore.
« Last Edit: November 16, 2011, 05:18:33 pm by SupSuper »

Offline gchevallereau

  • Sergeant
  • **
  • Posts: 41
    • View Profile
Re: Which development tools do you use?
« Reply #20 on: November 16, 2011, 09:38:17 pm »
Quote
The thing I *hate* about cmake is the developers' unwillingness to code in support to generate a build (makefile/visual studio/xcode) that wont try to regenerate itself (run cmake during the build process).
Well, I disagree. Not doing this might end up with a broken build(for example, missing object file at link time).

Quote
It still does this (this is what I meant with VS and CMake not playing well). VS doesn't handle massive reloads well, and CMake regenerates the project during compiling even though VS can't reload the project during compiling, so VS tends to just give up and crash.
Question: which version of VS are you using ? Express ? Pro ?  Because, i guess that the explanation. CMake use visual studio macro to handle the project reloading in VS. But those macro only work in pro version.

Quote
Also personally I don't like how the generated projects come out, CMake adds a whole bunch of extra options and stuff which I have no clue what it does or doesn't even make sense, in the end there's so much going through CMake I'm not sure what the project does anymore.
I'm not sure what you are talking about. CMake options or visual studio projects(zero_check, ...) ? If needed i can put an explanation somewhere.


Offline alienjon

  • Sergeant
  • **
  • Posts: 12
    • View Profile
    • Cybernetic Pit-Stop
Re: Which development tools do you use?
« Reply #21 on: December 13, 2011, 04:03:00 am »
Eclipse representin'  8)

On a related note, I noticed that the wiki is looking for details on compiling in various platforms and that Eclipse hasn't been done yet.  Anyone planning on doing this?  I've now worked with this program in both Linux (Gentoo & Ubuntu) and Windows w/ MinGW, and as it's been a while since I've trolled the OpenXcom code/project I wouldn't mind getting a bit more involved again.

On an also related note: SupSuper.  A while back I noted that I was using Eclipse and included my .cproject and .project files in a Git push.  I've since discovered that's a bad idea (I've been working on one of my own projects - sorry for the haitus :-/).  Apparently they note system-specific information (ie: mingw32-make for Windows (instead of make for Linux) as well as library specific positions.  I don't know if anything came of it after we spoke last time, but I wanted to pass that along.