In pratica nel template di SBO e negli SlackBuild qui su Slacky c'è questo:
Codice: Seleziona tutto
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_BUILD_TYPE=Release
quindi secondo me ci sono due strade, come del resto avviene in alcuni SlackBuilds
1) modifica di NONE
Codice: Seleziona tutto
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_BUILD_TYPE=None
Codice: Seleziona tutto
. -DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
-DCMAKE_BUILD_TYPE=Release
Ora, solitamente RELEASE di default ha "-O3 -DNDEBUG" mentre NONE è vuota.
Io pensavo che fosse per usare flags aggiungendole a RELEASE, ma ho fatto delle prove dei make generati e non lo fa. Magari era solo in quei 3 che ho provato, boh.
La differenza tra le due opzioni è che cambia l'ordine dell'aggiunta dei flags, tanto per farti capire questo è quello di Keepassx
Codice: Seleziona tutto
< utils/CMakeFiles/kdbx-extract.dir/flags.make:CXX_FLAGS = -fno-common -fstack-protector --param=ssp-buffer-size=4 -Wall -Wextra
-Wundef -Wpointer-arith -Wno-long-long -Wformat=2 -Wmissing-format-attribute -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual -Werror=format-security -Wcast-align -std=c++0x -O2 -fPIC -isystem /usr/lib64/qt/include -isystem /usr/lib64/qt/include/QtGui -isystem /usr/lib64/qt/include/QtTest -isystem /usr/lib64/qt/include/QtCore -I/tmp/pkg/keepassx-2.0-beta2/utils/../src
---
> utils/CMakeFiles/kdbx-extract.dir/flags.make:CXX_FLAGS = -O2 -fPIC -fno-common -fstack-protector --param=ssp-buffer-size=4 -Wall -Wextra -Wundef -Wpointer-arith -Wno-long-long -Wformat=2 -Wmissing-format-attribute -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual -Werror=format-security -Wcast-align -std=c++0x -isystem /usr/lib64/qt/include -isystem /usr/lib64/qt/include/QtGui -isystem /usr/lib64/qt/include/QtTest -isystem /usr/lib64/qt/include/QtCore -I/tmp/pkg/keepassx-2.0-beta2/utils/../src
Codice: Seleziona tutto
> utils/CMakeFiles/kdbx-extract.dir/flags.make:CXX_FLAGS = -O2 -fPIC -fno-common -fstack-protector --param=ssp-buffer-size=4 -Wall -Wextra -Wundef -Wpointer-arith -Wno-long-long -Wformat=2 -Wmissing-format-attribute -fvisibility=hidden -fvisibility-inlines-hidden -fno-exceptions -fno-rtti -Wnon-virtual-dtor -Wold-style-cast -Woverloaded-virtual -Werror=format-security -Wcast-align -std=c++0x -O3 -DNDEBUG -isystem /usr/lib64/qt/include -isystem /usr/lib64/qt/include/QtGui -isystem /usr/lib64/qt/include/QtTest -isystem /usr/lib64/qt/include/QtCore -I/tmp/pkg/keepassx-2.0-beta2/utils/../src
Per poter usare NDEBUG io ho fatto così
Codice: Seleziona tutto
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -DNDEBUG" \
-DCMAKE_BUILD_TYPE=None \
Codice: Seleziona tutto
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS -DNDEBUG" \
-DCMAKE_BUILD_TYPE=Release \
Nella documentazione
http://www.cmake.org/Wiki/CMake_Useful_ ... _and_Tools
dicono la stessa cosa, o almeno così mi sembra
Codice: Seleziona tutto
CMAKE_BUILD_TYPE :
None (CMAKE_C_FLAGS or CMAKE_CXX_FLAGS used)
Release (CMAKE_C_FLAGS_RELEASE or CMAKE_CXX_FLAGS_RELEASE)
Secondo voi com'è giusto?
spero di essermi spiegato
P.S.
Pat modifica entrambe le variabili, per esempio da
ftp://ftp.slackware.com/pub/slackware/s ... e/kdeadmin
Codice: Seleziona tutto
cmake \
$KDE_OPT_ARGS \
-DCMAKE_C_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_C_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS:STRING="$SLKCFLAGS" \
-DCMAKE_CXX_FLAGS_RELEASE:STRING="$SLKCFLAGS" \
-DCMAKE_BUILD_TYPE=Release \