packages: taglib/taglib.spec - add build type

Bartosz Świątek shadzik w gmail.com
Pią, 2 Paź 2009, 19:20:00 CEST


W dniu 2 października 2009 08:51 użytkownik Bartosz Świątek
<shadzik w gmail.com> napisał:
> W dniu 2 października 2009 07:27 użytkownik Jakub Bogusz
> <qboosh w pld-linux.org> napisał:
>> On Thu, Oct 01, 2009 at 04:43:38PM +0200, Jakub Bogusz wrote:
>>> On Thu, Sep 24, 2009 at 09:50:22PM +0200, cactus wrote:
>>> > Author: cactus                       Date: Thu Sep 24 19:50:22 2009 GMT
>>> > Module: packages                      Tag: HEAD
>>> > ---- Log message:
>>> > - add build type
>>>
>>> >  %cmake \
>>> >     -DCMAKE_INSTALL_PREFIX=%{_prefix} \
>>> >     -DLIB_INSTALL_DIR=%{_libdir} \
>>> > +   -DCMAKE_BUILD_TYPE=%{!?debug:Release}%{?debug:Debug} \
>>>
>>> CMAKE_BUILD_TYPE=Release causes cmake to override our optflags by
>>> cmake-defined ones; particularly - by -O3, which causes code to be
>>> bigger (because of more aggressive inlining), and thus - in larger
>>> projects - possibly slower due to more code cache misses.
>>
>> Some solutions to choose from:
>>
>> - add "PLDRelease" build type to cmake, which just adds "-DNDEBUG" to
>>  passed optflags (and use it instead of Release)
>>
>> - use Release builds, but pass -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG"
>>  (and -DCMAKE_C_FLAGS_RELEASE for C code) to avoid adding -O3 globally
>>
>> - use "None" builds, but add -DNDEBUG to flags somehow
>>
>
> Great. I'll do it as soon as I get to. The first option seems to be
> the simpliest one.

I've been curious and had the oportunity to test kde4-kdelibs with
build type Release. Unfortunately you're wrong. Nothing changes, our
C(XX)FLAGS are not being overwritten.

Proof:

[ 14%] Building CXX object
solid/solid/CMakeFiles/solid.dir/backends/fakehw/fakeblock.o
cd /home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/build/solid/solid &&
/usr/bin/x86_64-pld-linux-g++   -D_BSD_SOURCE -D_XOPEN_SOURCE=500
-D_BSD_SOURCE -DQT_NO_STL -DQT_NO_CAST_TO_ASCII -D_REENTRANT
-DKDE_DEPRECATED_WARNINGS -DMAKE_SOLID_LIB -O2 -fno-strict-aliasing
-fwrapv -march=x86-64   -Wnon-virtual-dtor -Wno-long-long -ansi
-Wundef -Wcast-align -Wchar-subscripts -Wall -W -Wpointer-arith
-Wformat-security -fno-exceptions -fno-check-new -fno-common
-Woverloaded-virtual -fno-threadsafe-statics -fvisibility=hidden
-fvisibility-inlines-hidden -O2 -DNDEBUG -DQT_NO_DEBUG -fPIC
-I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/build/solid/solid
-I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/solid/solid
-I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2
-I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/build
-I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/interfaces
-I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/solid
-I/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/build/solid
-I/usr/include/qt4   -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -o
CMakeFiles/solid.dir/backends/fakehw/fakeblock.o -c
/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/solid/solid/backends/fakehw/fakeblock.cpp
/usr/bin/cmake -E cmake_progress_report
/home/users/shadzik/rpm/BUILD/kdelibs-4.3.2/build/CMakeFiles

-DNDEBUG is passed when using BUILD_TYPE=Release.


-- 
"I'm living proof if you do one thing right in your career, you can
coast for a long time. A LOOOOONG time." -Guy Kawasaki


Więcej informacji o liście dyskusyjnej pld-devel-pl