On Mon, Sep 10, 2012 at 6:32 PM, Lex Trotman <
ele...@gmail.com> wrote:
> Downstreams use differing variations of lexers, so they have to edit
> the cmake each time they update scintilla to match the list they
> provide.
Fair point, but there are multiple ways to solve this problem:
- Maintain a fixed list of source for the Scintilla (known) source,
and allow globbing expressions for downstream
- Continue to use fixed lists, and have the facilities in place for
downstream projects to pass in their own fixed lists, which would be
appended to the main list
- Use glob for everything (most extensible, but CMake won't be able to
detect if files were added, and thus won't automatically regenerate
its targets for you)
> Scintilla isn't usually built by itself, its built as part of building
> the application, so it has to integrate into whatever build system the
> particular app uses. And apps not using cmake would then have another
> build dependency and tool to handle. Scintilla shouldn't enforce what
> build tool the downstreams use.
As of right now, Scintilla already forces downstreams to use
make/nmake. The irony in what you are saying is that CMake actually
means more flexibility. One project won't be limited to one build
system, they can use a wide variety of build systems. IMHO, it's much
more difficult to mix makefiles + visual studio projects then it is to
mix cmake + visual studio (because, Scintilla can be setup to generate
visual studio projects, which can then be included in a downstream
project's existing solutions). Same applies to code blocks, and
especially makefiles. It's just 1 extra tool, 1 extra command to get
things going.
> Its probably always a good idea to ask before you expend effort,
> nobody is trying to offend you, but differing opinions and points of
> view mean that "good" ideas may not be well received because they
> impact others negatively.
Typically open source projects are more flexible, and are what they
are based on community contribution and ideas. I've not known them to
have an authoritative source (like a company) that would actually
reject reasonable contributions. Just seems backwards and
counter-intuitive to me, and discourages community involvement. Why
shouldn't I be able to pick up something that I think is a great idea
and just submit it, no questions asked? CMake won't interfere with
existing build pipelines, but only adds another option. As far as
maintainability is concerned, that doesn't have to be one person's
responsibility. Each would have its domain expert that maintains it -
seems easy to me.
Anyway, I couldn't work on Windows without it. I just can't deal with
Cygwin/NMake on Windows. I have some other code I want to modify to
improve the CMake lexer so this was an intermediate step for me. I
just offered it up just in case you guys would find some use in it
(but that's subjective, some people will, some won't).