From a3588c18bf225e4e2174b0e71ee3f6564f3735cb Mon Sep 17 00:00:00 2001 From: "S.Z" Date: Tue, 13 Aug 2019 19:20:53 +0200 Subject: [PATCH] Enable precompiled header usage in the Visual Studio compiler (#5473) * Enable precompiled header usage in the Visual Studio compiler But only for libraries emu frontend precompile dasm optional Also add emu.h include to hpcdasm.cpp * Include emu.h in some disassembler sources to use precompiled headers * Remove debug message --- scripts/genie.lua | 11 ++++++++++- scripts/src/devices.lua | 10 ++++++++++ scripts/src/emu.lua | 9 +++++++++ scripts/src/mame/frontend.lua | 2 ++ scripts/target/mame/arcade.lua | 2 +- scripts/target/mame/dummy.lua | 2 +- scripts/target/mame/mess.lua | 2 +- scripts/target/mame/nl.lua | 2 +- scripts/target/mame/tiny.lua | 2 +- scripts/target/mame/virtual.lua | 2 +- src/devices/cpu/bcp/bcpdasm.cpp | 1 + src/devices/cpu/cr16b/cr16bdasm.cpp | 1 + src/devices/cpu/f2mc16/f2mc16dasm.cpp | 1 + src/devices/cpu/hpc/hpcdasm.cpp | 1 + src/devices/cpu/rii/riidasm.cpp | 2 ++ 15 files changed, 43 insertions(+), 7 deletions(-) diff --git a/scripts/genie.lua b/scripts/genie.lua index 346ff439db8..b1d76df09bf 100644 --- a/scripts/genie.lua +++ b/scripts/genie.lua @@ -77,6 +77,16 @@ function precompiledheaders() end end +function precompiledheaders_novs() + precompiledheaders() + if string.sub(_ACTION,1,4) == "vs20" then + --print("Disabling pch for Visual Studio") + flags { + "NoPCH" + } + end +end + function addprojectflags() local version = str_to_version(_OPTIONS["gcc_version"]) if _OPTIONS["gcc"]~=nil and string.find(_OPTIONS["gcc"], "gcc") then @@ -486,7 +496,6 @@ configuration { "vs20*" } "/bigobj", } flags { - "NoPCH", "ExtraWarnings", } if not _OPTIONS["NOWERROR"] then diff --git a/scripts/src/devices.lua b/scripts/src/devices.lua index 79bcdec11d4..4940ccdaafd 100644 --- a/scripts/src/devices.lua +++ b/scripts/src/devices.lua @@ -54,6 +54,8 @@ function devicesProject(_target, _subtarget) dofile(path.join("src", "bus.lua")) + pchsource(MAME_DIR .. "src/devices/machine/timer.cpp") + if #disasm_files > 0 then project ("dasm") uuid ("f2d28b0a-6da5-4f78-b629-d834aa00429d") @@ -78,6 +80,14 @@ if #disasm_files > 0 then disasm_files } + for key,value in pairs(disasm_files) do + if string.endswith(value, ".cpp") then + --print("calling pchsource with " .. value) + pchsource(value) + break + end + end + if #disasm_dependency > 0 then dependency(disasm_dependency) end diff --git a/scripts/src/emu.lua b/scripts/src/emu.lua index 4e763996a2c..6ab5f100cba 100644 --- a/scripts/src/emu.lua +++ b/scripts/src/emu.lua @@ -259,6 +259,12 @@ files { MAME_DIR .. "src/emu/video/rgbvmx.h", } +pchsource(MAME_DIR .. "src/emu/main.cpp") +-- 3 files do not inlcude emu.h +nopch(MAME_DIR .. "src/emu/emualloc.cpp") +nopch(MAME_DIR .. "src/emu/attotime.cpp") +nopch(MAME_DIR .. "src/emu/debug/textbuf.cpp") + dependency { -------------------------------------------------- -- additional dependencies @@ -306,6 +312,9 @@ includedirs { files { MAME_DIR .. "src/emu/drivers/empty.cpp", } + +pchsource(MAME_DIR .. "src/emu/drivers/empty.cpp") + dependency { { "$(OBJDIR)/src/emu/drivers/empty.o", "$(GCH)", true }, } diff --git a/scripts/src/mame/frontend.lua b/scripts/src/mame/frontend.lua index c8f21daa4a6..b785785416e 100644 --- a/scripts/src/mame/frontend.lua +++ b/scripts/src/mame/frontend.lua @@ -166,3 +166,5 @@ files { MAME_DIR .. "src/frontend/mame/ui/widgets.cpp", MAME_DIR .. "src/frontend/mame/ui/widgets.h", } + +pchsource(MAME_DIR .. "src/frontend/mame/audit.cpp") diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua index 0d2551fb88e..7302f27528e 100644 --- a/scripts/target/mame/arcade.lua +++ b/scripts/target/mame/arcade.lua @@ -913,7 +913,7 @@ function createMAMEProjects(_target, _subtarget, _name) kind (LIBTYPE) uuid (os.uuid("drv-" .. _target .."_" .. _subtarget .. "_" .._name)) addprojectflags() - precompiledheaders() + precompiledheaders_novs() includedirs { MAME_DIR .. "src/osd", diff --git a/scripts/target/mame/dummy.lua b/scripts/target/mame/dummy.lua index ec5d366abc6..d19a054cfc8 100644 --- a/scripts/target/mame/dummy.lua +++ b/scripts/target/mame/dummy.lua @@ -18,7 +18,7 @@ function createProjects_mame_dummy(_target, _subtarget) kind (LIBTYPE) uuid (os.uuid("drv-mame_dummy")) addprojectflags() - precompiledheaders() + precompiledheaders_novs() includedirs { MAME_DIR .. "src/osd", diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 2afb4a2df59..5866afa0eaa 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -1288,7 +1288,7 @@ function createMESSProjects(_target, _subtarget, _name) kind (LIBTYPE) uuid (os.uuid("drv-" .. _target .."_" .. _subtarget .. "_" .._name)) addprojectflags() - precompiledheaders() + precompiledheaders_novs() includedirs { MAME_DIR .. "src/osd", diff --git a/scripts/target/mame/nl.lua b/scripts/target/mame/nl.lua index cd36d568184..d16244d7ea4 100644 --- a/scripts/target/mame/nl.lua +++ b/scripts/target/mame/nl.lua @@ -108,7 +108,7 @@ function createProjects_mame_nl(_target, _subtarget) kind (LIBTYPE) uuid (os.uuid("drv-mame-nl")) addprojectflags() - precompiledheaders() + precompiledheaders_novs() includedirs { MAME_DIR .. "src/osd", diff --git a/scripts/target/mame/tiny.lua b/scripts/target/mame/tiny.lua index 2f62d3560bc..c3f8c48b505 100644 --- a/scripts/target/mame/tiny.lua +++ b/scripts/target/mame/tiny.lua @@ -93,7 +93,7 @@ function createProjects_mame_tiny(_target, _subtarget) kind (LIBTYPE) uuid (os.uuid("drv-mame-tiny")) addprojectflags() - precompiledheaders() + precompiledheaders_novs() includedirs { MAME_DIR .. "src/osd", diff --git a/scripts/target/mame/virtual.lua b/scripts/target/mame/virtual.lua index 3cd2a980a60..bac83176d3f 100644 --- a/scripts/target/mame/virtual.lua +++ b/scripts/target/mame/virtual.lua @@ -101,7 +101,7 @@ function createVirtualProjects(_target, _subtarget, _name) kind (LIBTYPE) uuid (os.uuid("drv-" .. _target .."_" .. _subtarget .. "_" .._name)) addprojectflags() - precompiledheaders() + precompiledheaders_novs() includedirs { MAME_DIR .. "src/osd", diff --git a/src/devices/cpu/bcp/bcpdasm.cpp b/src/devices/cpu/bcp/bcpdasm.cpp index d8d11b107cf..84b77327f37 100644 --- a/src/devices/cpu/bcp/bcpdasm.cpp +++ b/src/devices/cpu/bcp/bcpdasm.cpp @@ -6,6 +6,7 @@ ***************************************************************************/ +#include "emu.h" #include "util/disasmintf.h" #include "bcpdasm.h" diff --git a/src/devices/cpu/cr16b/cr16bdasm.cpp b/src/devices/cpu/cr16b/cr16bdasm.cpp index d9a20830513..528c817f845 100644 --- a/src/devices/cpu/cr16b/cr16bdasm.cpp +++ b/src/devices/cpu/cr16b/cr16bdasm.cpp @@ -19,6 +19,7 @@ ***************************************************************************/ +#include "emu.h" #include "util/disasmintf.h" #include "cr16bdasm.h" diff --git a/src/devices/cpu/f2mc16/f2mc16dasm.cpp b/src/devices/cpu/f2mc16/f2mc16dasm.cpp index 95b287b625e..ede0b35ac65 100644 --- a/src/devices/cpu/f2mc16/f2mc16dasm.cpp +++ b/src/devices/cpu/f2mc16/f2mc16dasm.cpp @@ -6,6 +6,7 @@ ***************************************************************************/ +#include "emu.h" #include "util/disasmintf.h" #include "f2mc16dasm.h" diff --git a/src/devices/cpu/hpc/hpcdasm.cpp b/src/devices/cpu/hpc/hpcdasm.cpp index 86c575a826e..bbfa77b8eca 100644 --- a/src/devices/cpu/hpc/hpcdasm.cpp +++ b/src/devices/cpu/hpc/hpcdasm.cpp @@ -10,6 +10,7 @@ ***************************************************************************/ +#include "emu.h" #include "util/disasmintf.h" #include "hpcdasm.h" diff --git a/src/devices/cpu/rii/riidasm.cpp b/src/devices/cpu/rii/riidasm.cpp index 72023ce5f9a..6cc0d85a384 100644 --- a/src/devices/cpu/rii/riidasm.cpp +++ b/src/devices/cpu/rii/riidasm.cpp @@ -4,8 +4,10 @@ ELAN Microelectronics RISC II (RII) Series disassembler + ***************************************************************************/ +#include "emu.h" #include "util/disasmintf.h" #include "riidasm.h"