[epiar-devel] CMake files
Matthew Zweig
thezweig at gmail.com
Mon Nov 9 13:22:34 PST 2009
No need to create a seperate repository; check out git branches. I
suggest that you keep a public branch for cmake like I did for
'resources'. In fact the standard hit workflow involves never working
on the 'master' branch and always working on a branch named after the
task at hand.
I also think that we should record in the wiki and checked in build
notes that if a developer cannot use gcc or vs for some reason they
should check out your cmake branch. No reason to lose their work or
yours based off of a disagreement on compiler choice.
Thanks for the work,
~Matt
On Nov 9, 2009, at 10:01 AM, Maoserr <maoserr at gmail.com> wrote:
> Ok, I think I get the picture. Just to finalize things up, I think
> here's
> what I"m going to do
> 1) Modify all cmake scripts to run from another directory
> 2) Create a another repository for my cmake files, which I'll maintain
> separately.
>
> Just FYI, I don't think CMake is better than autotools if we're
> restraining ourselves only to GNU compilers, however VS support is a
> big
> deal for me. Right now it seems like overkill to use cmake if all
> we plan
> on support is VS though.
>
> Nonetheless, this has cause more discussion than I thought it would,
> so I
> think it's best to leave things as it is, and discuss using other
> build
> tools when/if there's a demand for more compiler support. I'm
> getting the
> impression that out of all the developers, we don't use more than GNU
> compiler and VS anyways, so maintaining vs projects and autotools
> won't be
> a big deal.
>
> On Mon, 09 Nov 2009 12:30:28 -0500, Christopher Thielen <cthielen at mac.com
> >
> wrote:
>
>> It's something arke and I have been discussing, there's a couple
>> notes
>> and issues:
>>
>> My concerns/thoughts:
>>
>> * cmake has to be installed to build it. This is not true of
>> autotools
>> (configure is a regular shell script).
>>
>> * On everything except Windows, people won't know what to do, and
>> even
>> then, some Windows programmers won't know what to do. This is a big
>> problem. We need to remain accessible if people are going to care.
>> The
>> fact that the only projects of note that seem to use it are Blender
>> and KDE4 isn't helping (and KDE was never trivial to build in the
>> first place, dozens of logical dependencies aside).
>>
>> * The only advantage to this is making a few minutes a day less work
>> for Visual Studio developers, and those few minutes will rapidly
>> diminish as we start adding fewer new files over time and instead
>> work
>> on existing code. You have to remember we're early on in the
>> project's
>> life and having to add this many new files or library dependencies
>> all
>> the time is unusual, and will get calmer over time. This is a big
>> point for me: every developer would have to learn a non-popular build
>> system for the benefit of a smaller number of people, and that
>> benefit
>> itself is only moderately-sized, e.g. "What? Linking error with this
>> updated code? Oh, there's a new .cpp file. *60 seconds later* Ok,
>> running."
>>
>> * Windows developers could avoid this problem entirely by using
>> mingw/
>> msys. I'm not forcing anybody to use it, and I know Visual Studio is
>> quite a bit better, but it's worth pointing out that the use of
>> Visual
>> Studio is causing this conversation. Maybe that's moot.
>>
>> * Most libraries on Unixes install autotools-compatible macros. Does
>> cmake support these? Otherwise, how will we get our library checks?
>> e.g. SDL comes with an autotools macro so in our configure.ac file,
>> we
>> simply say "run the SDL macro", which is made by the SDL folks to
>> check for the needed SDL headers and performs linking tests to ensure
>> it will build correctly. This is the same of libxml2 and SDL_image.
>>
>> * Why don't more projects use it? Would we be ahead of our game in
>> using it?
>>
>> All that said, using a cross-compiler build system (that's really
>> what
>> it is) seems very logical, even though we only support two compilers
>> (it would make a lot more sense if we supported Borland and
>> Metrowerks
>> and all the rest). It seems to have a few rough edges though.
>>
>> All that said, I have a very volatile opinion on matters such as
>> these, so after we release 0.1.0, I promise to look into cmake and
>> give it a more honest going over. It might be worth switching to
>> anyway, but please give me some time to get 0.1.0 out and then look
>> at
>> it.
>>
>> On Nov 9, 2009, at 8:46 AM, Maoserr wrote:
>>
>>> that's a fair point. I haven't learned autotools, and they say the
>>> best
>>> way to determine if something is good is to try it. However, I will
>>> say
>>> that when I first started writing cross platform programs I looked
>>> at a
>>> lot of discussion regarding SCon vs CMake vs Autotools vs Jam,
>>> etc. And
>>> the generally discussion seems to imply that SCon or CMake was the
>>> way to
>>> go. As of right now, I feel CMake is more than powerful enough for
>>> anything I could think of (perhaps the other tools are too). And I
>>> have
>>> no inclination to learn Autotools, because the lack of support for
>>> generating VC compiler projects/makefiles. I'm sure they work
>>> perfectly
>>> fine on linux, but as I come from an Windows background, I've always
>>> preferred the VC compilers on windows. I think it's important to
>>> support
>>> MinGW too, just because it might be more comfortable for others.
>>> And of
>>> course windows has a variety of other compilers (Watcom, DigitalMar,
>>> Borland) that cmake supports. (Unfortunately I don't think all the
>>> thirdparty libraries support those compilers, so Epiar probably
>>> won't
>>> build on those compilers, I've tried Watcom and Borland and they
>>> both
>>> failed).
>>>
>>> All the features you have described so far for autotools seem to be
>>> implemented in CMake (Checking for libraries, add dependencies,
>>> check for
>>> system conditions, partial rebuilds). CMake includes a GUI that
>>> lets the
>>> user change options too (for example, I have the CMake script on
>>> windows
>>> that lets the user choose to either search for prebuilt SDL
>>> libraries or
>>> compile them from source. If compile from source is chosen, another
>>> option gets added that lets the user choose to automatically
>>> download the
>>> source from the internet and compile it without any manual
>>> intervention.
>>> This isn't implemented in the Linux version as I don't think it's a
>>> good
>>> idea to not use the package manager.) The user can dynamically
>>> change the
>>> compiler/linker flags and keep those modifications in addition to
>>> what the
>>> developer of the cmake script set as the default.
>>>
>>> The thing i don't like about cmake is that it requires the user to
>>> have
>>> cmake installed for makefiles. So you can't just generate makefiles
>>> and
>>> distribute it with your package. On the other hand, VC projects
>>> generated
>>> seem independent and don't rely on cmake. So anyone who wants to
>>> compile
>>> your package using makefiles cannot do so without the actual cmake
>>> program
>>> installed. On the otherhand, comparing this to doing all the work
>>> of
>>> building thirdparty libraries, it might not be such a big deal.
>>>
>>> I don't know, I'd say the best way for you to decide if we should
>>> use
>>> cmake is just to try it, I'm certainly no expert on it yet, but I
>>> plan on
>>> keep using it at least for my personal builds.
>>>
>>> To be clear, I realize a lot of the chatter regarding the use of
>>> autotools
>>> are probably coming from novices who just got frustrated learning
>>> it, but
>>> it just doesn't have all the features that I want from a build tool
>>> either, so that's why I don't want to learn it, not because of the
>>> chatter.
>>>
>>> On Mon, 09 Nov 2009 11:18:43 -0500, Christopher Thielen
>>> <cthielen at mac.com
>>>>
>>> wrote:
>>>
> <snip>
>>> <snip>
> <snip>
>>>
>>>
>>> _______________________________________________
>>> epiar-devel mailing list
>>> epiar-devel at epiar.net
>>> http://epiar.net/mailman/listinfo/epiar-devel
>>
>> _______________________________________________
>> epiar-devel mailing list
>> epiar-devel at epiar.net
>> http://epiar.net/mailman/listinfo/epiar-devel
>
>
> _______________________________________________
> epiar-devel mailing list
> epiar-devel at epiar.net
> http://epiar.net/mailman/listinfo/epiar-devel
More information about the epiar-devel
mailing list