$include_dir="/home/hyper-archives/boost-cmake/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [Boost-cmake] 1.40.0.cmake5 (?) builds cleanly
From: troy d. straszheim (troy_at_[hidden])
Date: 2009-11-03 09:00:59
Denis Arnaud wrote:
> I forgot to mention that I still have to apply two patches (provided in
> attachment, but also available on my Fedora page:
> http://denisarnaud.fedorapeople.org/boost/1.40.0/10/) to alter the
> configuration of CMake.
> a) One is to uncomment the SOVERSION line (which, from my understanding,
> is reported to fail on some platforms such as Mac), so that sonames can
> be generated in the right way.
> b) The other patch is to avoid building binaries (e.g., bcp, inspect).
> As I have included all the possible combinations (BUILD_TESTS=NONE,
> BUILD_BCP=OFF, etc), it should work for many versions of Boost-CMak
the individual BUILD_* options for tools are long gone.
BUILD_TOOLS=NONE should do it:
% cmake ..
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
...
--
-- Skipping config of tools since BUILD_TOOLS is "NONE"
--
-- Configuring done
-- Generating done
> Now, may I suggest a few enhancements, from a Fedora packaging perspective?
>
Yes, this is all good stuff. Keep it coming.
> 1. To enable the installation of the Boost libraries into the /usr/lib64
> directory on 64bit Linux platforms, I currently use the
> "-DBOOST_INSTALL_LIB_SUBDIR_NAME=lib64" directive.
>
> On Fedora, the RPM cmake-macro uses the "-DLIB_SUFFIX=64" directive
> (https://fedoraproject.org/wiki/Packaging:Cmake#RPM_Macros), though some
> suggest (https://fedoraproject.org/wiki/PackagingDrafts/cmake) to
> replace it by the "-DLIB_INSTALL_DIR:PATH=%{_libdir}" directive (where
> %{_libdir} is equal to either /usr/lib or /usr/lib64, depending on the
> platform).
>
> So, I'd suggest that Boost-CMake supports one of those, as apparently
> KDE4 does (http://listarchives.boost.org/boost-cmake/2009/10/0670.php).
Ingmar Vanhassel pointed this out, it is on the 1.40 branch:
% git branch -l
* 1.40.0
% grep BOOST_INSTALL_LIB **/*.cmake
% grep LIB_SUFFIX **/*.cmake
BoostConfig.cmake:set(LIB_SUFFIX "" CACHE STRING "Name of suffix on
'lib' directory to which libs will be installed (e.g. add '64' here on
certain 64 bit unices)")
BoostConfig.cmake:if(LIB_SUFFIX)
BoostConfig.cmake: boost_report_pretty("Lib suffix" LIB_SUFFIX)
Have you got the right code?
% git log -n1
commit e26008ef3a9f94d3854e073865fe4ce3a9481ef4
Author: troy d. straszheim <troy_at_[hidden]>
Date: Sat Oct 31 21:37:53 2009 -0400
Don't build tools by default. All they do is break.
> 2. To instruct CMake about the installation directory, I currently use
> (http://denisarnaud.fedorapeople.org/boost/1.40.0/10/boost.spec) the
> "-DCMAKE_INSTALL_PREFIX=$RPM_BUILD_ROOT%{_prefix}" directive (where
> %{_prefix} is equal to /usr). However, it has rpmlint (the RPM packaging
> checker utility) to complain/warn about it:
> $ rpmlint -i SPECS/boost.spec
> SPECS/boost.spec:257: W: rpm-buildroot-usage %build %cmake
> -DCMAKE_INSTALL_PREFIX=$RPM_BUILD_ROOT%{_prefix} \
> $RPM_BUILD_ROOT should not be touched during %build or %prep stage, as
> it may
> break short circuit builds."
Ah, I think it may be creating subdirectories of build/ during the
configure stage. Would this set off that alarm?
> Also, the "standard Fedora way" (used by
> KDE4: https://fedoraproject.org/wiki/Packaging:Cmake#Specfile_Usage ?)
> is to instruct make (not cmake), like for VERBOSE=1, where to install
> everything, with "make install DESTDIR=$RPM_BUILD_ROOT".
>
> So, if possible, I'd suggest that the installation directory may be
> instructed at the installation stage, understood by make (and not only
> by cmake).
>
Ah yes, DESTDIR. Have you tried it? IIRC you get DESTDIR 'for free'
with cmake, but we might be doing something to confuse it.
-t