Add ThinLTO support for clang
authorMaksim Shabunin <maksim.shabunin@gmail.com>
Thu, 11 Jan 2018 10:50:35 +0000 (13:50 +0300)
committerMaksim Shabunin <maksim.shabunin@gmail.com>
Tue, 16 Jan 2018 12:26:28 +0000 (15:26 +0300)
CMakeLists.txt
cmake/OpenCVCompilerOptions.cmake

index e600d1c..fe4527c 100644 (file)
@@ -314,6 +314,7 @@ OCV_OPTION(ENABLE_INSTRUMENTATION     "Instrument functions to collect calls tra
 OCV_OPTION(ENABLE_GNU_STL_DEBUG       "Enable GNU STL Debug mode (defines _GLIBCXX_DEBUG)"       OFF IF ((NOT CMAKE_VERSION VERSION_LESS "2.8.11") AND CMAKE_COMPILER_IS_GNUCXX) )
 OCV_OPTION(ENABLE_BUILD_HARDENING     "Enable hardening of the resulting binaries (against security attacks, detects memory corruption, etc)" OFF)
 OCV_OPTION(ENABLE_LTO                 "Enable Link Time Optimization" OFF IF CMAKE_COMPILER_IS_GNUCXX OR MSVC)
+OCV_OPTION(ENABLE_THIN_LTO            "Enable Thin LTO" OFF IF CMAKE_COMPILER_IS_CLANGCXX)
 OCV_OPTION(GENERATE_ABI_DESCRIPTOR    "Generate XML file for abi_compliance_checker tool" OFF IF UNIX)
 OCV_OPTION(CV_ENABLE_INTRINSICS       "Use intrinsic-based optimized code" ON )
 OCV_OPTION(CV_DISABLE_OPTIMIZATION    "Disable explicit optimized code (dispatched code/intrinsics/loop unrolling/etc)" OFF )
index 353ee12..ef8d764 100644 (file)
@@ -204,6 +204,10 @@ if(CMAKE_COMPILER_IS_GNUCXX)
     add_extra_compiler_option(-flto)
   endif()
 
+  if(ENABLE_THIN_LTO)
+    add_extra_compiler_option(-flto=thin)
+  endif()
+
   set(OPENCV_EXTRA_FLAGS_RELEASE "${OPENCV_EXTRA_FLAGS_RELEASE} -DNDEBUG")
   if(NOT " ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG} " MATCHES "-O")
     set(OPENCV_EXTRA_FLAGS_DEBUG "${OPENCV_EXTRA_FLAGS_DEBUG} -O0")