diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake index 5fd677ee5c9..42f707d8142 100644 --- a/build_files/cmake/macros.cmake +++ b/build_files/cmake/macros.cmake @@ -1220,3 +1220,11 @@ macro(WINDOWS_SIGN_TARGET target) endif() endif() endmacro() + +MACRO(blender_precompile_headers target cpp header) + if (MSVC AND NOT MSVC_CLANG) + target_sources(${target} PRIVATE ${cpp} ${header}) + set_target_properties(${target} PROPERTIES COMPILE_FLAGS "/Yu${header} /FI${header}") + set_source_files_properties(${cpp} PROPERTIES COMPILE_FLAGS "/Yc${header}") + endif() +ENDMACRO() diff --git a/source/blender/freestyle/CMakeLists.txt b/source/blender/freestyle/CMakeLists.txt index e6e72ea01db..253fcecc81c 100644 --- a/source/blender/freestyle/CMakeLists.txt +++ b/source/blender/freestyle/CMakeLists.txt @@ -586,3 +586,4 @@ if(WIN32) endif() blender_add_lib(bf_freestyle "${SRC}" "${INC}" "${INC_SYS}" "${LIB}") +blender_precompile_headers(bf_freestyle FRS_precomp.cpp FRS_precomp.h) diff --git a/source/blender/freestyle/FRS_precomp.cpp b/source/blender/freestyle/FRS_precomp.cpp new file mode 100644 index 00000000000..771f5bf3a4a --- /dev/null +++ b/source/blender/freestyle/FRS_precomp.cpp @@ -0,0 +1 @@ +#include "FRS_precomp.h" \ No newline at end of file diff --git a/source/blender/freestyle/FRS_precomp.h b/source/blender/freestyle/FRS_precomp.h new file mode 100644 index 00000000000..6b9abff1446 --- /dev/null +++ b/source/blender/freestyle/FRS_precomp.h @@ -0,0 +1,46 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "intern/python/BPy_BBox.h" +#include "intern/python/BPy_BinaryPredicate0D.h" +#include "intern/python/BPy_BinaryPredicate1D.h" +#include "intern/python/BPy_ContextFunctions.h" +#include "intern/python/BPy_Convert.h" +#include "intern/python/BPy_Freestyle.h" +#include "intern/python/BPy_FrsMaterial.h" +#include "intern/python/BPy_FrsNoise.h" +#include "intern/python/BPy_Id.h" +#include "intern/python/BPy_IntegrationType.h" +#include "intern/python/BPy_Interface0D.h" +#include "intern/python/BPy_Interface1D.h" +#include "intern/python/BPy_Iterator.h" +#include "intern/python/BPy_MediumType.h" +#include "intern/python/BPy_Nature.h" +#include "intern/python/BPy_Operators.h" +#include "intern/python/BPy_SShape.h" +#include "intern/python/BPy_StrokeAttribute.h" +#include "intern/python/BPy_StrokeShader.h" +#include "intern/python/BPy_UnaryFunction0D.h" +#include "intern/python/BPy_UnaryFunction1D.h" +#include "intern/python/BPy_UnaryPredicate0D.h" +#include "intern/python/BPy_UnaryPredicate1D.h" +#include "intern/python/BPy_ViewMap.h" +#include "intern/python/BPy_ViewShape.h" +#include "intern/python/Director.h"