Skip to content
Browse files

Cmake scripts for MSVC precompiled headers

  • Loading branch information...
1 parent 5cfefd1 commit 1ac35ede8fbc20e56433ba254b0dd65cd7b26dea @Hoikas Hoikas committed
Showing with 24 additions and 0 deletions.
  1. +1 −0 CMakeLists.txt
  2. +23 −0 cmake/PrecompiledHeader.cmake
View
1 CMakeLists.txt
@@ -34,6 +34,7 @@ endif(WIN32)
find_package(MaxSDK) #TODO: Only find this if we are building PlasmaMax
find_package(Bink) #TODO: Find Bink, but don't require it if plPipeline isn't built...
# Or better yet, just eliminate bink altogether
+include(PrecompiledHeader) #Precompiled Header helper macros
# libCurl isn't smart enough to detect this for us, so we have to configure it ourselves
option(CURL_IS_STATIC "Using the static version of libcurl?" ON)
View
23 cmake/PrecompiledHeader.cmake
@@ -0,0 +1,23 @@
+if(MSVC)
+ set(PCH_SUPPORTED TRUE)
+else()
+ set(PCH_SUPPORTED FALSE)
+endif()
+
+if(PCH_SUPPORTED)
+ option(PLASMA_USE_PCH "Enable precompiled headers?" ON)
+endif(PCH_SUPPORTED)
+
+macro(use_precompiled_header PrecompiledHeader PrecompiledSource)
+ if(PLASMA_USE_PCH)
+ if(MSVC)
+ get_filename_component(PrecompiledBasename ${PrecompiledHeader} NAME_WE)
+ set(PrecompiledBinary ${PrecompiledBasename}.pch)
+
+ add_definitions(/Fp"${PrecompiledBinary}")
+ add_definitions(/Yu"${PrecompiledHeader}")
+ add_definitions(/FI"${PrecompiledHeader}")
+ set_source_files_properties(${PrecompiledSource} PROPERTIES COMPILE_FLAGS "/Yc\"${PrecompiledHeader}\"")
+ endif(MSVC)
+ endif(PLASMA_USE_PCH)
+endmacro(use_precompiled_header)

0 comments on commit 1ac35ed

Please sign in to comment.
Something went wrong with that request. Please try again.