overriding -03 -DNDEBUG Release flags

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

overriding -03 -DNDEBUG Release flags

Stéphane Ancelot
Hi,

In one project I need to compile with -O2 option , how to set it and
remove -O3 -DNDEBUG flags for this project ?

Regards,

Steph

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: overriding -03 -DNDEBUG Release flags

Eric Noulard


Le lun. 10 sept. 2018 à 14:34, Stéphane Ancelot <[hidden email]> a écrit :
Hi,

In one project I need to compile with -O2 option , how to set it and
remove -O3 -DNDEBUG flags for this project ?

May be you can create a new Build Type with appropriate flags:

and set it as the default build type for this particular project?


--
Eric

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: overriding -03 -DNDEBUG Release flags

Mark Ferry
In reply to this post by Stéphane Ancelot
Have just worked through this and I think in short there is no *good*
way.

The method I decided to live with is caching the CFLAGS in the
toolchain file.

If you don't have a custom toolchain file for that project, create one.
Assuming you're using a GNU-derived toolchain try this:

    set(CMAKE_C_FLAGS_RELEASE "-O2" CACHE STRING "Some description")
    include(Compiler/GNU)

Pass the toolchain file to cmake:

cmake -DCMAKE_TOOLCHAIN_FILE=/path/to/my/toolchain-file.cmake ...

The downside is you can no longer change the C_FLAGS from a cmake UI
(like ccmake) though you *can* change them from the command line.
 ( cmake -DCMAKE_C_FLAGS_RELEASE=... )

What doesn't work and why:

 * Setting CMAKE_CFLAGS_RELEASE in a CMakeLists.txt
   -> Obviously. It's too late, we're past toolchain
   determination and try_compile

 * Setting CMAKE_CFLAGS_RELEASE_INIT in a toolchain file
   -> GNU compiler determination appends -O3 and -NDEBUG

ciao
  Mark

On Mon, 10 Sep 2018 14:34:26 +0200, Stéphane Ancelot wrote:

> Hi,
>
> In one project I need to compile with -O2 option , how to set it and remove
> -O3 -DNDEBUG flags for this project ?
>
> Regards,
>
> Steph
>
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> https://cmake.org/mailman/listinfo/cmake
--
Cognomen Ltd
http://cognomen.co.uk
+44 7855 790184

--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

signature.asc (499 bytes) Download Attachment