[CMake] CPU specific compiler flags

Eric Noulard eric.noulard at gmail.com
Mon Nov 26 03:49:01 EST 2018


Le lun. 26 nov. 2018 à 09:36, Ciccio Pasticcio <dodungocorporation at gmail.com>
a écrit :

> Hi all,
>
> I'm refactoring some libraries cmake files to be compliant to the use of
> targets instead of tons of variables. Since these libraries are
> cross-compiled I'm facing some problem finding how to properly set some
> specific flags like: -march -marm -mfloat-abi etc. For now I set the
> CMAKE_CXX_FLAGS:
>
> set(CMAKE_CXX_FLAGS -march=armv7-a -marm -mthumb-interwork
> -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 -Wno-psabi)
>
> Is this the only way to do this?
>

I'm not sure to understand, you can perfectly setup flags on a target
specific way using 'target_compile_option'
https://cmake.org/cmake/help/latest/command/target_compile_options.html

If all your libraries are in a common directory you can use,
COMPILE_OPTIONS property on the directory
https://cmake.org/cmake/help/latest/prop_tgt/COMPILE_OPTIONS.html#prop_tgt:COMPILE_OPTIONS
to avoid repetition for each lib.

All that said, if you are cross-compiling those I bet you are using a
toolchain file (
https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling
)
so if those "target-specific" compile options are global to your target
then you may set
https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_FLAGS.html#variable:CMAKE_%3CLANG%3E_FLAGS
in the toolchain.

-- 
Eric
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cmake.org/pipermail/cmake/attachments/20181126/44991863/attachment.html>


More information about the CMake mailing list