diff --git a/CMake/VirtualFluidsMacros.cmake b/CMake/VirtualFluidsMacros.cmake
index 187c523e26a3ab47ad7ecdef03a3bb7c8c42747c..2c2bc1d650e5e2c402f34a1a2547b9fa6f5e063b 100644
--- a/CMake/VirtualFluidsMacros.cmake
+++ b/CMake/VirtualFluidsMacros.cmake
@@ -153,15 +153,17 @@ function(vf_add_library)
             PDB_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin")
 
     # link time optimization
-    if(NOT ${ARG_BUILDTYPE} MATCHES binary)
-        include(CheckIPOSupported)
-        check_ipo_supported(RESULT ipo_supported OUTPUT ipo_error LANGUAGES CXX)
-
-        if( ipo_supported )
-            status_lib("IPO / LTO enabled")
-            set_target_properties(${library_name} PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE)
-        else()
-            status_lib("IPO / LTO not supported: <${ipo_error}>")
+    if(BUILD_VF_LTO)
+        if(NOT ${ARG_BUILDTYPE} MATCHES binary)
+            include(CheckIPOSupported)
+            check_ipo_supported(RESULT ipo_supported OUTPUT ipo_error LANGUAGES CXX)
+
+            if( ipo_supported )
+                status_lib("IPO / LTO enabled")
+                set_target_properties(${library_name} PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE)
+            else()
+                status_lib("IPO / LTO not supported: <${ipo_error}>")
+            endif()
         endif()
     endif()