Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'build_files/cmake/macros.cmake')
-rw-r--r--build_files/cmake/macros.cmake23
1 files changed, 23 insertions, 0 deletions
diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 25a8b66af51..34c2c9a684d 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -1292,6 +1292,29 @@ macro(openmp_delayload
endif()
endmacro()
+macro(blender_precompile_headers target cpp header)
+ if(MSVC)
+ # get the name for the pch output file
+ get_filename_component(pchbase ${cpp} NAME_WE)
+ set(pchfinal "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/${pchbase}.pch")
+
+ # mark the cpp as the one outputting the pch
+ set_property(SOURCE ${cpp} APPEND PROPERTY OBJECT_OUTPUTS "${pchfinal}")
+
+ # get all sources for the target
+ get_target_property(sources ${target} SOURCES)
+
+ # make all sources depend on the pch to enforce the build order
+ foreach(src ${sources})
+ set_property(SOURCE ${src} APPEND PROPERTY OBJECT_DEPENDS "${pchfinal}")
+ endforeach()
+
+ target_sources(${target} PRIVATE ${cpp} ${header})
+ set_target_properties(${target} PROPERTIES COMPILE_FLAGS "/Yu${header} /Fp${pchfinal} /FI${header}")
+ set_source_files_properties(${cpp} PROPERTIES COMPILE_FLAGS "/Yc${header} /Fp${pchfinal}")
+ endif()
+endmacro()
+
macro(set_and_warn_dependency
_dependency _setting _val)
# when $_dependency is disabled, forces $_setting = $_val