mirror of
https://github.com/holub/mame
synced 2025-04-16 13:34:55 +03:00
200 lines
4.9 KiB
Lua
200 lines
4.9 KiB
Lua
-- license:BSD-3-Clause
|
|
-- copyright-holders:MAMEdev Team
|
|
|
|
function mainProject(_target, _subtarget)
|
|
if (_target == _subtarget) then
|
|
project (_target)
|
|
else
|
|
if (_subtarget=="mess") then
|
|
project (_subtarget)
|
|
else
|
|
project (_target .. _subtarget)
|
|
end
|
|
end
|
|
uuid (os.uuid(_target .."_" .. _subtarget))
|
|
kind "ConsoleApp"
|
|
|
|
options {
|
|
"ForceCPP",
|
|
}
|
|
flags {
|
|
"NoManifest",
|
|
"Symbols", -- always include minimum symbols for executables
|
|
}
|
|
|
|
if _OPTIONS["SYMBOLS"] then
|
|
configuration { "mingw*" }
|
|
postbuildcommands {
|
|
"$(SILENT) echo Dumping symbols.",
|
|
"$(SILENT) objdump --section=.text --line-numbers --syms --demangle $(TARGET) >$(subst .exe,.sym,$(TARGET))"
|
|
}
|
|
end
|
|
|
|
configuration { "vs*" }
|
|
flags {
|
|
"Unicode",
|
|
}
|
|
|
|
configuration { "x64", "Release" }
|
|
targetsuffix "64"
|
|
if _OPTIONS["PROFILE"] then
|
|
targetsuffix "64p"
|
|
end
|
|
|
|
configuration { "x64", "Debug" }
|
|
targetsuffix "64d"
|
|
if _OPTIONS["PROFILE"] then
|
|
targetsuffix "64dp"
|
|
end
|
|
|
|
configuration { "x32", "Release" }
|
|
targetsuffix ""
|
|
if _OPTIONS["PROFILE"] then
|
|
targetsuffix "p"
|
|
end
|
|
|
|
configuration { "x32", "Debug" }
|
|
targetsuffix "d"
|
|
if _OPTIONS["PROFILE"] then
|
|
targetsuffix "dp"
|
|
end
|
|
|
|
configuration { "Native", "Release" }
|
|
targetsuffix ""
|
|
if _OPTIONS["PROFILE"] then
|
|
targetsuffix "p"
|
|
end
|
|
|
|
configuration { "Native", "Debug" }
|
|
targetsuffix "d"
|
|
if _OPTIONS["PROFILE"] then
|
|
targetsuffix "dp"
|
|
end
|
|
|
|
configuration { "mingw*" or "vs*" }
|
|
targetextension ".exe"
|
|
|
|
configuration { "asmjs" }
|
|
targetextension ".bc"
|
|
|
|
configuration { }
|
|
|
|
if _OPTIONS["SEPARATE_BIN"]~="1" then
|
|
targetdir(MAME_DIR)
|
|
end
|
|
|
|
findfunction("linkProjects_" .. _OPTIONS["target"] .. "_" .. _OPTIONS["subtarget"])(_OPTIONS["target"], _OPTIONS["subtarget"])
|
|
links {
|
|
"osd_" .. _OPTIONS["osd"],
|
|
"bus",
|
|
"optional",
|
|
"emu",
|
|
"dasm",
|
|
"utils",
|
|
"expat",
|
|
"softfloat",
|
|
"jpeg",
|
|
"flac",
|
|
"7z",
|
|
"formats",
|
|
"lua",
|
|
"lsqlite3",
|
|
"sqllite3",
|
|
"zlib",
|
|
"jsoncpp",
|
|
"mongoose",
|
|
}
|
|
if _OPTIONS["NO_USE_MIDI"]=="0" then
|
|
links {
|
|
"portmidi",
|
|
}
|
|
end
|
|
if (USE_BGFX == 1) then
|
|
links {
|
|
"bgfx"
|
|
}
|
|
end
|
|
links{
|
|
"ocore_" .. _OPTIONS["osd"],
|
|
}
|
|
|
|
override_resources = false;
|
|
|
|
maintargetosdoptions(_target)
|
|
|
|
includedirs {
|
|
MAME_DIR .. "src/osd",
|
|
MAME_DIR .. "src/emu",
|
|
MAME_DIR .. "src/" .. _target,
|
|
MAME_DIR .. "src/lib",
|
|
MAME_DIR .. "src/lib/util",
|
|
MAME_DIR .. "3rdparty",
|
|
MAME_DIR .. "3rdparty/zlib",
|
|
GEN_DIR .. _target .. "/layout",
|
|
GEN_DIR .. "resource",
|
|
}
|
|
|
|
if _OPTIONS["targetos"]=="macosx" and (not override_resources) then
|
|
linkoptions {
|
|
"-sectcreate __TEXT __info_plist " .. GEN_DIR .. "/resource/" .. _target .. "-Info.plist"
|
|
}
|
|
custombuildtask {
|
|
{ MAME_DIR .. "src/version.c" , GEN_DIR .. "/resource/" .. _target .. "-Info.plist", { MAME_DIR .. "src/build/verinfo.py" }, {"@echo Emitting " .. _target .. "-Info.plist" .. "...", PYTHON .. " $(1) -p -b " .. _target .. " $(<) > $(@)" }},
|
|
}
|
|
dependency {
|
|
{ "$(TARGET)" , GEN_DIR .. "/resource/" .. _target .. "-Info.plist", true },
|
|
}
|
|
|
|
end
|
|
|
|
if _OPTIONS["targetos"]=="windows" and (not override_resources) then
|
|
local rcfile = MAME_DIR .. "src/" .. _target .. "/osd/".._OPTIONS["osd"].."/" .. _subtarget .. "/" .. _subtarget ..".rc"
|
|
if not os.isfile(rcfile) then
|
|
rcfile = MAME_DIR .. "src/" .. _target .. "/osd/windows/" .. _subtarget .. "/" .. _subtarget ..".rc"
|
|
end
|
|
if os.isfile(rcfile) then
|
|
files {
|
|
rcfile,
|
|
}
|
|
dependency {
|
|
{ "$(OBJDIR)/".._subtarget ..".res" , GEN_DIR .. "/resource/" .. _target .. "vers.rc", true },
|
|
}
|
|
else
|
|
files {
|
|
MAME_DIR .. "src/mame/osd/windows/mame/mame.rc",
|
|
}
|
|
dependency {
|
|
{ "$(OBJDIR)/mame.res" , GEN_DIR .. "/resource/" .. _target .. "vers.rc", true },
|
|
}
|
|
end
|
|
end
|
|
|
|
files {
|
|
MAME_DIR .. "src/".._target .."/" .. _target ..".c",
|
|
MAME_DIR .. "src/version.c",
|
|
GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.c",
|
|
}
|
|
|
|
custombuildtask {
|
|
{ MAME_DIR .. "src/".._target .."/" .. _subtarget ..".lst" , GEN_DIR .. _target .. "/" .. _subtarget .."/drivlist.c", { MAME_DIR .. "src/build/makelist.py" }, {"@echo Building driver list...", PYTHON .. " $(1) $(<) > $(@)" }},
|
|
}
|
|
|
|
configuration { "mingw*" }
|
|
custombuildtask {
|
|
{ MAME_DIR .. "src/version.c" , GEN_DIR .. "/resource/" .. _target .. "vers.rc", { MAME_DIR .. "src/build/verinfo.py" }, {"@echo Emitting " .. _target .. "vers.rc" .. "...", PYTHON .. " $(1) -r -b " .. _target .. " $(<) > $(@)" }},
|
|
}
|
|
|
|
configuration { "vs*" }
|
|
prebuildcommands {
|
|
"mkdir " .. path.translate(GEN_DIR .. "/resource/","\\") .. " 2>NUL",
|
|
"@echo Emitting ".. _target .. "vers.rc...",
|
|
PYTHON .. " " .. path.translate(MAME_DIR .. "src/build/verinfo.py","\\") .. " -r -b " .. _target .. " " .. path.translate(MAME_DIR .. "src/version.c","\\") .. " > " .. path.translate(GEN_DIR .. "/resource/" .. _target .. "vers.rc", "\\") ,
|
|
}
|
|
|
|
|
|
configuration { }
|
|
|
|
debugdir (MAME_DIR)
|
|
debugargs ("-window")
|
|
end
|