Cleaned cMake, removed old Windows only implementation for the precompiled headers with one provided by cMake
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 32ef219..74c6e49 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,14 +4,13 @@
 # cmake required (http://www.cmake.org/)
 #
 
-cmake_minimum_required( VERSION 2.8 )
+cmake_minimum_required( VERSION 3.16 )
 
 if( POLICY CMP0017 )
   cmake_policy( SET CMP0017 NEW )
 endif()
 
 include( CMakeDependentOption )
-include( cmake/precompiledHeaders.cmake )
 
 set( GAME_APP_NAME "" CACHE            STRING "The Application name")
 set( GAME_APP_VERSION "" CACHE         STRING "The Application version")
@@ -349,15 +348,17 @@ if( MSVC )
 
 	target_link_libraries( sgame winmm.lib )
 
-	ADD_PRECOMPILED_HEADER( sgame "${TREMGAME_DIR}/sgame/sgame_precompiled.h" "${TREMGAME_DIR}/sgame/sgame_precompiled.cpp" )
 	SET_TARGET_PROPERTIES( sgame PROPERTIES LINK_FLAGS "/DEF:\"${TREMGAME_DIR}/sgame/sgame.def" )
 endif( MSVC )
 
+	target_precompile_headers( sgame PRIVATE "${TREMGAME_DIR}/sgame/sgame_precompiled.h" )
+
 find_package( Bullet REQUIRED )
 
 TARGET_INCLUDE_DIRECTORIES( sgame PRIVATE ${MOUNT_DIR} ${TREMGAME_DIR} ${BULLET_INCLUDE_DIRS} ${BULLET_INCLUDE_DIR} ${BULLET_INCLUDE_COLLISION_DIR} ${BULLET_INCLUDE_DYNAMICS_DIR} ${BULLET_INCLUDE_SOFTBODY_DIR} ${BULLET_INCLUDE_LINEARMATH_DIR} ${BULLET_INCLUDE_FILELOADER_DIR} ${BULLET_INCLUDE_WORLDIMPORTER_DIR} )
 
 if(MSVC)
+	target_compile_options(sgame PRIVATE "/MP")
 	set_property( TARGET sgame PROPERTY COMPILE_DEFINITIONS _AMD64_ WIN32 _AMD64 _WIN64 __WIN64__ GAMEDLL )
 elseif( UNIX )
 	set_property( TARGET sgame PROPERTY COMPILE_DEFINITIONS LINUX __amd64__ __linux__ __x86_64__ __LINUX__ GAMEDLL )
@@ -382,12 +383,15 @@ if( MSVC )
 	SOURCE_GROUP( Source\ Files\\SharedList                               FILES ${SHAREDLIST_SOURCES} )
 	SOURCE_GROUP( Source\ Files\\GameFiles                                FILES ${CGAMELIST_SOURCES} )
 	
-	ADD_PRECOMPILED_HEADER( cgame "${TREMGAME_DIR}/cgame/cgame_precompiled.h" "${TREMGAME_DIR}/cgame/cgame_precompiled.cpp" )	
 	SET_TARGET_PROPERTIES( cgame PROPERTIES LINK_FLAGS "/DEF:\"${TREMGAME_DIR}/cgame/cgame.def" )
 endif( MSVC )
 
-TARGET_INCLUDE_DIRECTORIES( cgame PRIVATE ${MOUNT_DIR} ${TREMGAME_DIR} )
+	target_precompile_headers( cgame PRIVATE "${TREMGAME_DIR}/cgame/cgame_precompiled.h" )
+
+	TARGET_INCLUDE_DIRECTORIES( cgame PRIVATE ${MOUNT_DIR} ${TREMGAME_DIR} )
+	
 if(MSVC)
+	target_compile_options(cgame PRIVATE "/MP")
 	set_property( TARGET cgame PROPERTY COMPILE_DEFINITIONS _AMD64_ NDEBUG _WIN32 WIN32 _AMD64 _WIN64 __WIN64__ CGAMEDLL )
 elseif( UNIX )
 	set_property( TARGET cgame PROPERTY COMPILE_DEFINITIONS LINUX __amd64__ __linux__ __x86_64__ __LINUX__ CGAMEDLL )
@@ -408,12 +412,15 @@ if( MSVC )
 	SOURCE_GROUP( Source\ Files\\SharedList                               FILES ${SHAREDLIST_SOURCES} )
 	SOURCE_GROUP( Source\ Files\\GameFiles                                FILES ${GUI_SOURCES} )
 	
-	ADD_PRECOMPILED_HEADER( gui "${TREMGAME_DIR}/GUI/gui_precompiled.h" "${TREMGAME_DIR}/GUI/gui_precompiled.cpp" )	
 	SET_TARGET_PROPERTIES( gui PROPERTIES LINK_FLAGS "/DEF:\"${TREMGAME_DIR}/GUI/gui.def" )
 endif( MSVC )
 
-TARGET_INCLUDE_DIRECTORIES( gui PRIVATE ${MOUNT_DIR} ${TREMGAME_DIR} )
+	target_precompile_headers( gui PRIVATE "${TREMGAME_DIR}/GUI/gui_precompiled.h" )
+
+	TARGET_INCLUDE_DIRECTORIES( gui PRIVATE ${MOUNT_DIR} ${TREMGAME_DIR} )
+	
 if(MSVC)
+	target_compile_options(gui PRIVATE "/MP")
 	set_property( TARGET gui PROPERTY COMPILE_DEFINITIONS _AMD64_ NDEBUG _WIN32 WIN32 _AMD64 _WIN64 __WIN64__ GUI )
 elseif( UNIX )
 	set_property( TARGET gui PROPERTY COMPILE_DEFINITIONS LINUX __amd64__ __linux__ __x86_64__ __LINUX__ GUI )
diff --git a/cmake/precompiledHeaders.cmake b/cmake/precompiledHeaders.cmake
deleted file mode 100644
index 26ec908..0000000
--- a/cmake/precompiledHeaders.cmake
+++ /dev/null
@@ -1,23 +0,0 @@
-# set PCH for VS project
-function(ADD_PRECOMPILED_HEADER TargetName PrecompiledHeader PrecompiledSource)
-  if(MSVC)
-    get_filename_component(PrecompiledBasename ${PrecompiledHeader} NAME_WE)
-    set(PrecompiledBinary "${CMAKE_CURRENT_BINARY_DIR}/${PrecompiledBasename}.pch")
-
-    set_target_properties(${TargetName}
-      PROPERTIES
-        COMPILE_FLAGS "/Yu\"${PrecompiledHeader}\" /FI\"${PrecompiledHeader}\" /Fp\"${PrecompiledBinary}\""
-        OBJECT_DEPENDS "${PrecompiledBinary}")
-    set_source_files_properties(${PrecompiledSource}
-      PROPERTIES
-        COMPILE_FLAGS "/Yc\"${PrecompiledHeader}\" /Fp\"${PrecompiledBinary}\""
-        OBJECT_OUTPUTS "${PrecompiledBinary}")
-  endif(MSVC)
-endfunction(ADD_PRECOMPILED_HEADER)
-
-# ignore PCH for a specified list of files
-function(IGNORE_PRECOMPILED_HEADER SourcesVar)
-  if(MSVC)  
-    set_source_files_properties(${${SourcesVar}} PROPERTIES COMPILE_FLAGS "/Y-")
-  endif(MSVC)
-endfunction(IGNORE_PRECOMPILED_HEADER)
GitHub
sha: 189b424c