POV-Ray : Newsgroups : povray.programming : Interested in CMake support (build system, IDE integration) : Re: Interested in CMake support (build system, IDE integration) Server Time
23 Feb 2024 17:21:18 EST (-0500)
  Re: Interested in CMake support (build system, IDE integration)  
From: ideasman42
Date: 14 Nov 2013 05:05:02
Message: <web.52849f09dc6ec276c5155ae40@news.povray.org>
Le_Forgeron <lef### [at] freefr> wrote:
> Le 14/11/2013 08:49, ideasman42 a écrit :
> > Hi, I read on the recent github page that supporting IDE's (not just MSVC) is
> > high priority for Povray.
> >
> > I maintain CMake build-system for Blender and have found it excellent for
> > MSVC/Eclipse/QtCreator/Netbeans/KDevelop (XCode works well apparently though I
> > don't use OSX).
> >
> > This also allows you to use Ninja (rather then gnu-make) which can give very
> > fast builds.
> >
> >
> > While the syntax of the CMake is a little strange, overall the build system
> > works very well in my experience, other projects such as LLVM/Clang, BRL-CAD,
> > OpenImageIO, OpenShadingLanguage - are using CMake too.
> >
> > Is it worth me getting CMake setup for Povray? - if you guys are not interested
> > I would rather not spend time on it.
>
> My 0.02c:
>  1. Is the gnu-make broken ? Do not fix unless it's broken.

gnu-make works fine.

>  2. From experience with eclipse, povray is rather "simple": compile
> everything that is relevant and link as a single binary (smart part is
> excluding from hierarchy the porting part that are not relevant to the
> target)

Yep, CMake can do this, only include paths that are build in the projectfiles,
sometimes I just load in all source though since it can be better for
refactoring not to miss function calls on other platforms --- this may be a bit
personal preference too.

>  3. Fast build: I do not care, I build 6 different version of povray on
> my home system (3 compilers(gcc, clang and intel), official and personal
> code) and that might happen only once per month or less (but I enjoy
> "make -j 15" for the speedup... but that's my system). When I'm in a
> loop of compilation, usually it's for a new extension, and make only
> recompile what has been touched. (until it reachs my syntax error)

I think you missed my point, Its not that gnu-make is bad, rather using CMake
(which is a meta-buildsystem which generates build files for make/ninja/msvc)
means you're not tied to using one and can get the benefits of other
buildsystems, even though speed may not be an issue its still nice to use a fast
buildsystem in my experience.

>  4. The tricky part is mainly running configure when extracting the
> tarball, nothing related to makefile.
>
> Now, the previous points apply to a unix/linux system.
>
> I do not know if the Windows part is happy with the MSVC projects (or
> whatever they now named the IDE). But the official one has graphical
> interface not available in unix, so factoring on makefile seems futile.

Done well, CMake can be used to generate MSVC project files to save you the
hassle of maintaining them and committing them into your source.

> On my linux usage, there is basically a single target for make: generate
> the binary. All others secondary target are, to me, mainly irrelevant
> (make, make clean and make distclean is basically all I need. Sometime
> make check, and make install)
>
> I do not know for the Mac port either, which so far is kindly provided
> by Yvo Smellenbergh.


Well, I wrote this because I read that IDE support was important but I get the
impression you personally dont think so?

Nevertheless - Just because you may not need all that CMake offers, if nothing
else it still saves you from having to maintain makefiles and msvc project files
(which can be a pain when you consider different versions of MSVC need their own
project files).
IDE support is an added bonus but you can ignore it too if its not interesting
to you.


I rather not try to convince povray devs too much, I just thought I could set
this up over a weekend if you guys are interested - and help maintain a little
until Povray devs get the hang of things.

> --
> Just because nobody complains does not mean all parachutes are perfect.


Post a reply to this message

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.