Browse Source

Add option to build CMake itself with IPO/LTO

Create a `CMake_BUILD_LTO` option when building with a CMake that
is new enough to support `CheckIPOSupported` everywhere.
Cristian Adam 7 years ago
parent
commit
786dddc0fd
1 changed files with 12 additions and 0 deletions
  1. 12 0
      CMakeLists.txt

+ 12 - 0
CMakeLists.txt

@@ -117,6 +117,18 @@ option(CMake_BUILD_DEVELOPER_REFERENCE
   "Build CMake Developer Reference" OFF)
 mark_as_advanced(CMake_BUILD_DEVELOPER_REFERENCE)
 
+# option to build using interprocedural optimizations (IPO/LTO)
+if (NOT CMAKE_VERSION VERSION_LESS 3.12.2)
+  option(CMake_BUILD_LTO "Compile CMake with link-time optimization if supported" OFF)
+  if(CMake_BUILD_LTO)
+    include(CheckIPOSupported)
+    check_ipo_supported(RESULT HAVE_IPO)
+    if(HAVE_IPO)
+      set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
+    endif()
+  endif()
+endif()
+
 #-----------------------------------------------------------------------
 # a macro to deal with system libraries, implemented as a macro
 # simply to improve readability of the main script