|
@@ -82,3 +82,26 @@ endif ()
|
|
if (CMAKE_ANSI_CFLAGS)
|
|
if (CMAKE_ANSI_CFLAGS)
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_ANSI_CFLAGS}")
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_ANSI_CFLAGS}")
|
|
endif ()
|
|
endif ()
|
|
|
|
+
|
|
|
|
+# Allow per-translation-unit parallel builds when using MSVC
|
|
|
|
+if(CMAKE_GENERATOR MATCHES "Visual Studio" AND
|
|
|
|
+ (CMAKE_C_COMPILER_ID MATCHES "MSVC|Intel" OR
|
|
|
|
+ CMAKE_CXX_COMPILER_ID MATCHES "MSVC|Intel"))
|
|
|
|
+
|
|
|
|
+ set(CMake_MSVC_PARALLEL ON CACHE STRING "\
|
|
|
|
+Enables /MP flag for parallel builds using MSVC. Specify an \
|
|
|
|
+integer value to control the number of threads used (Only \
|
|
|
|
+works on some older versions of Visual Studio). Setting to \
|
|
|
|
+ON lets the toolchain decide how many threads to use. Set to \
|
|
|
|
+OFF to disable /MP completely." )
|
|
|
|
+
|
|
|
|
+ if(CMake_MSVC_PARALLEL)
|
|
|
|
+ if(CMake_MSVC_PARALLEL GREATER 0)
|
|
|
|
+ string(APPEND CMAKE_C_FLAGS " /MP${CMake_MSVC_PARALLEL}")
|
|
|
|
+ string(APPEND CMAKE_CXX_FLAGS " /MP${CMake_MSVC_PARALLEL}")
|
|
|
|
+ else()
|
|
|
|
+ string(APPEND CMAKE_C_FLAGS " /MP")
|
|
|
|
+ string(APPEND CMAKE_CXX_FLAGS " /MP")
|
|
|
|
+ endif()
|
|
|
|
+ endif()
|
|
|
|
+endif()
|