Skip to content

Commit

Permalink
cmake.eclass: do not append -DNDEBUG to CPPFLAGS
Browse files Browse the repository at this point in the history
The NDEBUG macro turns the assert() function into a noop. This gives a
small performance boost, but may allow subtle programming errors to go
unnoticed.

This code was added back in 2008, when we started passing
-DCMAKE_BUILD_TYPE=None instead of Release or Debug. It probably tries
to mimic a default behavior of Release type builds.

Other common build systems do not do this by default. For example,
autoconf's AC_HEADER_ASSERT macro only sets NDEBUG if --disable-assert
is passed to configure (it defaults to enabled).

It is better to let users add this to CPPFLAGS themselves if they really
want to save those few CPU cycles.

Signed-off-by: Mike Gilbert <floppym@gentoo.org>
  • Loading branch information
floppym committed Apr 1, 2020
1 parent 658167a commit 95577dd
Showing 1 changed file with 0 additions and 9 deletions.
9 changes: 0 additions & 9 deletions eclass/cmake.eclass
Expand Up @@ -371,15 +371,6 @@ cmake_src_configure() {
# Fix xdg collision with sandbox
xdg_environment_reset

# @SEE CMAKE_BUILD_TYPE
if [[ ${CMAKE_BUILD_TYPE} = Gentoo ]]; then
# Handle release builds
if ! in_iuse debug || ! use debug; then
local CPPFLAGS=${CPPFLAGS}
append-cppflags -DNDEBUG
fi
fi

# Prepare Gentoo override rules (set valid compiler, append CPPFLAGS etc.)
local build_rules=${BUILD_DIR}/gentoo_rules.cmake

Expand Down

0 comments on commit 95577dd

Please sign in to comment.