summaryrefslogtreecommitdiffhomepage
path: root/Stars45/CMakeLists.txt
blob: 7247082209e7c1c79a123effd6ad65115491a900 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
project(Stars45)
include(GitDescribe)
include(GitToResource)
add_executable(
	Stars45 WIN32
	ActiveWindow.cpp
	ApplicationDX9.cpp
	Archive.cpp
	Asteroid.cpp
	AudDlg.cpp
	AudioConfig.cpp
	AwardDlg.cpp
	AwardShowDlg.cpp
	Bitmap.cpp
	Bmp.cpp
	Bolt.cpp
	Button.cpp
	Callsign.cpp
	Camera.cpp
	CameraDirector.cpp
	CameraView.cpp
	Campaign.cpp
	CampaignMissionFighter.cpp
	CampaignMissionRequest.cpp
	CampaignMissionStarship.cpp
	CampaignPlanAssignment.cpp
	CampaignPlanEvent.cpp
	CampaignPlanMission.cpp
	CampaignPlanMovement.cpp
	CampaignPlanStrategic.cpp
	CampaignSaveGame.cpp
	CampaignSituationReport.cpp
	CarrierAI.cpp
	Clock.cpp
	CmdDlg.cpp
	CmdForceDlg.cpp
	CmdIntelDlg.cpp
	CmdMissionsDlg.cpp
	CmdMsgDlg.cpp
	CmdOrdersDlg.cpp
	CmdTheaterDlg.cpp
	CmdTitleDlg.cpp
	CmpCompleteDlg.cpp
	CmpFileDlg.cpp
	CmpLoadDlg.cpp
	CmpSceneDlg.cpp
	CmpSelectDlg.cpp
	CmpnScreen.cpp
	Color.cpp
	CombatAction.cpp
	CombatAssignment.cpp
	CombatEvent.cpp
	CombatGroup.cpp
	CombatRoster.cpp
	CombatUnit.cpp
	CombatZone.cpp
	Combatant.cpp
	ComboBox.cpp
	ComboList.cpp
	Component.cpp
	Computer.cpp
	ConfirmDlg.cpp
	Contact.cpp
	ContentBundle.cpp
	CtlDlg.cpp
	D3DXImage.cpp
	DataLoader.cpp
	DebriefDlg.cpp
	Debris.cpp
	DetailSet.cpp
	DisplayView.cpp
	Drive.cpp
	DriveSprite.cpp
	Drone.cpp
	DropShipAI.cpp
	EditBox.cpp
	Element.cpp
	Encrypt.cpp
	EngDlg.cpp
	EventDispatch.cpp
	ExceptionHandler.cpp
	ExitDlg.cpp
	Explosion.cpp
	FadeView.cpp
	Farcaster.cpp
	FighterAI.cpp
	FighterTacticalAI.cpp
	FirstTimeDlg.cpp
	Fix.cpp
	FlightComp.cpp
	FlightDeck.cpp
	FlightPlanner.cpp
	FltDlg.cpp
	Font.cpp
	FontMgr.cpp
	FormDef.cpp
	FormWindow.cpp
	FormatUtil.cpp
	Galaxy.cpp
	Game.cpp
	GameScreen.cpp
	Geometry.cpp
	Graphic.cpp
	Grid.cpp
	GroundAI.cpp
	HUDSounds.cpp
	HUDView.cpp
	Hangar.cpp
	HardPoint.cpp
	Hoop.cpp
	ImageBox.cpp
	ImgView.cpp
	Instruction.cpp
	Intel.cpp
	JoyDlg.cpp
	Joystick.cpp
	KeyDlg.cpp
	KeyMap.cpp
	Keyboard.cpp
	LandingGear.cpp
	Layout.cpp
	Light.cpp
	ListBox.cpp
	LoadDlg.cpp
	LoadScreen.cpp
	Locale_ss.cpp
	MCIWave.cpp
	MachineInfo.cpp
	Main.cpp
	MapView.cpp
	Menu.cpp
	MenuDlg.cpp
	MenuScreen.cpp
	MenuView.cpp
	Mfd.cpp
	Mission.cpp
	MissionEvent.cpp
	MissionTemplate.cpp
	ModConfig.cpp
	ModDlg.cpp
	ModInfo.cpp
	ModInfoDlg.cpp
	Mouse.cpp
	MouseController.cpp
	MsnDlg.cpp
	MsnEditDlg.cpp
	MsnEditNavDlg.cpp
	MsnElemDlg.cpp
	MsnEventDlg.cpp
	MsnNavDlg.cpp
	MsnObjDlg.cpp
	MsnPkgDlg.cpp
	MsnSelectDlg.cpp
	MsnWepDlg.cpp
	MultiController.cpp
	MusicDirector.cpp
	MusicTrack.cpp
	NPClientWraps.cpp
	NavAI.cpp
	NavDlg.cpp
	NavLight.cpp
	NavSystem.cpp
	NetAddrDlg.cpp
	NetAdminChat.cpp
	NetAdminServer.cpp
	NetAuth.cpp
	NetBrokerClient.cpp
	NetChat.cpp
	NetClientConfig.cpp
	NetClientDlg.cpp
	NetData.cpp
	NetFileServlet.cpp
	NetGame.cpp
	NetGameClient.cpp
	NetGameServer.cpp
	NetLobby.cpp
	NetLobbyClient.cpp
	NetLobbyDlg.cpp
	NetLobbyServer.cpp
	NetPacket.cpp
	NetPassDlg.cpp
	NetPlayer.cpp
	NetServerConfig.cpp
	NetServerDlg.cpp
	NetUnitDlg.cpp
	NetUser.cpp
	NetUtil.cpp
	OptDlg.cpp
	PCX.CPP
	Panic.cpp
	ParseUtil.cpp
	Parser.cpp
	Particles.cpp
	Physical.cpp
	PlanScreen.cpp
	Player.cpp
	PlayerDlg.cpp
	PngImage.cpp
	Polygon.cpp
	Power.cpp
	Projector.cpp
	QuantumDrive.cpp
	QuantumFlash.cpp
	QuantumView.cpp
	QuitView.cpp
	RLoc.cpp
	RadioHandler.cpp
	RadioMessage.cpp
	RadioTraffic.cpp
	RadioView.cpp
	RadioVox.cpp
	Random.cpp
	Reader.cpp
	Res.cpp
	RichTextBox.cpp
	Scene.cpp
	Screen.cpp
	ScrollWindow.cpp
	SeekerAI.cpp
	Sensor.cpp
	Sha1.cpp
	Shadow.cpp
	Shield.cpp
	ShieldRep.cpp
	Ship.cpp
	ShipAI.cpp
	ShipCtrl.cpp
	ShipDesign.cpp
	ShipKiller.cpp
	ShipSolid.cpp
	Shot.cpp
	Sim.cpp
	SimEvent.cpp
	SimObject.cpp
	Skin.cpp
	Sky.cpp
	Slider.cpp
	Solid.cpp
	Sound.cpp
	SoundCard.cpp
	SoundD3D.cpp
	Sprite.cpp
	StarServer.cpp
	StarSystem.cpp
	Starshatter.cpp
	StarshipAI.cpp
	StarshipTacticalAI.cpp
	SteerAI.cpp
	System.cpp
	SystemDesign.cpp
	TacRefDlg.cpp
	TacticalAI.cpp
	TacticalView.cpp
	Term.cpp
	Terrain.cpp
	TerrainApron.cpp
	TerrainClouds.cpp
	TerrainHaze.cpp
	TerrainPatch.cpp
	TerrainRegion.cpp
	TexCubeDX9.cpp
	TexDX9.cpp
	Thruster.cpp
	Token.cpp
	TrackIR.cpp
	Trail.cpp
	VidDlg.cpp
	Video.cpp
	VideoDX9.cpp
	VideoDX9Enum.cpp
	VideoDX9VertexBuffer.cpp
	VideoFactory.cpp
	VideoSettings.cpp
	Water.cpp
	Weapon.cpp
	WeaponDesign.cpp
	WeaponGroup.cpp
	Weather.cpp
	WebBrowser.cpp
	WepView.cpp
	Window.cpp
	)
target_include_directories(
	Stars45
	PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}
	)
target_link_libraries(
	Stars45
	PUBLIC FoundationEx
	PUBLIC NetEx
	PUBLIC Zlib::zlib
	PUBLIC Vorbis::vorbis
	PUBLIC Vorbis::vorbisfile
	PUBLIC Ogg::ogg
	PUBLIC Png::png
	PUBLIC Opcode
	)
target_compile_definitions(
	Stars45
	PRIVATE _ALLOW_KEYWORD_MACROS
	)
git_describe(VERSION)
git_to_resource(RC_VERSION ${VERSION})
configure_file(Stars.rc.conf ${CMAKE_CURRENT_BINARY_DIR}/Stars.rc @ONLY)
configure_file(VersionInfo.cpp.conf ${CMAKE_CURRENT_BINARY_DIR}/VersionInfo.cpp @ONLY)
target_sources(
	Stars45
	PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/Stars.rc
	PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/VersionInfo.cpp
	)
set_target_properties(Stars45 PROPERTIES OUTPUT_NAME Starshatter)
if(MSVC)
	target_include_directories(
		Stars45
		PUBLIC $ENV{DXSDK_DIR}/Include
		PUBLIC ${WINDOWSSDK_PATH}/um
		PUBLIC ${WINDOWSSDK_PATH}/shared
		)
	target_link_libraries(
		Stars45
		PUBLIC ${WINDOWSSDK_LIBPATH}/um/x86/Ws2_32.lib
		PUBLIC ${WINDOWSSDK_LIBPATH}/um/x86/Vfw32.lib
		PUBLIC ${WINDOWSSDK_LIBPATH}/um/x86/wsock32.lib
		PUBLIC ${WINDOWSSDK_LIBPATH}/um/x86/winmm.lib
		PUBLIC ${WINDOWSSDK_LIBPATH}/um/x86/version.lib
		PUBLIC $ENV{DXSDK_DIR}/Lib/x86/dinput8.lib
		PUBLIC $ENV{DXSDK_DIR}/Lib/x86/dsound.lib
		PUBLIC $ENV{DXSDK_DIR}/Lib/x86/d3d9.lib
		PUBLIC $ENV{DXSDK_DIR}/Lib/x86/d3dx9.lib
		PUBLIC $ENV{DXSDK_DIR}/Lib/x86/dxguid.lib
		)
else()
	target_link_libraries(
		Stars45
		PUBLIC -l:libws2_32.a
		PUBLIC -l:libvfw32.a
		PUBLIC -l:libwsock32.a
		PUBLIC -l:libwinmm.a
		PUBLIC -l:libversion.a
		PUBLIC -l:libdinput8.a
		PUBLIC -l:libdsound.a
		PUBLIC -l:libd3d9.a
		PUBLIC -l:libd3dx9.a
		PUBLIC -l:libdxguid.a
		)
endif()
install(TARGETS Stars45 RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX})