[Bf-committers] CMake Build Changes

Dave Plater dplater at webafrica.org.za
Sun Mar 6 16:11:00 CET 2011

On 03/06/2011 11:12 AM, Campbell Barton wrote:
> Writing to notify of some changes I plan to make to CMake build system
> soon (this week).
> The main change is that the install target will be used so "make
> install" is needed to copy scripts, python etc into CMake's bin/
> directory.
> *** Only continue reading if your interested in WHY ***
> At the moment we are using system copy commands which don't give good
> control, at the moment files are copied then find is used to remove
> for eg, on windows .svn dirs are copied.
> The install target gives a more useful options for copying, with
> correct permissions, creates dirs automatic and this is generally how
> installation is expected to be done.
> Currently we have a non-standard WITH_INSTALL option, once the install
> target is used correctly this isn't needed, devs can just not bother
> with 'make install' if they run blender from the source dir.
> On Unix/Linux (but not Apple), there is still the case where you can
> either do a portable install or a system install into /usr/bin/,
> /usr/share/blender... etc.
> For this case I've added an option WITH_INSTALL_PORTABLE, Enabled by
> default, when disabled the files will be installed into the system
> directories.
To save me some future pain, atm I use "make DESTDIR=%{buildroot}
install" which unlike scons very neatly installs everything into the
right place in the directory hierarchy which will be incorporated into
the rpm. Which option will give me the same result,
-DWITH_INSTALL_PORTABLE=yes or no? I understand from what you have said
that "-DWITH_INSTALL_PORTABLE=no" is correct.
My other question is now you have proper control over permissions there
were a couple of .py files with shebangs (#!/usr/bin/env python) and
0644 permissions can I expect this to be fixed? ATM I use this in my
spec file :
# Fix any .py files with shebangs and wrong permissions.
if test -z `find %{buildroot} -name *.py -perm 0644 -print0|xargs -0r
grep -l '#!'`; \
then break;
else chmod -f 0755 `find %{buildroot} -name *.py -perm 0644
-print0|xargs -0r grep -l '#!'`; \

Will I be able to remove it and treat an executable with non executable
permissions as a bug?

Dave P

> I can test this for linux/win32-mingw/win32-msvc but not apple so to
> start with I'll leave this configuration as-is and get a apple user to
> test before applying these changes.
> This isn't a big task but writing since it changes how CMake builds work.

More information about the Bf-committers mailing list