diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2014-06-08 16:13:17 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2014-06-08 16:13:17 +0200 |
commit | 65fc11a49ec939261ca9a3dbfa534a9c3354825e (patch) | |
tree | 411b6dc3bdb13d7f0776426142a3f4d957f74814 /cmake/checks.cmake | |
parent | 7665159490d533c3c7fbaa1c51c260285a5a361e (diff) | |
download | fastd-65fc11a49ec939261ca9a3dbfa534a9c3354825e.tar fastd-65fc11a49ec939261ca9a3dbfa534a9c3354825e.zip |
Add ENABLE_LTO cmake option
Tested with GCC and clang; unlikely to work with other toolchains, so it's
disabled by default.
Diffstat (limited to 'cmake/checks.cmake')
-rw-r--r-- | cmake/checks.cmake | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/cmake/checks.cmake b/cmake/checks.cmake index 225c443..62d10d0 100644 --- a/cmake/checks.cmake +++ b/cmake/checks.cmake @@ -9,6 +9,21 @@ if(ARCH_X86 OR ARCH_X86_64) check_c_compiler_flag("-mpclmul" HAVE_PCLMUL) endif(ARCH_X86 OR ARCH_X86_64) + + +if(ENABLE_LTO) + set(CFLAGS_LTO "-flto") + set(CFLAGS_NO_LTO "-fno-lto") + + check_c_compiler_flag("-fwhole-program" HAVE_FLAG_WHOLE_PROGRAM) + if(HAVE_FLAG_WHOLE_PROGRAM) + set(LDFLAGS_LTO "-flto -fwhole-program") + else(HAVE_FLAG_WHOLE_PROGRAM) + set(LDFLAGS_LTO "-flto") + endif(HAVE_FLAG_WHOLE_PROGRAM) +endif(ENABLE_LTO) + + check_c_source_compiles(" #include <sys/types.h> #include <sys/socket.h> |