VirtualBox

source: vbox/trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk@ 55095

Last change on this file since 55095 was 55095, checked in by vboxsync, 10 years ago

Assorted fixes for FreeBSD hosts, VBox compiles and runs again without further patches (tested on 10.1 amd64 )

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 45.0 KB
Line 
1# $Id: Makefile.kmk 55095 2015-04-02 16:52:46Z vboxsync $
2## @file
3# Makefile for the VirtualBox Qt GUI.
4#
5
6#
7# Copyright (C) 2006-2014 Oracle Corporation
8#
9# This file is part of VirtualBox Open Source Edition (OSE), as
10# available from http://www.virtualbox.org. This file is free software;
11# you can redistribute it and/or modify it under the terms of the GNU
12# General Public License (GPL) as published by the Free Software
13# Foundation, in version 2 as it comes in the "COPYING" file of the
14# VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15# hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16#
17
18SUB_DEPTH = ../../../..
19include $(KBUILD_PATH)/subheader.kmk
20
21#
22# Globals.
23#
24VBOX_VIRTUALBOX4_SRC := $(PATH_SUB_CURRENT)
25VBOX_VIRTUALBOX4_OUT_DIR := $(PATH_TARGET)/VirtualBox/misc
26
27# Show the update notifier dialog during startup. If this setting is disabled
28# the user can still update using the menu if desired.
29ifndef VBOX_OSE
30VBOX_WITH_UPDATE_REQUEST := 1
31endif
32
33#
34# The targets.
35#
36ifdef VBOX_WITH_HARDENING
37PROGRAMS += VirtualBoxHardened
38DLLS += VirtualBox
39else
40PROGRAMS += VirtualBox
41endif
42
43INSTALLS += VirtualBox.nls
44
45
46#
47# Include the language lists.
48#
49include $(PATH_SUB_CURRENT)/nls/ApprovedLanguages.kmk
50
51
52#
53# Hardened VirtualBox.
54#
55VirtualBoxHardened_TEMPLATE = VBOXR3HARDENEDEXE
56VirtualBoxHardened_SOURCES = src/hardenedmain.cpp
57VirtualBoxHardened_SOURCES.win = src/platform/win/VirtualBoxHardened.rc
58VirtualBoxHardened_NAME = VirtualBox
59VirtualBoxHardened_INST.darwin = $(INST_BIN)VirtualBox $(INST_BIN)VirtualBoxVM
60VirtualBoxHardened_LDFLAGS.win = /SUBSYSTEM:$(if-expr "$(KBUILD_TYPE)" != "release",console,windows)
61src/platform/win/VirtualBoxHardened.rc_INCS = $(VirtualBox_0_OUTDIR)
62src/platform/win/VirtualBoxHardened.rc_DEPS = $(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc
63
64
65#
66# Include Qt project file, we'll use FORMS and TRANSLATIONS in
67# the VirtualBox setup below.
68#
69SAVED_TEMPLATE := $(TEMPLATE)
70include $(PATH_SUB_CURRENT)/VBoxUI.pro
71
72
73#
74# VirtualBox - The GUI program.
75#
76USES += qt4
77VirtualBox_TEMPLATE := $(if $(VBOX_WITH_HARDENING),VBOXQT4GUI,VBOXQT4GUIEXE)
78VirtualBox_NAME = VirtualBox
79ifndef VBOX_WITH_HARDENING # For the launch trick we need different inode numbers.
80 VirtualBox_INST.darwin = $(INST_BIN)VirtualBox $(INST_BIN)VirtualBoxVM
81endif
82VirtualBox_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK)
83
84VirtualBox_DEFS =
85VirtualBox_DEFS.debug = VBOX_CHECK_STATE # QT_FATAL_ASSERT
86VirtualBox_DEFS.linux = VBOX_WITH_MASKED_SEAMLESS VBOX_WITH_TRANSLUCENT_SEAMLESS
87VirtualBox_DEFS.solaris = VBOX_WITH_MASKED_SEAMLESS VBOX_WITH_TRANSLUCENT_SEAMLESS
88VirtualBox_DEFS.freebsd = VBOX_WITH_MASKED_SEAMLESS VBOX_WITH_TRANSLUCENT_SEAMLESS
89VirtualBox_DEFS.darwin = VBOX_WITH_TRANSLUCENT_SEAMLESS # VBOX_WITH_MASKED_SEAMLESS
90VirtualBox_DEFS.win = VBOX_WITH_MASKED_SEAMLESS # VBOX_WITH_TRANSLUCENT_SEAMLESS
91VirtualBox_DEFS.win += UNICODE QT_DLL
92ifdef VBOX_WITH_ICHAT_THEATER
93 VirtualBox_DEFS.darwin += VBOX_WITH_ICHAT_THEATER
94endif
95VirtualBox_DEFS += \
96 $(if $(VBOX_WITH_ADDITIONS_AUTOUPDATE_UI),VBOX_WITH_ADDITIONS_AUTOUPDATE_UI) \
97 $(if $(VBOX_WITH_UPDATE_REQUEST),VBOX_WITH_UPDATE_REQUEST) \
98 $(if $(VBOX_WITH_ALSA),VBOX_WITH_ALSA) \
99 $(if $(VBOX_WITH_PULSE),VBOX_WITH_PULSE) \
100 $(if $(VBOX_WITH_SOLARIS_OSS),VBOX_WITH_SOLARIS_OSS) \
101 $(if $(VBOX_WITH_E1000),VBOX_WITH_E1000) \
102 $(if $(VBOX_WITH_NETFLT)$(eq $(KBUILD_TARGET),freebsd),VBOX_WITH_NETFLT) \
103 $(if $(VBOX_WITH_VDE),VBOX_WITH_VDE) \
104 $(if $(VBOX_WITH_UDPTUNNEL),VBOX_WITH_UDPTUNNEL) \
105 $(if $(VBOX_WITH_EXTPACK),VBOX_WITH_EXTPACK) \
106 $(if $(VBOX_WITH_EHCI),VBOX_WITH_EHCI) \
107 $(if $(VBOX_WITH_HARDENING),VBOXR3_HARDENED_DLL) \
108 $(if $(VBOX_WITH_DRAG_AND_DROP),VBOX_WITH_DRAG_AND_DROP) \
109 $(if $(VBOX_WITH_DRAG_AND_DROP_GH),VBOX_WITH_DRAG_AND_DROP_GH) \
110 $(if $(VBOX_WITH_CRHGSMI),VBOX_WITH_CRHGSMI) \
111 $(if $(VBOX_WITH_VIRTIO),VBOX_WITH_VIRTIO) \
112 $(if $(VBOX_WITH_WDDM),VBOX_WITH_WDDM) \
113 $(if $(VBOX_WITH_CROGL),VBOX_WITH_CROGL) \
114 $(if $(VBOX_GUI_WITH_HIDPI),VBOX_GUI_WITH_HIDPI) \
115 $(if $(VBOX_GUI_WITH_PIDFILE),VBOX_GUI_WITH_PIDFILE) \
116 $(if $(VBOX_GUI_WITH_KEYS_RESET_HANDLER),VBOX_GUI_WITH_KEYS_RESET_HANDLER) \
117 $(if $(VBOX_GUI_WITH_CUSTOMIZATIONS1),VBOX_GUI_WITH_CUSTOMIZATIONS1)
118ifdef VBOX_WITH_DEBUGGER_GUI
119 VirtualBox_DEFS += VBOX_WITH_DEBUGGER_GUI
120 if "$(KBUILD_TYPE)" != "release"
121 VirtualBox_DEFS += VBOX_WITH_DEBUGGER_GUI_MENU
122 endif
123endif
124ifdef VBOX_WITH_VIDEOHWACCEL
125 VirtualBox_DEFS += VBOX_WITH_VIDEOHWACCEL \
126 VBOX_GUI_USE_QGL
127else ifdef VBOX_GUI_USE_QGL
128 VirtualBox_DEFS += VBOX_GUI_USE_QGL
129endif
130ifdef VBOX_WITH_LIBCURL
131 VirtualBox_DEFS += VBOX_GUI_WITH_NETWORK_MANAGER
132 VBOX_GUI_WITH_NETWORK_MANAGER := 1
133endif
134ifdef VBOX_BLEEDING_EDGE
135VirtualBox_src/selector/UISelectorWindow.cpp_DEFS += \
136 VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\"
137VirtualBox_src/runtime/UIMachineWindow.cpp_DEFS += \
138 VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\"
139VirtualBox_src/VBoxAboutDlg.cpp_DEFS += \
140 VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\"
141VirtualBox_src/main.cpp_DEFS += \
142 VBOX_BLEEDING_EDGE=\"$(VBOX_BLEEDING_EDGE)\"
143endif
144
145
146
147VBOX_GUI_INC_DIRS = \
148 ./src \
149 ./src/converter \
150 ./src/extensions \
151 ./src/extensions/graphics \
152 ./src/extradata \
153 ./src/globals \
154 ./src/medium \
155 ./src/platform \
156 ./src/platform/darwin \
157 ./src/platform/win \
158 ./src/platform/x11 \
159 ./src/runtime \
160 ./src/runtime/fullscreen \
161 ./src/runtime/normal \
162 ./src/runtime/scale \
163 ./src/runtime/seamless \
164 ./src/selector \
165 ./src/selector/graphics/chooser \
166 ./src/selector/graphics/details \
167 ./src/settings \
168 ./src/settings/global \
169 ./src/settings/machine \
170 ./src/widgets \
171 ./src/widgets/graphics \
172 ./src/wizards \
173 ./src/wizards/newvm \
174 ./src/wizards/newvd \
175 ./src/wizards/clonevm \
176 ./src/wizards/clonevd \
177 ./src/wizards/exportappliance \
178 ./src/wizards/importappliance \
179 ./src/wizards/firstrun
180
181ifdef VBOX_GUI_WITH_NETWORK_MANAGER
182VBOX_GUI_INC_DIRS += \
183 ./src/net
184endif
185
186VirtualBox_INCS = \
187 $(VBOX_GUI_INC_DIRS) \
188 $(VirtualBox_0_OUTDIR)/include
189
190# Necessary for the hdd backend enumeration
191VirtualBox_LIBS = $(LIB_DDU)
192
193if1of ($(KBUILD_TARGET), linux netbsd openbsd)
194 VirtualBox_LIBS += dl
195endif
196
197# This library is required for multi-monitor support
198VirtualBox_LIBS.linux += Xinerama
199VirtualBox_LIBS.solaris += Xinerama
200VirtualBox_LIBS.freebsd += Xinerama
201
202ifneq ($(KBUILD_TARGET),win)
203VirtualBox_CXXFLAGS += -Wno-switch
204endif
205
206ifeq ($(KBUILD_TYPE),release)
207 VirtualBox_LDFLAGS.win += /SUBSYSTEM:windows
208else
209 VirtualBox_LDFLAGS.linux += -rdynamic # for backtrace_symbols()
210 VirtualBox_LDFLAGS.win += /SUBSYSTEM:console
211endif
212
213# delay loading causes VM process crashes due to the misbehave of the current QtOpenGLVBox4.dll we use
214# (i.e. it does not create the ogl context properly when loaded this way)
215#
216# @todo: investigate a better work-around and enable back delay loading since it is needed to avoid
217# crashes caused by buggy ogl drivers for the case 2D is not used (i.e. no ogl stuff loaded)
218#if defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_GUI_USE_QGL)
219# VirtualBox_LDFLAGS.win += /DelayLoad:QtOpenGLVBox4.dll /DelayLoad:OPENGL32.dll
220#endif
221
222VirtualBox_LDFLAGS.darwin = \
223 -framework AppKit -framework Carbon -framework IOKit \
224 $(if $(VBOX_WITH_HARDENING),-install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VirtualBox.dylib)
225ifdef VBOX_WITH_ICHAT_THEATER
226 VirtualBox_LDFLAGS.darwin += -framework InstantMessage -framework QuartzCore
227endif
228
229VirtualBox_LIBS.win = \
230 $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Htmlhelp.Lib \
231 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/ddraw.lib \
232 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib
233if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # X11
234 VirtualBox_LIBS += $(PATH_STAGE_DLL)/VBoxKeyboard$(VBOX_SUFF_DLL)
235endif
236
237if defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_GUI_USE_QGL)
238 VirtualBox_LIBS.win += $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Opengl32.lib
239 VirtualBox_LIBS.solaris += GL
240 VirtualBox_LIBS.linux += GL
241 VirtualBox_LIBS.freebsd += GL
242 VirtualBox_LDFLAGS.darwin += -framework OpenGL
243endif
244ifdef VBOX_WITH_CROGL
245 VirtualBox_LIBS += $(PATH_STAGE_LIB)/VBoxOGLTest$(VBOX_SUFF_LIB)
246endif
247
248
249# Headers containing definitions of classes that use the Q_OBJECT macro.
250VirtualBox_QT_MOCHDRS = \
251 src/UIMediumTypeChangeDialog.h \
252 src/VBoxAboutDlg.h \
253 src/VBoxGlobalSettings.h \
254 src/VBoxLicenseViewer.h \
255 src/VBoxSnapshotDetailsDlg.h \
256 src/VBoxTakeSnapshotDlg.h \
257 src/UIVMInfoDialog.h \
258 src/UIVMLogViewer.h \
259 src/extensions/QIAdvancedSlider.h \
260 src/extensions/QIArrowButtonPress.h \
261 src/extensions/QIArrowButtonSwitch.h \
262 src/extensions/QIArrowSplitter.h \
263 src/extensions/QIDialog.h \
264 src/extensions/QIFileDialog.h \
265 src/extensions/QILabel.h \
266 src/extensions/QILabelSeparator.h \
267 src/extensions/QIListView.h \
268 src/extensions/QIMainDialog.h \
269 src/extensions/QIMenu.h \
270 src/extensions/QIMessageBox.h \
271 src/extensions/QIProcess.h \
272 src/extensions/QIRichTextLabel.h \
273 src/extensions/QIRichToolButton.h \
274 src/extensions/QISplitter.h \
275 src/extensions/QIStatusBar.h \
276 src/extensions/QIStatusBarIndicator.h \
277 src/extensions/QIStyledItemDelegate.h \
278 src/extensions/QITabWidget.h \
279 src/extensions/QITableView.h \
280 src/extensions/QIToolButton.h \
281 src/extensions/QITreeView.h \
282 src/extensions/QITreeWidget.h \
283 src/extensions/QIWidgetValidator.h \
284 src/extensions/QIAdvancedToolBar.h \
285 src/extensions/graphics/QIGraphicsWidget.h \
286 src/extradata/UIExtraDataDefs.h \
287 src/extradata/UIExtraDataManager.h \
288 src/globals/UIActionPool.h \
289 src/globals/UIAnimationFramework.h \
290 src/globals/UIMainEventListener.h \
291 src/globals/UIMessageCenter.h \
292 src/globals/UIModalWindowManager.h \
293 src/globals/UIPopupCenter.h \
294 src/globals/UIShortcutPool.h \
295 src/globals/UIThreadPool.h \
296 src/globals/VBoxGlobal.h \
297 src/globals/VBoxUtils.h \
298 src/medium/UIMediumEnumerator.h \
299 src/medium/UIMediumManager.h \
300 src/runtime/UIActionPoolRuntime.h \
301 src/runtime/UIAddDiskEncryptionPasswordDialog.h \
302 src/runtime/UIConsoleEventHandler.h \
303 src/runtime/UIFrameBuffer.h \
304 src/runtime/UIIndicatorsPool.h \
305 src/runtime/UIKeyboardHandler.h \
306 src/runtime/UIMachine.h \
307 src/runtime/UIMachineLogic.h \
308 src/runtime/UIMachineWindow.h \
309 src/runtime/UIMachineView.h \
310 src/runtime/UIMenuBarEditorWindow.h \
311 src/runtime/UIMouseHandler.h \
312 src/runtime/UIMultiScreenLayout.h \
313 src/runtime/UISession.h \
314 src/runtime/UISlidingToolBar.h \
315 src/runtime/UIStatusBarEditorWindow.h \
316 src/runtime/UIVMCloseDialog.h \
317 src/runtime/fullscreen/UIKeyboardHandlerFullscreen.h \
318 src/runtime/fullscreen/UIMachineLogicFullscreen.h \
319 src/runtime/fullscreen/UIMachineViewFullscreen.h \
320 src/runtime/fullscreen/UIMachineWindowFullscreen.h \
321 src/runtime/normal/UIKeyboardHandlerNormal.h \
322 src/runtime/normal/UIMachineLogicNormal.h \
323 src/runtime/normal/UIMachineViewNormal.h \
324 src/runtime/normal/UIMachineWindowNormal.h \
325 src/runtime/scale/UIKeyboardHandlerScale.h \
326 src/runtime/scale/UIMachineLogicScale.h \
327 src/runtime/scale/UIMachineViewScale.h \
328 src/runtime/scale/UIMachineWindowScale.h \
329 src/runtime/seamless/UIKeyboardHandlerSeamless.h \
330 src/runtime/seamless/UIMachineLogicSeamless.h \
331 src/runtime/seamless/UIMachineViewSeamless.h \
332 src/runtime/seamless/UIMachineWindowSeamless.h \
333 src/selector/UIActionPoolSelector.h \
334 src/selector/UIVMDesktop.h \
335 src/selector/UIVMItem.h \
336 src/selector/UIVirtualBoxEventHandler.h \
337 src/selector/UISelectorWindow.h \
338 src/selector/VBoxSnapshotsWgt.h \
339 src/selector/graphics/chooser/UIGChooser.h \
340 src/selector/graphics/chooser/UIGChooserModel.h \
341 src/selector/graphics/chooser/UIGChooserView.h \
342 src/selector/graphics/chooser/UIGChooserHandlerMouse.h \
343 src/selector/graphics/chooser/UIGChooserHandlerKeyboard.h \
344 src/selector/graphics/chooser/UIGChooserItem.h \
345 src/selector/graphics/chooser/UIGChooserItemGroup.h \
346 src/selector/graphics/chooser/UIGChooserItemMachine.h \
347 src/selector/graphics/details/UIGDetails.h \
348 src/selector/graphics/details/UIGDetailsModel.h \
349 src/selector/graphics/details/UIGDetailsView.h \
350 src/selector/graphics/details/UIGDetailsItem.h \
351 src/selector/graphics/details/UIGDetailsGroup.h \
352 src/selector/graphics/details/UIGDetailsSet.h \
353 src/selector/graphics/details/UIGDetailsElement.h \
354 src/selector/graphics/details/UIGDetailsElements.h \
355 src/selector/graphics/details/UIGMachinePreview.h \
356 src/settings/UISettingsDialog.h \
357 src/settings/UISettingsDialogSpecific.h \
358 src/settings/UISettingsPage.h \
359 src/settings/UISettingsSerializer.h \
360 src/settings/VBoxSettingsSelector.h \
361 src/settings/global/UIGlobalSettingsExtension.h \
362 src/settings/global/UIGlobalSettingsGeneral.h \
363 src/settings/global/UIGlobalSettingsInput.h \
364 src/settings/global/UIGlobalSettingsLanguage.h \
365 src/settings/global/UIGlobalSettingsDisplay.h \
366 src/settings/global/UIGlobalSettingsNetwork.h \
367 src/settings/global/UIGlobalSettingsNetworkDetailsNAT.h \
368 src/settings/global/UIGlobalSettingsNetworkDetailsHost.h \
369 src/settings/global/UIGlobalSettingsPortForwardingDlg.h \
370 src/settings/machine/UIMachineSettingsAudio.h \
371 src/settings/machine/UIMachineSettingsDisplay.h \
372 src/settings/machine/UIMachineSettingsGeneral.h \
373 src/settings/machine/UIMachineSettingsInterface.h \
374 src/settings/machine/UIMachineSettingsNetwork.h \
375 src/settings/machine/UIMachineSettingsParallel.h \
376 src/settings/machine/UIMachineSettingsPortForwardingDlg.h \
377 src/settings/machine/UIMachineSettingsSF.h \
378 src/settings/machine/UIMachineSettingsSFDetails.h \
379 src/settings/machine/UIMachineSettingsSerial.h \
380 src/settings/machine/UIMachineSettingsStorage.h \
381 src/settings/machine/UIMachineSettingsSystem.h \
382 src/settings/machine/UIMachineSettingsUSB.h \
383 src/settings/machine/UIMachineSettingsUSBFilterDetails.h \
384 src/widgets/UIApplianceEditorWidget.h \
385 src/widgets/UIApplianceExportEditorWidget.h \
386 src/widgets/UIApplianceImportEditorWidget.h \
387 src/widgets/UIBar.h \
388 src/widgets/UIBootTable.h \
389 src/widgets/UIHostComboEditor.h \
390 src/widgets/UIHotKeyEditor.h \
391 src/widgets/UILineTextEdit.h \
392 src/widgets/UIMenuBar.h \
393 src/widgets/UIPopupBox.h \
394 src/widgets/UIPopupPane.h \
395 src/widgets/UIPopupPaneTextPane.h \
396 src/widgets/UIPopupPaneButtonPane.h \
397 src/widgets/UIPopupStack.h \
398 src/widgets/UIPopupStackViewport.h \
399 src/widgets/UIPortForwardingTable.h \
400 src/widgets/UIProgressDialog.h \
401 src/widgets/UISpacerWidgets.h \
402 src/widgets/UISpecialControls.h \
403 src/widgets/UIToolBar.h \
404 src/widgets/VBoxFilePathSelectorWidget.h \
405 src/widgets/VBoxMediaComboBox.h \
406 src/widgets/UIMiniToolBar.h \
407 src/widgets/VBoxOSTypeSelectorButton.h \
408 src/widgets/UINameAndSystemEditor.h \
409 src/widgets/UIWarningPane.h \
410 src/widgets/UIFilmContainer.h \
411 src/widgets/graphics/UIGraphicsButton.h \
412 src/widgets/graphics/UIGraphicsRotatorButton.h \
413 src/widgets/graphics/UIGraphicsZoomButton.h \
414 src/widgets/graphics/UIGraphicsToolBar.h \
415 src/widgets/graphics/UIGraphicsTextPane.h \
416 src/wizards/UIWizard.h \
417 src/wizards/UIWizardPage.h \
418 src/wizards/newvm/UIWizardNewVM.h \
419 src/wizards/newvm/UIWizardNewVMPageBasic1.h \
420 src/wizards/newvm/UIWizardNewVMPageBasic2.h \
421 src/wizards/newvm/UIWizardNewVMPageBasic3.h \
422 src/wizards/newvm/UIWizardNewVMPageExpert.h \
423 src/wizards/newvd/UIWizardNewVD.h \
424 src/wizards/newvd/UIWizardNewVDPageBasic1.h \
425 src/wizards/newvd/UIWizardNewVDPageBasic2.h \
426 src/wizards/newvd/UIWizardNewVDPageBasic3.h \
427 src/wizards/newvd/UIWizardNewVDPageExpert.h \
428 src/wizards/clonevm/UIWizardCloneVM.h \
429 src/wizards/clonevm/UIWizardCloneVMPageBasic1.h \
430 src/wizards/clonevm/UIWizardCloneVMPageBasic2.h \
431 src/wizards/clonevm/UIWizardCloneVMPageBasic3.h \
432 src/wizards/clonevm/UIWizardCloneVMPageExpert.h \
433 src/wizards/clonevd/UIWizardCloneVD.h \
434 src/wizards/clonevd/UIWizardCloneVDPageBasic1.h \
435 src/wizards/clonevd/UIWizardCloneVDPageBasic2.h \
436 src/wizards/clonevd/UIWizardCloneVDPageBasic3.h \
437 src/wizards/clonevd/UIWizardCloneVDPageBasic4.h \
438 src/wizards/clonevd/UIWizardCloneVDPageExpert.h \
439 src/wizards/exportappliance/UIWizardExportApp.h \
440 src/wizards/exportappliance/UIWizardExportAppPageBasic1.h \
441 src/wizards/exportappliance/UIWizardExportAppPageBasic2.h \
442 src/wizards/exportappliance/UIWizardExportAppPageBasic3.h \
443 src/wizards/exportappliance/UIWizardExportAppPageBasic4.h \
444 src/wizards/exportappliance/UIWizardExportAppPageExpert.h \
445 src/wizards/importappliance/UIWizardImportApp.h \
446 src/wizards/importappliance/UIWizardImportAppPageBasic1.h \
447 src/wizards/importappliance/UIWizardImportAppPageBasic2.h \
448 src/wizards/importappliance/UIWizardImportAppPageExpert.h \
449 src/wizards/firstrun/UIWizardFirstRun.h \
450 src/wizards/firstrun/UIWizardFirstRunPageBasic.h
451
452ifdef VBOX_GUI_WITH_NETWORK_MANAGER
453 VirtualBox_QT_MOCHDRS += \
454 src/net/UINetworkManager.h \
455 src/net/UINetworkManagerDialog.h \
456 src/net/UINetworkManagerIndicator.h \
457 src/net/UINetworkRequest.h \
458 src/net/UINetworkRequestWidget.h \
459 src/net/UINetworkReply.h \
460 src/net/UINetworkCustomer.h \
461 src/net/UIUpdateManager.h \
462 src/net/UIDownloader.h \
463 src/net/UIDownloaderAdditions.h \
464 src/net/UIDownloaderExtensionPack.h \
465 src/net/UIDownloaderUserManual.h \
466 src/settings/global/UIGlobalSettingsProxy.h \
467 src/settings/global/UIGlobalSettingsUpdate.h
468endif
469
470ifdef VBOX_WITH_DRAG_AND_DROP
471 VirtualBox_QT_MOCHDRS += \
472 src/runtime/UIDnDHandler.h
473 ifdef VBOX_WITH_DRAG_AND_DROP_GH
474 VirtualBox_QT_MOCHDRS += \
475 src/runtime/UIDnDMIMEData.h \
476 src/runtime/UIDnDDrag.h
477 endif
478endif
479
480VirtualBox_QT_MOCHDRS.darwin += \
481 src/platform/darwin/UIWindowMenuManager.h
482
483# Sources containing local definitions of classes that use the Q_OBJECT macro.
484VirtualBox_QT_MOCSRCS = \
485 src/UIVMLogViewer.cpp \
486 src/extensions/QIArrowSplitter.cpp \
487 src/extensions/QISplitter.cpp \
488 src/extensions/QIAdvancedToolBar.cpp \
489 src/extradata/UIExtraDataManager.cpp \
490 src/globals/UIActionPool.cpp \
491 src/globals/UIThreadPool.cpp \
492 src/medium/UIMediumEnumerator.cpp \
493 src/medium/UIMediumManager.cpp \
494 src/runtime/UIActionPoolRuntime.cpp \
495 src/runtime/UIAddDiskEncryptionPasswordDialog.cpp \
496 src/runtime/UIFrameBuffer.cpp \
497 src/runtime/UIIndicatorsPool.cpp \
498 src/runtime/UIStatusBarEditorWindow.cpp \
499 src/selector/UIActionPoolSelector.cpp \
500 src/selector/UIVMDesktop.cpp \
501 src/settings/machine/UIMachineSettingsStorage.cpp \
502 src/settings/machine/UIMachineSettingsUSB.cpp \
503 src/widgets/UIHotKeyEditor.cpp \
504 src/widgets/UIPortForwardingTable.cpp \
505 src/wizards/importappliance/UIWizardImportApp.cpp
506
507ifdef VBOX_GUI_WITH_NETWORK_MANAGER
508 VirtualBox_QT_MOCSRCS += \
509 src/net/UINetworkReply.cpp \
510 src/net/UIUpdateManager.cpp
511endif
512
513VirtualBox_QT_MOCSRCS.darwin += \
514 src/platform/darwin/UIWindowMenuManager.cpp
515VirtualBox_QT_MOCSRCS.win += \
516 src/extensions/QIFileDialog.cpp
517
518ifdef VBOX_WITH_XPCOM
519 VirtualBox_QT_MOCSRCS += \
520 src/globals/COMDefs.cpp
521endif
522
523VirtualBox_SOURCES = \
524 src/main.cpp \
525 src/UIMediumTypeChangeDialog.cpp \
526 src/VBoxAboutDlg.cpp \
527 src/VBoxGlobalSettings.cpp \
528 src/VBoxLicenseViewer.cpp \
529 src/VBoxSnapshotDetailsDlg.cpp \
530 src/VBoxTakeSnapshotDlg.cpp \
531 src/UIVMInfoDialog.cpp \
532 src/UIVMLogViewer.cpp \
533 src/converter/UIConverter.cpp \
534 src/converter/UIConverterBackendCOM.cpp \
535 src/converter/UIConverterBackendGlobal.cpp \
536 src/extensions/QIAdvancedSlider.cpp \
537 src/extensions/QIArrowButtonPress.cpp \
538 src/extensions/QIArrowButtonSwitch.cpp \
539 src/extensions/QIArrowSplitter.cpp \
540 src/extensions/QIDialog.cpp \
541 src/extensions/QIDialogButtonBox.cpp \
542 src/extensions/QIFileDialog.cpp \
543 src/extensions/QILabel.cpp \
544 src/extensions/QILabelSeparator.cpp \
545 src/extensions/QILineEdit.cpp \
546 src/extensions/QIListView.cpp \
547 src/extensions/QIMainDialog.cpp \
548 src/extensions/QIMenu.cpp \
549 src/extensions/QIMessageBox.cpp \
550 src/extensions/QIProcess.cpp \
551 src/extensions/QIRichTextLabel.cpp \
552 src/extensions/QIRichToolButton.cpp \
553 src/extensions/QISplitter.cpp \
554 src/extensions/QIStatusBar.cpp \
555 src/extensions/QIStatusBarIndicator.cpp \
556 src/extensions/QITableView.cpp \
557 src/extensions/QITreeView.cpp \
558 src/extensions/QITreeWidget.cpp \
559 src/extensions/QIWidgetValidator.cpp \
560 src/extensions/QIAdvancedToolBar.cpp \
561 src/extensions/graphics/QIGraphicsWidget.cpp \
562 src/extradata/UIExtraDataDefs.cpp \
563 src/extradata/UIExtraDataManager.cpp \
564 src/globals/UIDefs.cpp \
565 src/globals/COMDefs.cpp \
566 src/globals/UIActionPool.cpp \
567 src/globals/UIAnimationFramework.cpp \
568 src/globals/UIIconPool.cpp \
569 src/globals/UIImageTools.cpp \
570 src/globals/UIMainEventListener.cpp \
571 src/globals/UIMessageCenter.cpp \
572 src/globals/UIModalWindowManager.cpp \
573 src/globals/UIPopupCenter.cpp \
574 src/globals/UIShortcutPool.cpp \
575 src/globals/UIThreadPool.cpp \
576 src/globals/VBoxGlobal.cpp \
577 src/medium/UIMediumDefs.cpp \
578 src/medium/UIMedium.cpp \
579 src/medium/UIMediumEnumerator.cpp \
580 src/medium/UIMediumManager.cpp \
581 src/runtime/UIActionPoolRuntime.cpp \
582 src/runtime/UIAddDiskEncryptionPasswordDialog.cpp \
583 src/runtime/UIConsoleEventHandler.cpp \
584 src/runtime/UIFrameBuffer.cpp \
585 src/runtime/UIIndicatorsPool.cpp \
586 src/runtime/UIKeyboardHandler.cpp \
587 src/runtime/UIMachine.cpp \
588 src/runtime/UIMachineLogic.cpp \
589 src/runtime/UIMachineView.cpp \
590 src/runtime/UIMachineWindow.cpp \
591 src/runtime/UIMenuBarEditorWindow.cpp \
592 src/runtime/UIMouseHandler.cpp \
593 src/runtime/UIMultiScreenLayout.cpp \
594 src/runtime/UISession.cpp \
595 src/runtime/UISlidingToolBar.cpp \
596 src/runtime/UIStatusBarEditorWindow.cpp \
597 src/runtime/UIVMCloseDialog.cpp \
598 src/runtime/fullscreen/UIKeyboardHandlerFullscreen.cpp \
599 src/runtime/fullscreen/UIMachineLogicFullscreen.cpp \
600 src/runtime/fullscreen/UIMachineViewFullscreen.cpp \
601 src/runtime/fullscreen/UIMachineWindowFullscreen.cpp \
602 src/runtime/normal/UIKeyboardHandlerNormal.cpp \
603 src/runtime/normal/UIMachineLogicNormal.cpp \
604 src/runtime/normal/UIMachineViewNormal.cpp \
605 src/runtime/normal/UIMachineWindowNormal.cpp \
606 src/runtime/scale/UIKeyboardHandlerScale.cpp \
607 src/runtime/scale/UIMachineLogicScale.cpp \
608 src/runtime/scale/UIMachineViewScale.cpp \
609 src/runtime/scale/UIMachineWindowScale.cpp \
610 src/runtime/seamless/UIKeyboardHandlerSeamless.cpp \
611 src/runtime/seamless/UIMachineLogicSeamless.cpp \
612 src/runtime/seamless/UIMachineViewSeamless.cpp \
613 src/runtime/seamless/UIMachineWindowSeamless.cpp \
614 src/selector/UIActionPoolSelector.cpp \
615 src/selector/UIVMDesktop.cpp \
616 src/selector/UIVMItem.cpp \
617 src/selector/UIVirtualBoxEventHandler.cpp \
618 src/selector/UISelectorWindow.cpp \
619 src/selector/graphics/chooser/UIGChooser.cpp \
620 src/selector/graphics/chooser/UIGChooserModel.cpp \
621 src/selector/graphics/chooser/UIGChooserView.cpp \
622 src/selector/graphics/chooser/UIGChooserHandlerMouse.cpp \
623 src/selector/graphics/chooser/UIGChooserHandlerKeyboard.cpp \
624 src/selector/graphics/chooser/UIGChooserItem.cpp \
625 src/selector/graphics/chooser/UIGChooserItemGroup.cpp \
626 src/selector/graphics/chooser/UIGChooserItemMachine.cpp \
627 src/selector/graphics/details/UIGDetails.cpp \
628 src/selector/graphics/details/UIGDetailsModel.cpp \
629 src/selector/graphics/details/UIGDetailsView.cpp \
630 src/selector/graphics/details/UIGDetailsItem.cpp \
631 src/selector/graphics/details/UIGDetailsGroup.cpp \
632 src/selector/graphics/details/UIGDetailsSet.cpp \
633 src/selector/graphics/details/UIGDetailsElement.cpp \
634 src/selector/graphics/details/UIGDetailsElements.cpp \
635 src/selector/graphics/details/UIGMachinePreview.cpp \
636 src/selector/VBoxSnapshotsWgt.cpp \
637 src/settings/UISettingsDefs.cpp \
638 src/settings/UISettingsDialog.cpp \
639 src/settings/UISettingsDialogSpecific.cpp \
640 src/settings/UISettingsPage.cpp \
641 src/settings/UISettingsSerializer.cpp \
642 src/settings/VBoxSettingsSelector.cpp \
643 src/settings/global/UIGlobalSettingsExtension.cpp \
644 src/settings/global/UIGlobalSettingsGeneral.cpp \
645 src/settings/global/UIGlobalSettingsInput.cpp \
646 src/settings/global/UIGlobalSettingsLanguage.cpp \
647 src/settings/global/UIGlobalSettingsDisplay.cpp \
648 src/settings/global/UIGlobalSettingsNetwork.cpp \
649 src/settings/global/UIGlobalSettingsNetworkDetailsNAT.cpp \
650 src/settings/global/UIGlobalSettingsNetworkDetailsHost.cpp \
651 src/settings/global/UIGlobalSettingsPortForwardingDlg.cpp \
652 src/settings/machine/UIMachineSettingsAudio.cpp \
653 src/settings/machine/UIMachineSettingsDisplay.cpp \
654 src/settings/machine/UIMachineSettingsGeneral.cpp \
655 src/settings/machine/UIMachineSettingsInterface.cpp \
656 src/settings/machine/UIMachineSettingsNetwork.cpp \
657 src/settings/machine/UIMachineSettingsParallel.cpp \
658 src/settings/machine/UIMachineSettingsPortForwardingDlg.cpp \
659 src/settings/machine/UIMachineSettingsSF.cpp \
660 src/settings/machine/UIMachineSettingsSFDetails.cpp \
661 src/settings/machine/UIMachineSettingsSerial.cpp \
662 src/settings/machine/UIMachineSettingsStorage.cpp \
663 src/settings/machine/UIMachineSettingsSystem.cpp \
664 src/settings/machine/UIMachineSettingsUSB.cpp \
665 src/settings/machine/UIMachineSettingsUSBFilterDetails.cpp \
666 src/widgets/UIApplianceEditorWidget.cpp \
667 src/widgets/UIApplianceExportEditorWidget.cpp \
668 src/widgets/UIApplianceImportEditorWidget.cpp \
669 src/widgets/UIBar.cpp \
670 src/widgets/UIBootTable.cpp \
671 src/widgets/UIHostComboEditor.cpp \
672 src/widgets/UIHotKeyEditor.cpp \
673 src/widgets/UILineTextEdit.cpp \
674 src/widgets/UIMenuBar.cpp \
675 src/widgets/UIPopupBox.cpp \
676 src/widgets/UIPopupPane.cpp \
677 src/widgets/UIPopupPaneTextPane.cpp \
678 src/widgets/UIPopupPaneButtonPane.cpp \
679 src/widgets/UIPopupStack.cpp \
680 src/widgets/UIPopupStackViewport.cpp \
681 src/widgets/UIPortForwardingTable.cpp \
682 src/widgets/UIProgressDialog.cpp \
683 src/widgets/UISpecialControls.cpp \
684 src/widgets/UIToolBar.cpp \
685 src/widgets/VBoxFilePathSelectorWidget.cpp \
686 src/widgets/VBoxGuestRAMSlider.cpp \
687 src/widgets/VBoxMediaComboBox.cpp \
688 src/widgets/UIMiniToolBar.cpp \
689 src/widgets/VBoxOSTypeSelectorButton.cpp \
690 src/widgets/UINameAndSystemEditor.cpp \
691 src/widgets/UIWarningPane.cpp \
692 src/widgets/UIFilmContainer.cpp \
693 src/widgets/graphics/UIGraphicsButton.cpp \
694 src/widgets/graphics/UIGraphicsRotatorButton.cpp \
695 src/widgets/graphics/UIGraphicsZoomButton.cpp \
696 src/widgets/graphics/UIGraphicsToolBar.cpp \
697 src/widgets/graphics/UIGraphicsTextPane.cpp \
698 src/wizards/UIWizard.cpp \
699 src/wizards/UIWizardPage.cpp \
700 src/wizards/newvm/UIWizardNewVM.cpp \
701 src/wizards/newvm/UIWizardNewVMPageBasic1.cpp \
702 src/wizards/newvm/UIWizardNewVMPageBasic2.cpp \
703 src/wizards/newvm/UIWizardNewVMPageBasic3.cpp \
704 src/wizards/newvm/UIWizardNewVMPageExpert.cpp \
705 src/wizards/newvd/UIWizardNewVD.cpp \
706 src/wizards/newvd/UIWizardNewVDPageBasic1.cpp \
707 src/wizards/newvd/UIWizardNewVDPageBasic2.cpp \
708 src/wizards/newvd/UIWizardNewVDPageBasic3.cpp \
709 src/wizards/newvd/UIWizardNewVDPageExpert.cpp \
710 src/wizards/clonevm/UIWizardCloneVM.cpp \
711 src/wizards/clonevm/UIWizardCloneVMPageBasic1.cpp \
712 src/wizards/clonevm/UIWizardCloneVMPageBasic2.cpp \
713 src/wizards/clonevm/UIWizardCloneVMPageBasic3.cpp \
714 src/wizards/clonevm/UIWizardCloneVMPageExpert.cpp \
715 src/wizards/clonevd/UIWizardCloneVD.cpp \
716 src/wizards/clonevd/UIWizardCloneVDPageBasic1.cpp \
717 src/wizards/clonevd/UIWizardCloneVDPageBasic2.cpp \
718 src/wizards/clonevd/UIWizardCloneVDPageBasic3.cpp \
719 src/wizards/clonevd/UIWizardCloneVDPageBasic4.cpp \
720 src/wizards/clonevd/UIWizardCloneVDPageExpert.cpp \
721 src/wizards/exportappliance/UIWizardExportApp.cpp \
722 src/wizards/exportappliance/UIWizardExportAppPageBasic1.cpp \
723 src/wizards/exportappliance/UIWizardExportAppPageBasic2.cpp \
724 src/wizards/exportappliance/UIWizardExportAppPageBasic3.cpp \
725 src/wizards/exportappliance/UIWizardExportAppPageBasic4.cpp \
726 src/wizards/exportappliance/UIWizardExportAppPageExpert.cpp \
727 src/wizards/importappliance/UIWizardImportApp.cpp \
728 src/wizards/importappliance/UIWizardImportAppPageBasic1.cpp \
729 src/wizards/importappliance/UIWizardImportAppPageBasic2.cpp \
730 src/wizards/importappliance/UIWizardImportAppPageExpert.cpp \
731 src/wizards/firstrun/UIWizardFirstRun.cpp \
732 src/wizards/firstrun/UIWizardFirstRunPageBasic.cpp
733
734ifdef VBOX_GUI_WITH_NETWORK_MANAGER
735VirtualBox_SOURCES += \
736 src/net/UINetworkManager.cpp \
737 src/net/UINetworkManagerDialog.cpp \
738 src/net/UINetworkManagerIndicator.cpp \
739 src/net/UINetworkRequest.cpp \
740 src/net/UINetworkRequestWidget.cpp \
741 src/net/UINetworkReply.cpp \
742 src/net/UINetworkCustomer.cpp \
743 src/net/UIDownloader.cpp \
744 src/net/UIDownloaderAdditions.cpp \
745 src/net/UIDownloaderExtensionPack.cpp \
746 src/net/UIDownloaderUserManual.cpp \
747 src/net/UIUpdateDefs.cpp \
748 src/net/UIUpdateManager.cpp \
749 src/settings/global/UIGlobalSettingsProxy.cpp \
750 src/settings/global/UIGlobalSettingsUpdate.cpp
751endif
752
753VirtualBox_SOURCES.darwin += \
754 src/platform/darwin/UIAbstractDockIconPreview.cpp \
755 src/platform/darwin/UICocoaDockIconPreview.mm \
756 src/platform/darwin/UIWindowMenuManager.cpp \
757
758if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # X11
759 VirtualBox_SOURCES += \
760 src/platform/x11/UIDesktopServices_x11.cpp \
761 src/platform/x11/VBoxX11Helper.cpp \
762 src/platform/x11/XKeyboard-new.cpp
763endif
764
765VirtualBox_SOURCES.win += \
766 src/platform/win/VirtualBox.rc \
767 src/platform/win/UIDesktopServices_win.cpp \
768 src/platform/win/VBoxUtils-win.cpp \
769 src/platform/win/WinKeyboard.cpp
770
771VirtualBox_DEFS.darwin += VBOX_DARWIN_USE_NATIVE_CONTROLS
772VirtualBox_SOURCES.darwin += \
773 src/platform/darwin/CocoaEventHelper.mm \
774 src/platform/darwin/DarwinKeyboard.cpp \
775 src/platform/darwin/UICocoaApplication.mm \
776 src/platform/darwin/UICocoaSpecialControls.mm \
777 src/platform/darwin/UIDesktopServices_darwin.cpp \
778 src/platform/darwin/UIDesktopServices_darwin_cocoa.mm \
779 src/platform/darwin/VBoxUtils-darwin-cocoa.mm \
780 src/platform/darwin/VBoxUtils-darwin.cpp
781VirtualBox_QT_MOCHDRS.darwin += \
782 src/platform/darwin/UICocoaSpecialControls.h
783
784ifdef VBOX_WITH_ICHAT_THEATER
785 VirtualBox_SOURCES.darwin += \
786 src/platform/darwin/VBoxIChatTheaterWrapper.m
787endif
788
789if defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_GUI_USE_QGL)
790 VirtualBox_SOURCES += \
791 src/VBoxFBOverlay.cpp \
792 src/VBoxGLSupportInfo.cpp
793endif
794
795ifdef VBOX_WITH_DRAG_AND_DROP
796 VirtualBox_SOURCES += \
797 src/runtime/UIDnDHandler.cpp
798 ifdef VBOX_WITH_DRAG_AND_DROP_GH
799 VirtualBox_SOURCES += \
800 src/runtime/UIDnDMIMEData.cpp \
801 src/runtime/UIDnDDrag.cpp
802 VirtualBox_SOURCES.win += \
803 src/runtime/UIDnDDropSource_win.cpp \
804 src/runtime/UIDnDDataObject_win.cpp \
805 src/runtime/UIDnDEnumFormat_win.cpp
806 endif
807endif
808
809# The Qt modules we're using.
810# (The include directory and lib/framework for each module will be added by the Qt4 unit.)
811VirtualBox_QT_MODULES = Core Gui Network
812if defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_GUI_USE_QGL)
813 VirtualBox_QT_MODULES += OpenGL
814endif
815
816# Pull in the ui files
817$(eval VirtualBox_SOURCES += $(FORMS))
818
819# Resource files with some OSE differences (VirtualBoxBrand.qrc is created further down).
820VirtualBox_SOURCES += VirtualBox1.qrc
821VirtualBox1.qrc_RCCFLAGS = -name BASIC1
822VirtualBox_SOURCES += VirtualBox2.qrc
823VirtualBox2.qrc_RCCFLAGS = -name BASIC2
824ifeq ($(KBUILD_TARGET),darwin)
825 VirtualBox_SOURCES += VirtualBox1_hidpi.qrc
826 VirtualBox1_hidpi.qrc_RCCFLAGS = -name BASIC1_HIDPI
827 VirtualBox_SOURCES += VirtualBox2_hidpi.qrc
828 VirtualBox2_hidpi.qrc_RCCFLAGS = -name BASIC2_HIDPI
829 VirtualBox_SOURCES += VirtualBoxMac.qrc
830 VirtualBoxMac.qrc_RCCFLAGS = -name MAC
831else
832 VirtualBox_SOURCES += VirtualBoxOther.qrc
833 VirtualBoxOther.qrc_RCCFLAGS = -name OTHER
834endif
835VirtualBox_SOURCES += $(VBOX_VIRTUALBOX4_OUT_DIR)/VirtualBoxBrand.qrc
836$(VBOX_VIRTUALBOX4_OUT_DIR)/VirtualBoxBrand.qrc_RCCFLAGS = -name BRAND
837if defined(VBOX_WITH_VIDEOHWACCEL) || defined(VBOX_GUI_USE_QGL)
838 VirtualBox_SOURCES += VirtualBoxShaders.qrc
839 VirtualBoxShaders.qrc_RCCFLAGS = -name SHADERS
840endif
841
842# Import the translation source from VBoxUI.pro and add the qt_xx_YY counterparts
843VirtualBox_QT_TRANSLATIONS := $(TRANSLATIONS) \
844 $(patsubst nls/VirtualBox_%.ts,nls/qt_%.ts, $(filter nls/VirtualBox_%.ts,$(TRANSLATIONS)))
845# Compress the translation units.
846VirtualBox_LRCFLAGS = -silent
847# Where to install the translations (a separate install target, VirtualBox-nls-inst is created).
848VirtualBox_QT_TRANSLATIONS_INST = $(INST_BIN)nls/
849
850
851## @todo how to detect what tool is used?
852## @todo GCC3 seems to lack -Wno-missing-base-class-initializer, so we use
853# more generic -Wno-extra
854# bird: What about $(if $(VBOX_GCC_Wno-missing-base-class-initializer),$(VBOX_GCC_Wno-missing-base-class-initializer),$(VBOX_GCC_Wno-extra))?
855ifdef VBOX_WITH_XPCOM
856 VirtualBox_src/globals/COMDefs.cpp_CXXFLAGS = $(VBOX_GCC_Wno-extra)
857endif
858
859
860#
861# Generate the COM wrappers.
862#
863includedep $(PATH_TARGET)/VirtualBoxComWrapperFiles.dep
864VirtualBox_BLDDIRS += $(VirtualBox_0_OUTDIR)/include
865VirtualBox_INTERMEDIATES += $(VirtualBox_0_OUTDIR)/include/COMWrappers
866VirtualBox_CLEAN += $(wildcard $(VirtualBox_0_OUTDIR)/include/*) $(PATH_TARGET)/VirtualBoxComWrapperFiles.dep
867VirtualBox_SOURCES += $(VirtualBox_0_OUTDIR)/include/COMWrappers.cpp
868
869## @todo kmk doesn't remake optional outputs when they are missing...
870$$(VirtualBox_0_OUTDIR)/include/COMWrappers \
871+ $(PATH_TARGET)/VirtualBoxComWrapperFiles.dep \
872+| $(if-expr defined(VirtualBox_VBOX_COMWRAPPERS) \
873, $(VirtualBox_VBOX_COMWRAPPERS) \
874, $$(VirtualBox_0_OUTDIR)/include/COMEnums.h \
875 $$(VirtualBox_0_OUTDIR)/include/COMWrappers.cpp \
876): \
877 $(VBOX_XIDL_FILE) \
878 $(VBOX_VIRTUALBOX4_SRC)/src/globals/COMWrappers.xsl \
879 $(VBOX_FILESPLIT) \
880 | $$(dir $$@)
881 $(call MSG_GENERATE,VirtualBox,$<,$@)
882 $(QUIET)$(RM) -f -- "$@" "$(PATH_TARGET)/VirtualBoxComWrapperFiles.dep"
883 $(QUIET)$(VBOX_XSLTPROC) -o $@ $(VBOX_VIRTUALBOX4_SRC)/src/globals/COMWrappers.xsl $<
884 $(QUIET)$(VBOX_FILESPLIT) $@ $(VirtualBox_0_OUTDIR)/include \
885 $(PATH_TARGET)/VirtualBoxComWrapperFiles.dep VirtualBox_VBOX_COMWRAPPERS
886 $(APPEND) "$@"
887
888# alias for generating the COM Wrappers file.
889testwrappers:: $$(VirtualBox_0_OUTDIR)/include/COMWrappers
890
891
892#
893# Generate qrc file with branded icons.
894#
895VirtualBox_BLDDIRS += $(VBOX_VIRTUALBOX4_OUT_DIR)
896VirtualBox_CLEAN += $(VBOX_VIRTUALBOX4_OUT_DIR)/VirtualBoxBrand.qrc
897$(VBOX_VIRTUALBOX4_OUT_DIR)/VirtualBoxBrand.qrc: \
898 $(VBOX_VIRTUALBOX4_SRC)/VirtualBoxBrand.qrc \
899 $(PATH_ROOT)/Config.kmk \
900 | $$(dir $$@)
901 $(call MSG_GENERATE,VirtualBox,$<,$@)
902 $(QUIET)$(SED) \
903 -e 's;@VBOX_ABOUT_PNG@;$(VBOX_BRAND_GUI_ABOUT_PNG);g' \
904 -e 's;@VBOX_ABOUT_HIDPI_PNG@;$(VBOX_BRAND_GUI_ABOUT_HIDPI_PNG);g' \
905 -e 's;@VBOX_ABOUT_16PX_PNG@;$(VBOX_BRAND_GUI_ABOUT_16PX_PNG);g' \
906 -e 's;@VBOX_VBOX_16PX_PNG@;$(VBOX_BRAND_GUI_VBOX_16PX_PNG);g' \
907 -e 's;@VBOX_VBOX_20PX_PNG@;$(VBOX_BRAND_GUI_VBOX_20PX_PNG);g' \
908 -e 's;@VBOX_VBOX_32PX_PNG@;$(VBOX_BRAND_GUI_VBOX_32PX_PNG);g' \
909 -e 's;@VBOX_VBOX_40PX_PNG@;$(VBOX_BRAND_GUI_VBOX_40PX_PNG);g' \
910 -e 's;@VBOX_VBOX_48PX_PNG@;$(VBOX_BRAND_GUI_VBOX_48PX_PNG);g' \
911 -e 's;@VBOX_VBOX_64PX_PNG@;$(VBOX_BRAND_GUI_VBOX_64PX_PNG);g' \
912 -e 's;@VBOX_CUBE_42PX_PNG@;$(VBOX_BRAND_GUI_CUBE_42PX_PNG);g' \
913 -e 's;@VBOX_CUBE_SVG@;$(VBOX_BRAND_GUI_VBOX_SVG);g' \
914 --output $@ \
915 $<
916
917
918#
919# Precompiled header - non-functional atm.
920#
921ifdef VBOX_WITH_PRECOMPILED_HEADERS
922 VirtualBox_DEFS += VBOX_WITH_PRECOMPILED_HEADERS
923 if1of ($(KBUILD_TARGET),win)
924 # VirtualBox_CXXFLAGS += -Winvalid-pch -fpch-preprocess
925 # VirtualBox_INCS <= $(VirtualBoxPch_0_OUTDIR)/src
926 # VirtualBox_INTERMEDIATES += $(VirtualBox_0_OUTDIR)/include/precomp.h.gch
927 else
928 VirtualBox_CXXFLAGS += -Winvalid-pch -fpch-preprocess
929 VirtualBox_INCS <= $(VirtualBoxPch_0_OUTDIR)/src
930 $(foreach x,$(filter-out include/COMWrappers.cpp, $(filter %.cpp, \
931 $(VirtualBox_SOURCES) \
932 $(VirtualBox_SOURCES.$(KBUILD_TARGET)) \
933 $(VirtualBox_SOURCES.$(KBUILD_TYPE)) \
934 )),$(eval $(abspath $(PATH_OBJ)/VirtualBox/$(basename $(x)).o): $$$$(VirtualBoxPch_0_OUTDIR)/src/precomp.h.gch))
935endif
936
937 TOOL_VirtualBoxPchLinker = Linker for VirtualBoxPch
938 define TOOL_VirtualBoxPchLinker_LINK_MISCBIN_CMDS
939 $(APPEND) -t $(out)
940 endef
941
942 MISCBINS += VirtualBoxPch
943 VirtualBoxPch_EXTENDS = VirtualBox
944 VirtualBoxPch_LDTOOL = VirtualBoxPchLinker
945 VirtualBoxPch_INSTTYPE = none
946 VirtualBoxPch_INTERMEDIATES = $(filter-out %.h.gch, $(VirtualBox_INTERMEDIATES))
947 VirtualBoxPch_NAME = VirtualBoxPch
948 if1of ($(KBUILD_TARGET),win)
949 VirtualBoxPch_SOURCES = src/precomp.cpp
950 VirtualBoxPch_CXXFLAGS = $(filter-out -Winvalid-pch -fpch-preprocess, $(VirtualBox_CXXFLAGS))
951 else
952 VirtualBoxPch_SOURCES = src/precomp.h
953 VirtualBoxPch_CXXFLAGS = $(filter-out -Winvalid-pch -fpch-preprocess, $(VirtualBox_CXXFLAGS)) -x c++-header
954 VirtualBoxPch_CXXOBJSUFF = .h.gch
955 VirtualBoxPch_SRC_HANDLERS = .h:def_src_handler_cxx
956 endif
957 VirtualBoxPch_SOURCES.darwin = $(NO_SUCH_VARIABLE)
958 VirtualBoxPch_SOURCES.solaris = $(NO_SUCH_VARIABLE)
959 VirtualBoxPch_SOURCES.freebsd = $(NO_SUCH_VARIABLE)
960 VirtualBoxPch_SOURCES.linux = $(NO_SUCH_VARIABLE)
961 VirtualBoxPch_SOURCES.win = $(NO_SUCH_VARIABLE)
962 VirtualBoxPch_QT_MODULES = $(VirtualBox_QT_MODULES) # "bug" - not inherited.
963 VirtualBoxPch_INCS = $(VirtualBox_INCS) # "bug" - missing qtuic and qtmoc
964
965endif
966
967ifeq ($(KBUILD_TARGET),win)
968#
969# On Windows we'll have to generate/edit part of the resource file.
970# The IDI_ICON1 name is Qt specific.
971#
972src/platform/win/VirtualBox.rc_INCS = $(VirtualBox_0_OUTDIR)
973src/platform/win/VirtualBox.rc_DEPS = $(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc
974src/platform/win/VirtualBox.rc_CLEAN = $(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc
975
976$$(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc: $(MAKEFILE_CURRENT) $(VBOX_WINDOWS_ICON_FILE) | $$(dir $$@)
977 $(APPEND) -t $@ 'IDI_ICON1 ICON "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
978
979endif # win
980
981
982ifeq ($(KBUILD_TARGET),darwin)
983#
984# Create directories for each approved language or the application
985# menu won't be translated.
986#
987INSTALLS += VirtualBox.lproj
988VirtualBox.lproj_INST = $(INST_VIRTUALBOX)Contents/Resources/
989VirtualBox.lproj_MODE = 755
990VirtualBox.lproj_DIRS := $(addsuffix .lproj,$(VBOX_APPROVED_GUI_LANGUAGES))
991
992#
993# On OS X (darwin) we need to install icon resources and compulsory bundle contents.
994# The VirtualBoxVM.app helper is for launching VMs (fixes some issues with the dock).
995#
996INSTALLS += VirtualBox.app
997VirtualBox.app_INST = $(INST_VIRTUALBOX)Contents/
998VirtualBox.app_MODE = 644
999VirtualBox.app_SOURCES = \
1000 src/platform/darwin/PkgInfo \
1001 $(VirtualBox.app_0_OUTDIR)/Info.plist \
1002 $(VBOX_MACOSX_ICON_FILE)=>Resources/virtualbox.icns \
1003 $(VBOX_BRAND_GUI_VBOX_64PX_PNG)=>Resources/virtualbox.png \
1004 $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vbox.icns=>Resources/virtualbox-vbox.icns \
1005 $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vbox-extpack.icns=>Resources/virtualbox-vbox-extpack.icns \
1006 $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ovf.icns=>Resources/virtualbox-ovf.icns \
1007 $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-ova.icns=>Resources/virtualbox-ova.icns \
1008 $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vdi.icns=>Resources/virtualbox-vdi.icns \
1009 $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vmdk.icns=>Resources/virtualbox-vmdk.icns \
1010 $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-vhd.icns=>Resources/virtualbox-vhd.icns \
1011 $(PATH_ROOT)/src/VBox/Resources/darwin/virtualbox-hdd.icns=>Resources/virtualbox-hdd.icns
1012
1013$$(VirtualBox.app_0_OUTDIR)/Info.plist: $(PATH_SUB_CURRENT)/src/platform/darwin/Info.plist $(VBOX_VERSION_MK) | $$(@D)/
1014 $(call MSG_GENERATE,VirtualBox.app,$<,$@)
1015 $(QUIET)$(RM) -f $@
1016 $(QUIET)$(SED) \
1017 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \
1018 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \
1019 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \
1020 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \
1021 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \
1022 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \
1023 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \
1024 $< > $@
1025
1026INSTALLS += VirtualBoxVM.app
1027VirtualBoxVM.app_INST = $(VirtualBox.app_INST)Resources/VirtualBoxVM.app/Contents/
1028VirtualBoxVM.app_MODE = 644
1029VirtualBoxVM.app_SOURCES = \
1030 src/platform/darwin/VM-PkgInfo=>PkgInfo \
1031 $(VirtualBoxVM.app_0_OUTDIR)/VM-Info.plist=>Info.plist \
1032 $(foreach mysrc,$(VirtualBox.app_SOURCES),$(if-expr $(pos =>Resources/,$(mysrc)) > 0,$(mysrc),))
1033VirtualBoxVM.app_SYMLINKS = \
1034 MacOS=>../../../MacOS/
1035
1036$$(VirtualBoxVM.app_0_OUTDIR)/VM-Info.plist: $(PATH_SUB_CURRENT)/src/platform/darwin/VM-Info.plist $(VBOX_VERSION_MK) | $$(@D)/
1037 $(call MSG_GENERATE,VirtualBoxVM.app,$<,$@)
1038 $(QUIET)$(RM) -f $@
1039 $(QUIET)$(SED) \
1040 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \
1041 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \
1042 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \
1043 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \
1044 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \
1045 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \
1046 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \
1047 --output $@ $<
1048
1049PROGRAMS += vmstarter
1050vmstarter_TEMPLATE = VBOXR3EXE
1051vmstarter_SOURCES = src/platform/darwin/vmstarter.mm
1052vmstarter_LDFLAGS += -framework AppKit
1053vmstarter_INST = $(INST_BIN)vmstarter
1054
1055INSTALLS += vmstarter.app
1056vmstarter.app_INST = $(VirtualBox.app_INST)Resources/vmstarter.app/Contents/
1057vmstarter.app_MODE = 644
1058vmstarter.app_SOURCES = \
1059 src/platform/darwin/vmstarter-PkgInfo=>PkgInfo \
1060 $(vmstarter.app_0_OUTDIR)/vmstarter-Info.plist=>Info.plist \
1061 $(foreach mysrc,$(VirtualBox.app_SOURCES),$(if-expr $(pos =>Resources/,$(mysrc)) > 0,$(mysrc),))
1062vmstarter.app_SYMLINKS = \
1063 MacOS=>../../../MacOS \
1064
1065$$(vmstarter.app_0_OUTDIR)/vmstarter-Info.plist: $(PATH_SUB_CURRENT)/src/platform/darwin/vmstarter-Info.plist $(VBOX_VERSION_MK) | $$(@D)/
1066 $(call MSG_GENERATE,vmstarter.app,$<,$@)
1067 $(QUIET)$(RM) -f $@
1068 $(QUIET)$(SED) \
1069 -e 's/@VBOX_VERSION_STRING@/$(VBOX_VERSION_STRING)/g' \
1070 -e 's/@VBOX_VERSION_MAJOR@/$(VBOX_VERSION_MAJOR)/g' \
1071 -e 's/@VBOX_VERSION_MINOR@/$(VBOX_VERSION_MINOR)/g' \
1072 -e 's/@VBOX_VERSION_BUILD@/$(VBOX_VERSION_BUILD)/g' \
1073 -e 's/@VBOX_VENDOR@/$(VBOX_VENDOR)/g' \
1074 -e 's/@VBOX_PRODUCT@/$(VBOX_PRODUCT)/g' \
1075 -e 's/@VBOX_C_YEAR@/$(VBOX_C_YEAR)/g' \
1076 --output $@ $<
1077endif # darwin
1078
1079#
1080# App for testing GL support
1081#
1082if defined(VBOX_WITH_VIDEOHWACCEL)
1083 if1of ($(KBUILD_TARGET), win linux freebsd)
1084 LIBRARIES += VBoxOGL2D
1085 VBoxOGL2D_TEMPLATE = $(if $(VBOX_WITH_VIDEOHWACCEL),$(if $(VBOX_WITH_HARDENING),VBOXQT4GUI,VBOXQT4GUIEXE),VBOXMAINEXE)
1086 VBoxOGL2D_DEFS = QT_NO_DEBUG QT_THREAD_SUPPORT QT_SHARED HAVE_CONFIG_H VBOX_WITH_VIDEOHWACCEL VBOX_GUI_USE_QGL
1087 VBoxOGL2D_QT_MODULES += OpenGL
1088 VBoxOGL2D_SOURCES = \
1089 src/VBoxGLSupportInfo.cpp
1090 VBoxOGL2D_INCS = include
1091 endif
1092endif
1093
1094#
1095# Testcase for the darwin keyboard routines.
1096#
1097ifdef VBOX_WITH_TESTCASES
1098PROGRAMS.darwin += tstDarwinKeyboard
1099tstDarwinKeyboard_NAME = tstDarwinKeyboard
1100tstDarwinKeyboard_TEMPLATE = VBOXR3TSTEXE
1101tstDarwinKeyboard_DEFS.x86 = USE_HID_FOR_MODIFIERS
1102tstDarwinKeyboard_INCS = include
1103tstDarwinKeyboard_SOURCES = \
1104 src/platform/darwin/tstDarwinKeyboard.cpp \
1105 src/platform/darwin/DarwinKeyboard.cpp
1106tstDarwinKeyboard_SOURCES.amd64 = \
1107 src/platform/darwin/CocoaEventHelper.mm
1108tstDarwinKeyboard_LDFLAGS = -framework IOKit -framework Carbon -framework AppKit
1109tstDarwinKeyboard_LIBS = \
1110 $(LIB_RUNTIME)
1111endif
1112
1113
1114# Unset everything that was loaded from VBoxUI.pro.
1115TEMPLATE := $(SAVED_TEMPLATE)
1116SAVED_TEMPLATE :=
1117LANGUAGE :=
1118FORMS :=
1119TRANSLATIONS :=
1120IMAGES :=
1121
1122
1123#
1124# Doxygen documentation.
1125#
1126QTGUI_DOXYFILE_OUTPUT = $(PATH_OUT)/docs/qtgui
1127BLDDIRS += $(QTGUI_DOXYFILE_OUTPUT)
1128OTHER_CLEAN += \
1129 $(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui \
1130 $(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui
1131
1132# Generate the Doxyfile
1133$(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui: \
1134 $(PATH_SUB_CURRENT)/Doxyfile \
1135 $(PATH_SUB_CURRENT)/Makefile.kmk \
1136 | $$(dir $$@)
1137 $(RM) -f $@ [email protected] [email protected]
1138 $(CP) -f $< [email protected]
1139 $(APPEND) [email protected]
1140 $(APPEND) [email protected] "OUTPUT_DIRECTORY = $(QTGUI_DOXYFILE_OUTPUT)"
1141 $(APPEND) [email protected] "WARN_LOGFILE = $(QTGUI_DOXYFILE_OUTPUT)/errors"
1142 $(APPEND) [email protected] "INCLUDE_PATH = $(PATH_ROOT)/include ."
1143 $(APPEND) [email protected] "PREDEFINED += $(ARCH_BITS_DEFS)"
1144 $(APPEND) [email protected]
1145 $(APPEND) [email protected] "INPUT = $(dir $<)"
1146 $(APPEND) [email protected]
1147 $(MV) -f [email protected] $@
1148
1149# Do the actual job.
1150$(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui: $(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui $$(QTGUI_DOXYFILE_INPUT) | $(QTGUI_DOXYFILE_OUTPUT)/
1151 $(RM) -Rf -- $(QTGUI_DOXYFILE_OUTPUT)/html/
1152 doxygen $(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui
1153 $(APPEND) $(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui
1154
1155# aliases
1156docs.qtgui: $(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui
1157if !defined(VBOX_ONLY_DOCS) && defined(VBOX_WITH_ALL_DOXYGEN_TARGETS)
1158docs: $(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui
1159endif
1160
1161
1162
1163# Commit the magic.
1164# (note: before custom rules that make usage of generated variables!).
1165include $(FILE_KBUILD_SUB_FOOTER)
1166
1167#
1168# Update all known NLS translation (.ts) files in the nls/ subdirectory.
1169#
1170# NOTE: This target is intended to be run only by the GUI maintainer shortly
1171# before a new product release. VirtualBox_xx_YY.ts is a template for new
1172# languages and should never be actually translated or installed.
1173#
1174# Use the checknls target for checking again common mistakes done by the
1175# translators.
1176#
1177# For Qt >= 4.6.0 it maybe necessary to add -I $(VBOX_GUI_INC_DIRS) to the
1178# lupdate call
1179#
1180#VirtualBox_QT_TRANSLATIONS = nls/VirtualBox_de.ts
1181checknls::
1182 # Check for missing :/ in image paths
1183 grep -i "src=[^:%]" $(filter-out nls/qt_%.ts,$(VirtualBox_QT_TRANSLATIONS))
1184
1185updatenls:: makeallnls nls/VirtualBox_en.ts
1186
1187makeallnls:: \
1188 $(foreach header,$(VBOX_GUI_INC_DIRS),$(wildcard $(header)/*.h)) \
1189 $(filter-out %.qrc,$(VirtualBox_SOURCES) $(VirtualBox_VBOX_EXTRA_NLS_SOURCES))
1190 $(call MSG_L1,lupdate all languages (nls/*.ts))
1191 $(QUIET)$(TOOL_QT4_LUPDATE) \
1192 $^ \
1193 -ts \
1194 $(filter-out nls/VirtualBox_en.ts,$(filter-out nls/qt_%.ts,$(VirtualBox_QT_TRANSLATIONS))) \
1195 nls/VirtualBox_xx_YY.ts
1196
1197# Create the English translation file. This is something special cause it will
1198# contain the plural forms only.
1199nls/VirtualBox_en.ts: \
1200 $(foreach header,$(VBOX_GUI_INC_DIRS),$(wildcard $(header)/*.h)) \
1201 $(filter-out %.qrc,$(VirtualBox_SOURCES) $(VirtualBox_VBOX_EXTRA_NLS_SOURCES))
1202 $(call MSG_L1,lupdate $@)
1203 $(QUIET)$(TOOL_QT4_LUPDATE) \
1204 $^ \
1205 -ts \
1206 $@
1207 $(QUIET)$(SED) -n -i -e \
1208 '/<context>/,/<\/context>/!p;/<context>/h;/<name>/H;/<message numerus="yes">/,/<\/message>/H;/<\/context>/{H;x;/<message/p}' \
1209 $@
1210
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette