Quoting Sebastien:

> It it's not broken, dont fix it.
> - it works for its intended purposes
> - it is pretty complex
> - ALL USERS have become used to it

Sebastien, what tools are you using for development? Make has such poor
support for any tooling.
Some IDE's understand it partially, some not at all. By using Make we are
rejecting all the help
that IDE's offer. NuttX code base is too large to work efficiently without
it. Complex is not
a feature I think. Yes, people are used to it, because they have to. The
same way one can
get used to winter or to walk in uncomfortable shoes.

> No one will understand the build system anymore

I have been looking at the current Make solution for the last few years and
I wouldn't
say I understand or control it either.

Quoting Alin:

> I like the cmake idea but we should also consider that cmake will have
implications on all projects
> that use the NuttX as a base for the SDK or custom projects.

I am still stuck with NuttX 7.31 because of changes in the Make build
system, so I understand
what you are saying. My projects are small and I still don't have resources
to migrate applications.
I cannot even imagine how big of a burden it is, for developers of larger
frameworks, but it shouldn't
block progress. I think CMake will pay off over time.

Quoting Nathan

> Can't a CMake build be an OPTIONAL component for people who want to use
it?

Quoting Matias

> Maintaining two build systems in parallel does not really make sense to
me.

Matias, just a question, does your work so far collide much with the
current Make build system.
I could take your branch and put the previous solution back next to your
changes. It is hard to
convince people to switch until they see that something works well.

Quoting Juha

> There is no problem to solve here but potential for massive breakage and
extra burden
> on companies using NuttX to develop real products.

This is suggesting that everyone who considers CMake a good idea is an
amateur.
Yes, every change is a burden, but when projects don't develop, the look...
well,
like a Make build system.

Quoting Ken

> CMake is horrible. Don't do it. It's hard to use for beginners, and
> hard to use for anyone who isn't just a strong advocate for it.

Yea I don't like it either, I don't like either Make or CMake. I don't
think that anyone likes
them because they are just building systems, they are boring and
unrewarding.
But regarding beginners, I think you are wrong. One opens a project that
uses CMake
in an IDE and it works. Open a project that uses Make and it doesn't. After
spending
a lot of time trying to make it work, it is fine, but it is never perfect.
Everyone who starts
using NuttX needs to go through this. This is an unnecessary steep learning
curve.
We could say that this way, we filter out inexperienced people from
producing noise
in GitHub issues and the Internet in general, but with such an attitude it
would be
not right to call it an open source project anymore.

Quoting Alexander

> We cannot get rid of the make in one commit. If we want CMake, it should
> grow alongside the make.

I agree.

Quoting Fotis

> For me, cmake would be a no.
> The reasons are greatly outlined by Sebastien.
> However, I am not very experienced with it. (I just never liked it...)

If I don't have experience with something I usually don't express my
opinion.
Don't feel that I am attacking you much, I just don't understand how this
is a valid argument. Maybe you are just modest. It is hard to claim to be
experienced with something even after many years of working with it.
Yes, I also don't like CMake :) but I know what it brings, so I am fully in
favor of it.

Quoting Matias

> I find it particularly striking
> that the original e-mail from Xiang was sent two months ago
> requesting others to express any concern and no one responded until
> today.

This is exactly what I thought when I read it. If some people didn't like it
why did they wait for so long? I have a feeling that they didn't believe
that
you would actually manage to do it :)

>From my side, I am trying to not express my opinion if I don't have time to
make
any real contribution. In this case I didn't have time to help, so I kept
silent.

> I will therefore will not continue working on this
> (you can delete the branch)

Come on Matias, no need to behave like this. Also you should wait for the
Earth
to rotate a bit, so all people involved can wake up, think about it,
finally argue
a bit with each other. But I understand your disappointment when reading
this.

I would help you with CMake if I wouldn't be working 14 hours a day trying
to finish delayed projects. Yet I was looking forward to a day when I could
finally use it.

In general I feel like you have a good hunch about good solutions
and I am using a lot of them, either trying to update NuttX to a version
where
you already added something or cherry-picking like crazy. I think that you
are doing a good job with CMake here. You definitely shouldn't scrap what
you did so far.

There is one dream about NuttX that I was trying to accomplish a few times.
To have some packaging system like npm/cargo/pip and a website where
people can submit their applications to share them with others. For this
additional standardisation is needed. CMake offers standardisation and
beter modularisation. I was waiting for your solution to try again.

Don't like CMake but it is good, it works. I was searching hard but
couldn't find
anything better than this. Make is primitive. It would be simple and
transparent,
but it is already not, because of the size and complexity of NuttX code
base.
So I don't see a reason why stick to it. I fully understood why Greg didn't
want it
a few years ago. But I don't understand why there is so much opposition now.

Finally, what other projects like Zephyr or ESP-SDK are using. It is CMake
isn't it?
People behind them must be very unreasonable to do so.


Am Mi., 9. Juni 2021 um 22:09 Uhr schrieb David S. Alessio <
david.s.ales...@gmail.com>:

>
>
> > On Jun 9, 2021, at 12:20 PM, Brennan Ashton <bash...@brennanashton.com>
> wrote:
> >
> > On Wed, Jun 9, 2021, 11:04 AM Fotis Panagiotopoulos <f.j.pa...@gmail.com
> >
> > wrote:
> >
> >> For me, cmake would be a no.
> >> The reasons are greatly outlined by Sebastien.
> >>
> >> However, I am not very experienced with it. (I just never liked it...)
> >> Are there any hard advantages that would justify such a migration?
> >>
> >> Are there things that can only be done in cmake, or that are so much
> easier
> >> that it is worth it?
> >> Does it have any special features that we need or definitely want?
> >>
> >
> > So for me here is the short list:
> >
> > The builds a much much faster especially for incremental builds. This is
> > even more true for non Linux environments. This is a big deal for testing
> > as well as for the individual developer.
> >
> > We continue to have to handle issues around OS specific things for paths
> > and scripting tools. For some of this we currently have to carry custom
> > tools to help and those tools are not know outside of the project.
> >
> > Some of our custom tools like mkdeps fall short especially when trying to
> > integrate third party libraries.  We can continue to invest in our tools
> > here or use things that already exist and are well tested.  This has
> been a
> > huge pain getting things like LTP integrated to improve our testing.
> >
> > IDE support. While you can certainly use and IDE with NuttX at it exists
> > today, it is not aware of the build system in any reasonable way which
> does
> > make integration harder.
> >
> > Management of build settings and overrides. These are possible today but
> > much harder to keep consistent across all the different builds as we
> > continue to see.
> >
> >
> > That all said if people are not onboard it's not worth half doing. I have
> > been supportive, but I do not want to push this on people.
>
> Isn’t it possible to try CMake before completely moving over to it?  This
> way people new to CMake can give it a try, play with it, and become
> familiar with it before rejecting it.  I think both make system can
> coexist, but if not, then offer CMake as a top-level patch, i.e.
> Switch-to-CMake.patch that’s applied to the NuttX top level tree.  I’m not
> suggesting this as a permanent mechanism, just during the
> test-before-transition stage.
>
> Assumption: I don’t believe anyone is suggesting changing or eliminating
> KConfig.  Am I right?
>
> As I see it, CMake would adopt and eliminate a number of pernicious
> problems with the existing gmake build system.  Here are a few:
> The “C” is for Cross-platform, it’s designed to manage host OS and target
> differences
> Windoze filename conventions and variations: Windoze native, Cygwin, etc.
> The use of gmake’s functions, especially “foreach” makes it difficult
> [impossible?] to properly and completely capture dependancies in a way that
> works for parallel builds.  In any case, we haven’t yet succeeded in
> getting parallel builds to work correctly (they sometimes work).
> It supports multiple generators like Xcode, Eclipse, Visual Studio, etc.
>
> For many people new to CMake, CMake is different, and for that reason
> alone it’s bad.  The first few times I had to use it, I hated it.  While I
> can’t say I love it [yet?], I have come to appreciate it.  I believe that
> once it’s implemented, people will realize its value in removing the
> multi-platform headaches and fewer build system breakages.
>
> Just my $0.025.
>
>
>
>
>
>

Reply via email to