Message: previous - next
Month: January 2012

Re: [trinity-devel] cmake options

From: Darrell Anderson <humanreadable@...>
Date: Sun, 8 Jan 2012 11:51:29 -0800 (PST)
> It is mainly a novice builder/user usability problem; i.e.
> if we need to
> manually enable all features then there should be a
> universal, simple way
> to get a listing of all features that can be enabled. 
> Opening the
> CMakeLists.txt file and reading the entire thing does not
> count. ;-)

I agree that the experience and knowledge of packagers will vary and I'm a good example. :) I'm still learning.

A deeper problem is without a simple way to enable all build options there is no way to test all the features. Each distro is different. Developers and packagers are inclined to test only what applies to their distro. If all build options were enabled as the default, yes, developers and packagers would see immediate build failures because various dependency packages are not installed, etc. That's good for raising awareness. The worst that happens with enabling everything as a default is with each such build "failure" developers and packagers have to disable those build options until they are happy.

Enabling all options as the default helps developers and packagers know what is going on. I don't think ccmake will help the same way the simple option of ./configure --help did. Enabling all build options as the default exposes everything immediately.

Or as Bruce mentions, some kind of stdout of which options are enabled and which are not.

This ties into a point I raised some time ago about quality assurance testing. We are the upstream supply for the Trinity sources. We don't have a quality assurance plan for developers and packagers to follow. When we don't test all the various build options then that reflects on us when others downstream use those options and the build fails. We need a way to test all build options and respective usability features.

An example of this shortfall is the problems people have building KOffice. GraphicsMagick is not a standard package installation in many distros and thus, is not tested by many people. Those who did install that package ran into build problems.

I'm more or less one of the "back breakers" who finds these types of bugs. That is what I do when I test Trinity packages. I enjoy doing that kind of work to help the project. :) I don't mind doing this kind of testing but we need a way to easily enable all build options.

Another thing that seem to commonly break with building packages is not looking in /usr/include subdirectories for header files. To me that should be automatic, whether or not cmake supports that by default.

Once in a blue moon I see this same problem in *.cpp and *.h files where a header include is hard-coded to /usr/include and has no if-then to look for a subdirectory.