1-- license:BSD-3-Clause
2-- copyright-holders:MAMEdev Team
3
4---------------------------------------------------------------------------
5--
6--   windows.lua
7--
8--   Rules for the building for Windows
9--
10---------------------------------------------------------------------------
11
12dofile("modules.lua")
13
14
15function maintargetosdoptions(_target,_subtarget)
16	osdmodulestargetconf()
17
18	configuration { "mingw*" }
19		links {
20			"mingw32",
21		}
22
23	configuration { }
24
25	if _OPTIONS["DIRECTINPUT"] == "8" then
26		links {
27			"dinput8",
28		}
29	else
30		links {
31			"dinput",
32		}
33	end
34
35
36	if _OPTIONS["USE_SDL"] == "1" then
37		links {
38			"SDL.dll",
39		}
40	end
41
42	links {
43		"comctl32",
44		"comdlg32",
45		"psapi",
46		"ole32",
47		"shlwapi",
48	}
49end
50
51
52newoption {
53	trigger = "DIRECTINPUT",
54	description = "Minimum DirectInput version to support",
55	allowed = {
56		{ "7",  "Support DirectInput 7 or later"  },
57		{ "8",  "Support DirectInput 8 or later"  },
58	},
59}
60
61if not _OPTIONS["DIRECTINPUT"] then
62	_OPTIONS["DIRECTINPUT"] = "8"
63end
64
65newoption {
66	trigger = "USE_SDL",
67	description = "Enable SDL sound output",
68	allowed = {
69		{ "0",  "Disable SDL sound output"  },
70		{ "1",  "Enable SDL sound output"   },
71	},
72}
73
74if not _OPTIONS["USE_SDL"] then
75	_OPTIONS["USE_SDL"] = "0"
76end
77
78newoption {
79	trigger = "CYGWIN_BUILD",
80	description = "Build with Cygwin tools",
81	allowed = {
82		{ "0",  "Build with MinGW tools"   },
83		{ "1",  "Build with Cygwin tools"  },
84	},
85}
86
87if not _OPTIONS["CYGWIN_BUILD"] then
88	_OPTIONS["CYGWIN_BUILD"] = "0"
89end
90
91
92if _OPTIONS["CYGWIN_BUILD"] == "1" then
93	buildoptions {
94		"-mmo-cygwin",
95	}
96	linkoptions {
97		"-mno-cygwin",
98	}
99end
100
101
102project ("qtdbg_" .. _OPTIONS["osd"])
103	uuid (os.uuid("qtdbg_" .. _OPTIONS["osd"]))
104	kind (LIBTYPE)
105
106	dofile("windows_cfg.lua")
107	includedirs {
108		MAME_DIR .. "src/emu",
109		MAME_DIR .. "src/devices", -- accessing imagedev from debugger
110		MAME_DIR .. "src/osd",
111		MAME_DIR .. "src/lib",
112		MAME_DIR .. "src/lib/util",
113		MAME_DIR .. "src/osd/modules/render",
114		MAME_DIR .. "3rdparty",
115	}
116	qtdebuggerbuild()
117
118project ("osd_" .. _OPTIONS["osd"])
119	uuid (os.uuid("osd_" .. _OPTIONS["osd"]))
120	kind (LIBTYPE)
121
122	dofile("windows_cfg.lua")
123	osdmodulesbuild()
124
125	defines {
126		"DIRECT3D_VERSION=0x0900",
127	}
128
129	if _OPTIONS["DIRECTINPUT"] == "8" then
130		defines {
131			"DIRECTINPUT_VERSION=0x0800",
132		}
133	else
134		defines {
135			"DIRECTINPUT_VERSION=0x0700",
136		}
137	end
138
139	includedirs {
140		MAME_DIR .. "src/emu",
141		MAME_DIR .. "src/devices", -- accessing imagedev from debugger
142		MAME_DIR .. "src/osd",
143		MAME_DIR .. "src/lib",
144		MAME_DIR .. "src/lib/util",
145		MAME_DIR .. "src/osd/modules/file",
146		MAME_DIR .. "src/osd/modules/render",
147		MAME_DIR .. "3rdparty",
148	}
149
150	includedirs {
151		MAME_DIR .. "src/osd/windows",
152	}
153
154	files {
155		MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.cpp",
156		MAME_DIR .. "src/osd/modules/render/d3d/d3dcomm.h",
157		MAME_DIR .. "src/osd/modules/render/d3d/d3dhlsl.h",
158		MAME_DIR .. "src/osd/modules/render/drawd3d.cpp",
159		MAME_DIR .. "src/osd/modules/render/drawd3d.h",
160		MAME_DIR .. "src/osd/modules/render/drawgdi.cpp",
161		MAME_DIR .. "src/osd/modules/render/drawgdi.h",
162		MAME_DIR .. "src/osd/modules/render/drawnone.cpp",
163		MAME_DIR .. "src/osd/modules/render/drawnone.h",
164		MAME_DIR .. "src/osd/windows/video.cpp",
165		MAME_DIR .. "src/osd/windows/video.h",
166		MAME_DIR .. "src/osd/windows/window.cpp",
167		MAME_DIR .. "src/osd/windows/window.h",
168		MAME_DIR .. "src/osd/modules/osdwindow.cpp",
169		MAME_DIR .. "src/osd/modules/osdwindow.h",
170		MAME_DIR .. "src/osd/windows/winmenu.cpp",
171		MAME_DIR .. "src/osd/windows/winmain.cpp",
172		MAME_DIR .. "src/osd/windows/winmain.h",
173		MAME_DIR .. "src/osd/osdepend.h",
174		MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.cpp",
175		MAME_DIR .. "src/osd/modules/debugger/win/consolewininfo.h",
176		MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.cpp",
177		MAME_DIR .. "src/osd/modules/debugger/win/debugbaseinfo.h",
178		MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.cpp",
179		MAME_DIR .. "src/osd/modules/debugger/win/debugviewinfo.h",
180		MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.cpp",
181		MAME_DIR .. "src/osd/modules/debugger/win/debugwininfo.h",
182		MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.cpp",
183		MAME_DIR .. "src/osd/modules/debugger/win/disasmbasewininfo.h",
184		MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.cpp",
185		MAME_DIR .. "src/osd/modules/debugger/win/disasmviewinfo.h",
186		MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.cpp",
187		MAME_DIR .. "src/osd/modules/debugger/win/disasmwininfo.h",
188		MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.cpp",
189		MAME_DIR .. "src/osd/modules/debugger/win/editwininfo.h",
190		MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.cpp",
191		MAME_DIR .. "src/osd/modules/debugger/win/logwininfo.h",
192		MAME_DIR .. "src/osd/modules/debugger/win/logviewinfo.cpp",
193		MAME_DIR .. "src/osd/modules/debugger/win/logviewinfo.h",
194		MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.cpp",
195		MAME_DIR .. "src/osd/modules/debugger/win/memoryviewinfo.h",
196		MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.cpp",
197		MAME_DIR .. "src/osd/modules/debugger/win/memorywininfo.h",
198		MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.cpp",
199		MAME_DIR .. "src/osd/modules/debugger/win/pointswininfo.h",
200		MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.cpp",
201		MAME_DIR .. "src/osd/modules/debugger/win/uimetrics.h",
202		MAME_DIR .. "src/osd/modules/debugger/win/debugwin.h",
203	}
204
205
206project ("ocore_" .. _OPTIONS["osd"])
207	uuid (os.uuid("ocore_" .. _OPTIONS["osd"]))
208	kind (LIBTYPE)
209
210	removeflags {
211		"SingleOutputDir",
212	}
213
214	dofile("windows_cfg.lua")
215
216	includedirs {
217		MAME_DIR .. "3rdparty",
218		MAME_DIR .. "src/emu",
219		MAME_DIR .. "src/osd",
220		MAME_DIR .. "src/osd/modules/file",
221		MAME_DIR .. "src/lib",
222		MAME_DIR .. "src/lib/util",
223	}
224
225	BASE_TARGETOS = "win32"
226	SDLOS_TARGETOS = "win32"
227
228	includedirs {
229		MAME_DIR .. "src/osd/windows",
230	}
231
232	files {
233		MAME_DIR .. "src/osd/eigccppc.h",
234		MAME_DIR .. "src/osd/eigccx86.h",
235		MAME_DIR .. "src/osd/eivc.h",
236		MAME_DIR .. "src/osd/eivcx86.h",
237		MAME_DIR .. "src/osd/eminline.h",
238		MAME_DIR .. "src/osd/osdcomm.h",
239		MAME_DIR .. "src/osd/osdcore.cpp",
240		MAME_DIR .. "src/osd/osdcore.h",
241		MAME_DIR .. "src/osd/strconv.cpp",
242		MAME_DIR .. "src/osd/strconv.h",
243		MAME_DIR .. "src/osd/osdsync.cpp",
244		MAME_DIR .. "src/osd/osdsync.h",
245		MAME_DIR .. "src/osd/windows/main.cpp",
246		MAME_DIR .. "src/osd/windows/winutf8.cpp",
247		MAME_DIR .. "src/osd/windows/winutf8.h",
248		MAME_DIR .. "src/osd/windows/winutil.cpp",
249		MAME_DIR .. "src/osd/windows/winutil.h",
250		MAME_DIR .. "src/osd/modules/osdmodule.cpp",
251		MAME_DIR .. "src/osd/modules/osdmodule.h",
252		MAME_DIR .. "src/osd/modules/file/windir.cpp",
253		MAME_DIR .. "src/osd/modules/file/winfile.cpp",
254		MAME_DIR .. "src/osd/modules/file/winfile.h",
255		MAME_DIR .. "src/osd/modules/file/winptty.cpp",
256		MAME_DIR .. "src/osd/modules/file/winsocket.cpp",
257		MAME_DIR .. "src/osd/modules/lib/osdlib_win32.cpp",
258	}
259
260
261
262--------------------------------------------------
263-- ledutil
264--------------------------------------------------
265
266if _OPTIONS["with-tools"] then
267	project("ledutil")
268		uuid ("061293ca-7290-44ac-b2b5-5913ae8dc9c0")
269		kind "ConsoleApp"
270
271		flags {
272			"Symbols", -- always include minimum symbols for executables
273		}
274
275		if _OPTIONS["SEPARATE_BIN"]~="1" then
276			targetdir(MAME_DIR)
277		end
278
279		links {
280			"ocore_" .. _OPTIONS["osd"],
281		}
282
283		includedirs {
284			MAME_DIR .. "src/osd",
285		}
286
287		files {
288			MAME_DIR .. "src/osd/windows/ledutil.cpp",
289		}
290end
291