VirtualBox

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

Last change on this file since 103765 was 103765, checked in by vboxsync, 3 months ago

FE/Qt: UICommon: Starting to move out global COM related functionality to separate UIGlobalSession class which will later be used by wide amount of GUI places which currently referencing UICommon just because of COM stuff.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 78.9 KB
Line 
1# $Id: Makefile.kmk 103765 2024-03-11 13:52:33Z vboxsync $
2## @file
3# Makefile for the VirtualBox Qt GUI.
4#
5
6#
7# Copyright (C) 2006-2023 Oracle and/or its affiliates.
8#
9# This file is part of VirtualBox base platform packages, as
10# available from https://www.virtualbox.org.
11#
12# This program is free software; you can redistribute it and/or
13# modify it under the terms of the GNU General Public License
14# as published by the Free Software Foundation, in version 3 of the
15# License.
16#
17# This program is distributed in the hope that it will be useful, but
18# WITHOUT ANY WARRANTY; without even the implied warranty of
19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20# General Public License for more details.
21#
22# You should have received a copy of the GNU General Public License
23# along with this program; if not, see <https://www.gnu.org/licenses>.
24#
25# SPDX-License-Identifier: GPL-3.0-only
26#
27
28SUB_DEPTH = ../../../..
29include $(KBUILD_PATH)/subheader.kmk
30
31
32#
33# Globals.
34#
35VBOX_VIRTUALBOX_SRC := $(PATH_SUB_CURRENT)
36VBOX_VIRTUALBOX_OUT_DIR := $(PATH_TARGET)/VirtualBox/misc
37USES += qt6
38
39
40#
41# Targets.
42#
43ifdef VBOX_WITH_HARDENING
44 PROGRAMS += VirtualBox
45 PROGRAMS += VirtualBoxHardenedVM
46 DLLS += VirtualBoxVM
47 DLLS += UICommon
48else
49 PROGRAMS += VirtualBox
50 PROGRAMS += VirtualBoxVM
51 DLLS += UICommon
52endif
53INSTALLS += VirtualBox.nls
54
55
56#
57# Include the language lists.
58#
59include $(PATH_SUB_CURRENT)/nls/ApprovedLanguages.kmk
60
61
62#
63# Hardened VirtualBoxVM.
64#
65ifdef VBOX_WITH_HARDENING
66 VirtualBoxHardenedVM_TEMPLATE = VBoxR3HardenedExe
67 VirtualBoxHardenedVM_INST.darwin = $(INST_VIRTUALBOX)Contents/Resources/VirtualBoxVM.app/Contents/MacOS/
68 VirtualBoxHardenedVM_NAME = VirtualBoxVM
69 VirtualBoxHardenedVM_DEFS += $(if $(VBOX_WITH_DRIVERLESS_NEM_FALLBACK),VBOX_WITH_DRIVERLESS_NEM_FALLBACK,)
70 VirtualBoxHardenedVM_SOURCES = src/hardenedmain.cpp
71 VirtualBoxHardenedVM_LDFLAGS.win = /SUBSYSTEM:$(if-expr "$(KBUILD_TYPE)" != "release",console,windows)
72 $(call VBOX_SET_VER_INFO_EXE,VirtualBoxHardenedVM,VirtualBox Virtual Machine,$(VBOX_WINDOWS_ICON_FILE))
73endif
74
75
76#
77# Include Qt project file, we'll use FORMS and TRANSLATIONS in
78# the VirtualBox setup below.
79#
80# This is a bit messy. We boldly ASSUME that LANGUAGE, IMAGES, FORMS
81# and TRANSLATIONS are all unused by kBuild and the host toolchain.
82#
83SAVED_TEMPLATE := $(TEMPLATE)
84include $(PATH_SUB_CURRENT)/VBoxUI.pro
85TEMPLATE := $(SAVED_TEMPLATE)
86SAVED_TEMPLATE :=
87LANGUAGE :=
88IMAGES :=
89# FORMS and TRANSLATIONS are reset further down.
90
91
92#
93# Perform initial new version check on startup.
94# If this setting is disabled the user can still check using the menu.
95#
96ifndef VBOX_OSE
97 VBOX_WITH_UPDATE_REQUEST := 1
98endif
99
100
101#
102# VirtualBox Manager Application
103#
104VirtualBox_TEMPLATE := VBoxQtGuiExe
105VirtualBox_NAME = VirtualBox
106VirtualBox_DEPS = $(UICommon_0_OUTDIR)/include/COMWrappers
107VirtualBox_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK)
108VirtualBox_DEFS =
109ifdef VBOX_WITH_QT6 # moc is too stupid to parse #if QT_VERSION > xxx, '#ifdef VBOX_IS_QT6_OR_LATER' works though (no spaces).
110 VirtualBox_DEFS += VBOX_IS_QT6_OR_LATER
111endif
112VirtualBox_DEFS.debug = VBOX_CHECK_STATE # QT_FATAL_ASSERT
113VirtualBox_DEFS.linux = VBOX_WS_NIX QT_NO_DEPRECATED_WARNINGS
114VirtualBox_DEFS.solaris = VBOX_WS_NIX
115VirtualBox_DEFS.freebsd = VBOX_WS_NIX
116VirtualBox_DEFS.darwin = VBOX_WS_MAC
117VirtualBox_DEFS.win = VBOX_WS_WIN
118VirtualBox_DEFS.linux += VBOX_WITH_MASKED_SEAMLESS VBOX_WITH_TRANSLUCENT_SEAMLESS
119VirtualBox_DEFS.solaris += VBOX_WITH_MASKED_SEAMLESS VBOX_WITH_TRANSLUCENT_SEAMLESS
120VirtualBox_DEFS.freebsd += VBOX_WITH_MASKED_SEAMLESS VBOX_WITH_TRANSLUCENT_SEAMLESS
121VirtualBox_DEFS.darwin += VBOX_WITH_TRANSLUCENT_SEAMLESS # VBOX_WITH_MASKED_SEAMLESS
122VirtualBox_DEFS.win += VBOX_WITH_MASKED_SEAMLESS # VBOX_WITH_TRANSLUCENT_SEAMLESS
123ifndef VBOX_WITH_QT6 # qt6: The UICocoaSpecialControls needs restructuring because QMacCocoaViewContainer is gone. Too lazy for now.
124 VirtualBox_DEFS.darwin += VBOX_DARWIN_USE_NATIVE_CONTROLS
125endif
126VirtualBox_DEFS.win += UNICODE QT_DLL
127VirtualBox_DEFS += \
128 $(if $(VBOX_WITH_ADDITIONS_AUTOUPDATE_UI),VBOX_WITH_ADDITIONS_AUTOUPDATE_UI) \
129 $(if $(VBOX_WITH_UPDATE_REQUEST),VBOX_WITH_UPDATE_REQUEST) \
130 $(if $(VBOX_WITH_NETFLT)$(eq $(KBUILD_TARGET),freebsd),VBOX_WITH_NETFLT) \
131 $(if $(VBOX_WITH_VDE),VBOX_WITH_VDE) \
132 $(if $(VBOX_WITH_HARDENING),VBOXR3_HARDENED_DLL) \
133 $(if $(VBOX_WITH_DRAG_AND_DROP),VBOX_WITH_DRAG_AND_DROP) \
134 $(if $(VBOX_WITH_DRAG_AND_DROP_GH),VBOX_WITH_DRAG_AND_DROP_GH) \
135 $(if $(VBOX_WITH_DRAG_AND_DROP_PROMISES),VBOX_WITH_DRAG_AND_DROP_PROMISES) \
136 $(if $(VBOX_WITH_3D_ACCELERATION),VBOX_WITH_3D_ACCELERATION) \
137 $(if $(VBOX_GUI_WITH_PIDFILE),VBOX_GUI_WITH_PIDFILE) \
138 $(if $(VBOX_GUI_WITH_KEYS_RESET_HANDLER),VBOX_GUI_WITH_KEYS_RESET_HANDLER) \
139 $(if $(VBOX_GUI_WITH_CUSTOMIZATIONS1),VBOX_GUI_WITH_CUSTOMIZATIONS1) \
140 $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE) \
141 $(if $(VBOX_WITH_SDS),VBOX_WITH_SDS,) \
142 $(if $(VBOX_WITH_VIRT_ARMV8),VBOX_WITH_VIRT_ARMV8,)
143ifdef VBOX_WITH_DEBUGGER_GUI
144 VirtualBox_DEFS += VBOX_WITH_DEBUGGER_GUI
145 if "$(KBUILD_TYPE)" != "release"
146 VirtualBox_DEFS += VBOX_WITH_DEBUGGER_GUI_MENU
147 endif
148endif
149ifdef VBOX_WITH_LIBCURL
150 VirtualBox_DEFS += VBOX_GUI_WITH_NETWORK_MANAGER
151 VBOX_GUI_WITH_NETWORK_MANAGER := 1
152endif
153if "$(KBUILD_TYPE)" != "release" || defined(VBOX_GUI_WITH_EXTRADATA_MANAGER_UI)
154 VirtualBox_DEFS += VBOX_GUI_WITH_EXTRADATA_MANAGER_UI
155endif
156if "$(KBUILD_TYPE)" != "release" || defined(VBOX_NOTIFICATION_CENTER_WITH_KEEP_BUTTON)
157 VirtualBox_DEFS += VBOX_NOTIFICATION_CENTER_WITH_KEEP_BUTTON
158endif
159ifndef VBOX_WITHOUT_LESS_VIRTUALBOX_INCLUDING
160 VirtualBox_DEFS += VBOX_WITH_LESS_VIRTUALBOX_INCLUDING
161endif
162
163
164#
165# VirtualBox Virtual Machine Application
166#
167VirtualBoxVM_TEMPLATE := $(if $(VBOX_WITH_HARDENING),VBoxQtGuiDll,VBoxQtGuiExe)
168VirtualBoxVM_NAME = VirtualBoxVM
169ifndef VBOX_WITH_HARDENING
170 VirtualBoxVM_INST.darwin = $(INST_VIRTUALBOX)Contents/Resources/VirtualBoxVM.app/Contents/MacOS/
171endif
172VirtualBoxVM_DEPS = $(UICommon_0_OUTDIR)/include/COMWrappers
173VirtualBoxVM_SDKS.win = ReorderCompilerIncs $(VBOX_WINPSDK) $(VBOX_WINDDK)
174VirtualBoxVM_DEFS = VBOX_RUNTIME_UI
175ifdef VBOX_WITH_QT6 # moc is too stupid to parse #if QT_VERSION > xxx, '#ifdef VBOX_IS_QT6_OR_LATER' works though (no spaces).
176 VirtualBoxVM_DEFS += VBOX_IS_QT6_OR_LATER
177endif
178VirtualBoxVM_DEFS.debug = VBOX_CHECK_STATE # QT_FATAL_ASSERT
179VirtualBoxVM_DEFS.linux = VBOX_WS_NIX QT_NO_DEPRECATED_WARNINGS
180VirtualBoxVM_DEFS.solaris = VBOX_WS_NIX
181VirtualBoxVM_DEFS.freebsd = VBOX_WS_NIX
182VirtualBoxVM_DEFS.darwin = VBOX_WS_MAC
183VirtualBoxVM_DEFS.win = VBOX_WS_WIN
184VirtualBoxVM_DEFS.linux += VBOX_WITH_MASKED_SEAMLESS VBOX_WITH_TRANSLUCENT_SEAMLESS
185VirtualBoxVM_DEFS.solaris += VBOX_WITH_MASKED_SEAMLESS VBOX_WITH_TRANSLUCENT_SEAMLESS
186VirtualBoxVM_DEFS.freebsd += VBOX_WITH_MASKED_SEAMLESS VBOX_WITH_TRANSLUCENT_SEAMLESS
187VirtualBoxVM_DEFS.darwin += VBOX_WITH_TRANSLUCENT_SEAMLESS # VBOX_WITH_MASKED_SEAMLESS
188VirtualBoxVM_DEFS.win += VBOX_WITH_MASKED_SEAMLESS # VBOX_WITH_TRANSLUCENT_SEAMLESS
189ifdef VBOX_WITH_VMNET
190 VirtualBoxVM_DEFS.darwin += VBOX_WITH_VMNET
191endif
192ifndef VBOX_WITH_QT6 # qt6: The UICocoaSpecialControls needs restructuring because QMacCocoaViewContainer is gone. Too lazy for now.
193 VirtualBoxVM_DEFS.darwin += VBOX_DARWIN_USE_NATIVE_CONTROLS
194endif
195VirtualBoxVM_DEFS.win += UNICODE QT_DLL
196VirtualBoxVM_DEFS += \
197 $(if $(VBOX_WITH_ADDITIONS_AUTOUPDATE_UI),VBOX_WITH_ADDITIONS_AUTOUPDATE_UI) \
198 $(if $(VBOX_WITH_UPDATE_REQUEST),VBOX_WITH_UPDATE_REQUEST) \
199 $(if $(VBOX_WITH_NETFLT)$(eq $(KBUILD_TARGET),freebsd),VBOX_WITH_NETFLT) \
200 $(if $(VBOX_WITH_VDE),VBOX_WITH_VDE) \
201 $(if $(VBOX_WITH_HARDENING),VBOXR3_HARDENED_DLL) \
202 $(if $(VBOX_WITH_DRAG_AND_DROP),VBOX_WITH_DRAG_AND_DROP) \
203 $(if $(VBOX_WITH_DRAG_AND_DROP_GH),VBOX_WITH_DRAG_AND_DROP_GH) \
204 $(if $(VBOX_WITH_DRAG_AND_DROP_PROMISES),VBOX_WITH_DRAG_AND_DROP_PROMISES) \
205 $(if $(VBOX_WITH_3D_ACCELERATION),VBOX_WITH_3D_ACCELERATION) \
206 $(if $(VBOX_GUI_WITH_PIDFILE),VBOX_GUI_WITH_PIDFILE) \
207 $(if $(VBOX_GUI_WITH_KEYS_RESET_HANDLER),VBOX_GUI_WITH_KEYS_RESET_HANDLER) \
208 $(if $(VBOX_GUI_WITH_CUSTOMIZATIONS1),VBOX_GUI_WITH_CUSTOMIZATIONS1) \
209 $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE) \
210 $(if $(VBOX_WITH_SDS),VBOX_WITH_SDS,) \
211 $(if $(VBOX_WITH_VIRT_ARMV8),VBOX_WITH_VIRT_ARMV8,)
212ifdef VBOX_WITH_DEBUGGER_GUI
213 VirtualBoxVM_DEFS += VBOX_WITH_DEBUGGER_GUI
214 if "$(KBUILD_TYPE)" != "release"
215 VirtualBoxVM_DEFS += VBOX_WITH_DEBUGGER_GUI_MENU
216 endif
217endif
218ifdef VBOX_WITH_LIBCURL
219 VirtualBoxVM_DEFS += VBOX_GUI_WITH_NETWORK_MANAGER
220 VBOX_GUI_WITH_NETWORK_MANAGER := 1
221endif
222if "$(KBUILD_TYPE)" != "release" || defined(VBOX_GUI_WITH_EXTRADATA_MANAGER_UI)
223 VirtualBoxVM_DEFS += VBOX_GUI_WITH_EXTRADATA_MANAGER_UI
224endif
225if "$(KBUILD_TYPE)" != "release" || defined(VBOX_NOTIFICATION_CENTER_WITH_KEEP_BUTTON)
226 VirtualBoxVM_DEFS += VBOX_NOTIFICATION_CENTER_WITH_KEEP_BUTTON
227endif
228ifndef VBOX_WITHOUT_LESS_VIRTUALBOX_INCLUDING
229 VirtualBoxVM_DEFS += VBOX_WITH_LESS_VIRTUALBOX_INCLUDING
230endif
231
232
233#
234# VirtualBox - GUI Global Shared Library.
235#
236UICommon_TEMPLATE = VBoxQtGuiDll
237UICommon_NAME = UICommon
238UICommon_DEFS = VBOX_GUI_LIBRARY
239ifdef VBOX_WITH_QT6 # moc is too stupid to parse #if QT_VERSION > xxx, '#ifdef VBOX_IS_QT6_OR_LATER' works though (no spaces).
240 UICommon_DEFS += VBOX_IS_QT6_OR_LATER
241endif
242UICommon_DEFS.darwin = VBOX_WS_MAC
243UICommon_DEFS.freebsd = VBOX_WS_NIX
244UICommon_DEFS.linux = VBOX_WS_NIX QT_NO_DEPRECATED_WARNINGS
245UICommon_DEFS.solaris = VBOX_WS_NIX
246UICommon_DEFS.win = VBOX_WS_WIN
247UICommon_DEFS.debug = VBOX_CHECK_STATE # QT_FATAL_ASSERT
248ifdef VBOX_WITH_VMNET
249 UICommon_DEFS.darwin += VBOX_WITH_VMNET
250endif
251ifndef VBOX_WITH_QT6 # qt6: The UICocoaSpecialControls needs restructuring because QMacCocoaViewContainer is gone. Too lazy for now.
252 UICommon_DEFS.darwin += VBOX_DARWIN_USE_NATIVE_CONTROLS
253endif
254#UICommon_DEFS.win += UNICODE QT_DLL
255UICommon_DEFS += \
256 $(if $(VBOX_WITH_UPDATE_REQUEST),VBOX_WITH_UPDATE_REQUEST) \
257 $(if $(VBOX_WITH_CLOUD_NET),VBOX_WITH_CLOUD_NET) \
258 $(if $(VBOX_WITH_NETFLT)$(eq $(KBUILD_TARGET),freebsd),VBOX_WITH_NETFLT) \
259 $(if $(VBOX_WITH_VDE),VBOX_WITH_VDE) \
260 $(if $(VBOX_WITH_HARDENING),VBOXR3_HARDENED_DLL) \
261 $(if $(VBOX_WITH_DRAG_AND_DROP),VBOX_WITH_DRAG_AND_DROP) \
262 $(if $(VBOX_WITH_3D_ACCELERATION),VBOX_WITH_3D_ACCELERATION) \
263 $(if $(VBOX_GUI_WITH_PIDFILE),VBOX_GUI_WITH_PIDFILE) \
264 $(if $(VBOX_GUI_WITH_CUSTOMIZATIONS1),VBOX_GUI_WITH_CUSTOMIZATIONS1) \
265 $(if $(VBOX_WITH_RAW_MODE),VBOX_WITH_RAW_MODE) \
266 $(if $(VBOX_WITH_DOCS_QHELP),VBOX_WITH_DOCS_QHELP) \
267 $(if $(VBOX_WITH_SCREENSAVER_CONTROL),VBOX_WITH_SCREENSAVER_CONTROL) \
268 $(if $(VBOX_WITH_SDS),VBOX_WITH_SDS,) \
269 $(if $(VBOX_WITH_UPDATE_AGENT),VBOX_WITH_UPDATE_AGENT) \
270 $(if $(VBOX_WITH_VIRT_ARMV8),VBOX_WITH_VIRT_ARMV8,)
271ifdef VBOX_WITH_DEBUGGER_GUI
272 UICommon_DEFS += VBOX_WITH_DEBUGGER_GUI
273 if "$(KBUILD_TYPE)" != "release"
274 UICommon_DEFS += VBOX_WITH_DEBUGGER_GUI_MENU
275 endif
276endif
277ifdef VBOX_WITH_LIBCURL
278 UICommon_DEFS += VBOX_GUI_WITH_NETWORK_MANAGER
279 VBOX_GUI_WITH_NETWORK_MANAGER := 1
280endif
281if "$(KBUILD_TYPE)" != "release" || defined(VBOX_GUI_WITH_EXTRADATA_MANAGER_UI)
282 UICommon_DEFS += VBOX_GUI_WITH_EXTRADATA_MANAGER_UI
283endif
284if "$(KBUILD_TYPE)" != "release" || defined(VBOX_NOTIFICATION_CENTER_WITH_KEEP_BUTTON)
285 UICommon_DEFS += VBOX_NOTIFICATION_CENTER_WITH_KEEP_BUTTON
286endif
287ifndef VBOX_WITHOUT_LESS_VIRTUALBOX_INCLUDING
288 UICommon_DEFS += VBOX_WITH_LESS_VIRTUALBOX_INCLUDING
289endif
290
291
292#
293# Include folders.
294#
295VBOX_GUI_INC_DIRS = \
296 ./src \
297 ./src/cloud/consolemanager \
298 ./src/cloud/machinesettings \
299 ./src/cloud/profilemanager \
300 ./src/converter \
301 ./src/extensionpackmanager \
302 ./src/extensions \
303 ./src/extensions/graphics \
304 ./src/extradata \
305 ./src/globals \
306 ./src/helpbrowser \
307 ./src/logviewer \
308 ./src/medium \
309 ./src/medium/viso \
310 ./src/networkmanager \
311 ./src/notificationcenter \
312 ./src/objects \
313 ./src/platform \
314 ./src/platform/darwin \
315 ./src/platform/win \
316 ./src/platform/nix \
317 ./src/runtime \
318 ./src/runtime/fullscreen \
319 ./src/runtime/normal \
320 ./src/runtime/scale \
321 ./src/runtime/seamless \
322 ./src/runtime/information \
323 ./src/guestctrl \
324 ./src/settings \
325 ./src/settings/editors \
326 ./src/settings/global \
327 ./src/settings/machine \
328 ./src/softkeyboard \
329 ./src/snapshots \
330 ./src/widgets \
331 ./src/widgets/graphics \
332 ./src/wizards \
333 ./src/wizards/addcloudvm \
334 ./src/wizards/newcloudvm \
335 ./src/wizards/newvm \
336 ./src/wizards/newvd \
337 ./src/wizards/clonevm \
338 ./src/wizards/clonevd \
339 ./src/wizards/exportappliance \
340 ./src/wizards/importappliance \
341 ./src/wizards/editors
342
343VBOX_GUI_INC_DIRS += \
344 ./src/manager \
345 ./src/manager/chooser \
346 ./src/manager/details \
347 ./src/manager/tools \
348 ./src/activity \
349 ./src/activity/overview \
350 ./src/activity/vmactivity
351
352ifdef VBOX_GUI_WITH_NETWORK_MANAGER
353 VBOX_GUI_INC_DIRS += \
354 ./src/networking
355endif
356
357#
358# VirtualBox Manager Application
359# Include folders.
360#
361VirtualBox_INCS = \
362 $(VBOX_GUI_INC_DIRS) \
363 $(UICommon_0_OUTDIR)/include \
364 $(VBOX_GRAPHICS_INCS)
365
366#
367# VirtualBox Virtual Machine Application
368# Include folders.
369#
370VirtualBoxVM_INCS = \
371 $(VBOX_GUI_INC_DIRS) \
372 $(UICommon_0_OUTDIR)/include \
373 $(VBOX_GRAPHICS_INCS)
374
375#
376# VirtualBox - GUI Global Shared Library.
377# Include folders.
378#
379UICommon_INCS = \
380 $(VBOX_GUI_INC_DIRS) \
381 $(UICommon_0_OUTDIR)/include
382
383
384#
385# VirtualBox Manager Application
386# Compiling/linking flags.
387#
388ifneq ($(KBUILD_TARGET),win)
389 VirtualBox_CXXFLAGS += -Wno-switch
390endif
391
392VirtualBox_CXXFLAGS.win += /permissive-
393VirtualBox_CXXFLAGS.linux += $(VBOX_GCC_Wno-class-memaccess)
394
395## @todo we're using a number of deprecated APIs, please fix and remove these!
396VirtualBox_CXXFLAGS.darwin += -Wno-error=deprecated-declarations
397VirtualBox_OBJCFLAGS.darwin += -Wno-error=deprecated-declarations
398VirtualBox_OBJCXXFLAGS.darwin += -Wno-error=deprecated-declarations
399
400ifeq ($(KBUILD_TYPE),release)
401 VirtualBox_LDFLAGS.win += /SUBSYSTEM:windows
402else
403 VirtualBox_LDFLAGS.linux += -rdynamic # for backtrace_symbols()
404 VirtualBox_LDFLAGS.win += /SUBSYSTEM:console
405endif
406
407#
408# Parfait fails with an error that ../MacOS can't be accessed while standard clang has no problem with it.
409# As we don't want to run the output just omit the -rpath arguments to make it build
410#
411VirtualBox_LDFLAGS.darwin = \
412 $(if-expr $(VBOX_WITH_HARDENING) || $(VBOX_WITH_PARFAIT),,-rpath @executable_path/../MacOS -rpath @executable_path/../Frameworks) \
413 -framework AppKit -framework Carbon -framework IOKit
414
415
416#
417# VirtualBox Virtual Machine Application
418# Compiling/linking flags.
419#
420ifneq ($(KBUILD_TARGET),win)
421 VirtualBoxVM_CXXFLAGS += -Wno-switch
422endif
423
424VirtualBoxVM_CXXFLAGS.win += /permissive-
425VirtualBoxVM_CXXFLAGS.linux += $(VBOX_GCC_Wno-class-memaccess)
426
427## @todo we're using a number of deprecated APIs, please fix and remove these!
428VirtualBoxVM_CXXFLAGS.darwin += -Wno-error=deprecated-declarations
429VirtualBoxVM_OBJCFLAGS.darwin += -Wno-error=deprecated-declarations
430VirtualBoxVM_OBJCXXFLAGS.darwin += -Wno-error=deprecated-declarations
431
432ifeq ($(KBUILD_TYPE),release)
433 VirtualBoxVM_LDFLAGS.win += /SUBSYSTEM:windows
434else
435 VirtualBoxVM_LDFLAGS.linux += -rdynamic # for backtrace_symbols()
436 VirtualBoxVM_LDFLAGS.win += /SUBSYSTEM:console
437endif
438
439#
440# Parfait fails with an error that ../MacOS can't be accessed while standard clang has no problem with it.
441# As we don't want to run the output just omit the -rpath arguments to make it build
442#
443ifndef VBOX_WITH_PARFAIT
444 VirtualBoxVM_LDFLAGS.darwin = \
445 $(if $(VBOX_WITH_HARDENING) \
446 ,-install_name $(VBOX_DYLD_EXECUTABLE_PATH)/VirtualBoxVM.dylib \
447 ,-rpath @executable_path/../../../../MacOS \
448 -rpath @executable_path/../../../../Frameworks) \
449 -framework AppKit -framework Carbon -framework IOKit
450else
451 VirtualBoxVM_LDFLAGS.darwin = -framework AppKit -framework Carbon -framework IOKit
452endif
453
454
455#
456# VirtualBox - GUI Global Shared Library.
457# Compiling/linking flags.
458#
459
460UICommon_CXXFLAGS.linux += $(VBOX_GCC_Wno-class-memaccess)
461UICommon_CXXFLAGS.win += -wd4868 # prevents std::stable_sort from using functor/function comparator
462UICommon_CXXFLAGS.win += -bigobj # COMWrappers.cpp fails with too many sections on win64-dep otherwise.
463UICommon_CXXFLAGS.win += /permissive-
464
465## @todo we're using a number of deprecated APIs, please fix and remove these!
466UICommon_CXXFLAGS.darwin += -Wno-error=deprecated-declarations
467UICommon_OBJCFLAGS.darwin += -Wno-error=deprecated-declarations
468UICommon_OBJCXXFLAGS.darwin += -Wno-error=deprecated-declarations
469
470UICommon_LDFLAGS.darwin = \
471 -install_name "$(VBOX_DYLD_EXECUTABLE_PATH)/UICommon.dylib" \
472 -framework AppKit \
473 -framework Carbon \
474 -framework IOKit
475
476#
477# VirtualBox Manager Application
478# Libraries.
479#
480
481# Library required for the hdd backend enumeration:
482VirtualBox_LIBS = $(LIB_DDU)
483
484# Runtime library loader required on X11 hosts:
485if1of ($(KBUILD_TARGET), linux netbsd openbsd)
486 VirtualBox_LIBS += dl
487endif
488
489# Xinerama library required for multi-monitor support:
490VirtualBox_LIBS.linux += Xinerama
491VirtualBox_LIBS.solaris += Xinerama
492VirtualBox_LIBS.freebsd += Xinerama
493
494# XCB library required for direct XCB native code support:
495VirtualBox_LIBS.linux += xcb
496VirtualBox_LIBS.solaris += xcb
497VirtualBox_LIBS.freebsd += xcb
498
499# Various Windows hosts libraries:
500VirtualBox_LIBS.win = \
501 $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Htmlhelp.Lib
502ifdef VBOX_WITH_NEW_WINDOWS_SDK
503 VirtualBox_LIBS.win += \
504 $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/ddraw.lib \
505 $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/dxguid.lib
506else
507 VirtualBox_LIBS.win += \
508 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/ddraw.lib \
509 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib
510endif
511
512# VBox keyboard shared library for X11 hosts:
513if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
514 VirtualBox_LIBS += $(PATH_STAGE_DLL)/VBoxKeyboard$(VBOX_SUFF_DLL)
515endif
516
517# This one is global shared GUI library:
518ifeq ($(KBUILD_TARGET),win)
519 VirtualBox_LIBS += $(PATH_STAGE_LIB)/UICommon$(VBOX_SUFF_LIB)
520else
521 VirtualBox_LIBS += $(PATH_STAGE_DLL)/UICommon$(VBOX_SUFF_DLL)
522endif
523
524
525#
526# VirtualBox Virtual Machine Application
527# Libraries.
528#
529
530# Library required for the hdd backend enumeration:
531VirtualBoxVM_LIBS = $(LIB_DDU)
532
533# Runtime library loader required on X11 hosts:
534if1of ($(KBUILD_TARGET), linux netbsd openbsd)
535 VirtualBoxVM_LIBS += dl
536endif
537
538# Xinerama library required for multi-monitor support:
539VirtualBoxVM_LIBS.linux += Xinerama
540VirtualBoxVM_LIBS.solaris += Xinerama
541VirtualBoxVM_LIBS.freebsd += Xinerama
542
543# XCB library required for direct XCB native code support:
544VirtualBoxVM_LIBS.linux += xcb
545VirtualBoxVM_LIBS.solaris += xcb
546VirtualBoxVM_LIBS.freebsd += xcb
547
548# Various Windows hosts libraries:
549VirtualBoxVM_LIBS.win = \
550 $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Htmlhelp.Lib
551ifdef VBOX_WITH_NEW_WINDOWS_SDK
552 VirtualBoxVM_LIBS.win += \
553 $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/ddraw.lib \
554 $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/dxguid.lib
555else
556 VirtualBoxVM_LIBS.win += \
557 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/ddraw.lib \
558 $(PATH_SDK_$(VBOX_WINDDK)_LIB)/dxguid.lib
559endif
560
561# VBox keyboard shared library for X11 hosts:
562if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
563 VirtualBoxVM_LIBS += $(PATH_STAGE_DLL)/VBoxKeyboard$(VBOX_SUFF_DLL)
564endif
565
566ifeq ($(KBUILD_TARGET),win)
567 VirtualBoxVM_LIBS += $(PATH_STAGE_LIB)/UICommon$(VBOX_SUFF_LIB)
568else
569 VirtualBoxVM_LIBS += $(PATH_STAGE_DLL)/UICommon$(VBOX_SUFF_DLL)
570endif
571
572
573#
574# VirtualBox - GUI Global Shared Library.
575# Libraries.
576#
577
578# Xinerama library required for multi-monitor support:
579UICommon_LIBS.linux += Xinerama
580UICommon_LIBS.solaris += Xinerama
581UICommon_LIBS.freebsd += Xinerama
582
583# Various Windows hosts libraries:
584UICommon_LIBS.win = \
585 $(PATH_SDK_$(VBOX_WINPSDK)_LIB)/Htmlhelp.Lib
586
587# VBox keyboard shared library for X11 hosts:
588if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris)
589 UICommon_LIBS += $(PATH_STAGE_DLL)/VBoxKeyboard$(VBOX_SUFF_DLL)
590endif
591
592
593#
594# VirtualBox Manager Application
595# Headers containing definitions of classes that use the Q_OBJECT macro.
596#
597VirtualBox_QT_MOCHDRS = \
598 src/cloud/consolemanager/UICloudConsoleDetailsWidget.h \
599 src/cloud/consolemanager/UICloudConsoleManager.h \
600 src/cloud/machinesettings/UICloudMachineSettingsDialog.h \
601 src/cloud/machinesettings/UICloudMachineSettingsDialogPage.h \
602 src/cloud/profilemanager/UICloudProfileDetailsWidget.h \
603 src/cloud/profilemanager/UICloudProfileManager.h \
604 src/extensionpackmanager/UIExtensionPackManager.h \
605 src/globals/UIStarter.h \
606 src/manager/UIErrorPane.h \
607 src/manager/UIProgressTaskReadCloudMachineList.h \
608 src/manager/UITaskCloudGetSettingsForm.h \
609 src/manager/UIToolPaneGlobal.h \
610 src/manager/UIToolPaneMachine.h \
611 src/manager/UIVirtualBoxManager.h \
612 src/manager/UIVirtualBoxManagerWidget.h \
613 src/manager/UIVirtualMachineItem.h \
614 src/manager/UIVirtualMachineItemCloud.h \
615 src/manager/UIVirtualMachineItemLocal.h \
616 src/manager/UIWelcomePane.h \
617 src/manager/chooser/UIChooser.h \
618 src/manager/chooser/UIChooserAbstractModel.h \
619 src/manager/chooser/UIChooserModel.h \
620 src/manager/chooser/UIChooserView.h \
621 src/manager/chooser/UIChooserHandlerMouse.h \
622 src/manager/chooser/UIChooserHandlerKeyboard.h \
623 src/manager/chooser/UIChooserItem.h \
624 src/manager/chooser/UIChooserItemGroup.h \
625 src/manager/chooser/UIChooserItemGlobal.h \
626 src/manager/chooser/UIChooserItemMachine.h \
627 src/manager/chooser/UIChooserNode.h \
628 src/manager/chooser/UIChooserNodeGroup.h \
629 src/manager/chooser/UIChooserNodeGlobal.h \
630 src/manager/chooser/UIChooserNodeMachine.h \
631 src/manager/chooser/UIChooserSearchWidget.h \
632 src/manager/details/UIDetails.h \
633 src/manager/details/UIDetailsContextMenu.h \
634 src/manager/details/UIDetailsModel.h \
635 src/manager/details/UIDetailsView.h \
636 src/manager/details/UIDetailsItem.h \
637 src/manager/details/UIDetailsGroup.h \
638 src/manager/details/UIDetailsSet.h \
639 src/manager/details/UIDetailsElement.h \
640 src/manager/details/UIDetailsElements.h \
641 src/manager/details/UIMachinePreview.h \
642 src/manager/tools/UITools.h \
643 src/manager/tools/UIToolsModel.h \
644 src/manager/tools/UIToolsView.h \
645 src/manager/tools/UIToolsHandlerMouse.h \
646 src/manager/tools/UIToolsHandlerKeyboard.h \
647 src/manager/tools/UIToolsItem.h \
648 src/medium/UIMediumDetailsWidget.h \
649 src/medium/UIMediumManager.h \
650 src/activity/overview/UIVMActivityOverviewWidget.h \
651 src/activity/overview/UIVMActivityToolWidget.h \
652 src/networkmanager/UIDetailsWidgetCloudNetwork.h \
653 src/networkmanager/UIDetailsWidgetHostNetwork.h \
654 src/networkmanager/UIDetailsWidgetNATNetwork.h \
655 src/networkmanager/UINetworkManager.h \
656 src/snapshots/UISnapshotDetailsWidget.h \
657 src/snapshots/UISnapshotPane.h \
658 src/widgets/UIApplianceEditorWidget.h \
659 src/widgets/UIApplianceExportEditorWidget.h \
660 src/widgets/UIApplianceImportEditorWidget.h \
661 src/widgets/UIEmptyFilePathSelector.h \
662 src/widgets/UIFormEditorWidget.h \
663 src/widgets/UIGuestOSTypeSelectionButton.h \
664 src/widgets/UILineTextEdit.h \
665 src/widgets/UISlidingAnimation.h \
666 src/widgets/UISlidingWidget.h \
667 src/widgets/UITabBar.h \
668 src/widgets/UIMenuToolBar.h \
669 src/widgets/graphics/UIGraphicsButton.h \
670 src/widgets/graphics/UIGraphicsRotatorButton.h \
671 src/widgets/graphics/UIGraphicsScrollArea.h \
672 src/widgets/graphics/UIGraphicsScrollBar.h \
673 src/widgets/graphics/UIGraphicsZoomButton.h \
674 src/widgets/graphics/UIGraphicsToolBar.h \
675 src/widgets/graphics/UIGraphicsTextPane.h \
676 src/wizards/addcloudvm/UIWizardAddCloudVM.h \
677 src/wizards/addcloudvm/UIWizardAddCloudVMPageExpert.h \
678 src/wizards/addcloudvm/UIWizardAddCloudVMPageSource.h \
679 src/wizards/editors/UIHostnameDomainNameEditor.h \
680 src/wizards/editors/UIWizardCloneVMEditors.h \
681 src/wizards/editors/UIWizardNewVMEditors.h \
682 src/wizards/newcloudvm/UIWizardNewCloudVM.h \
683 src/wizards/newcloudvm/UIWizardNewCloudVMPageExpert.h \
684 src/wizards/newcloudvm/UIWizardNewCloudVMPageProperties.h \
685 src/wizards/newcloudvm/UIWizardNewCloudVMPageSource.h \
686 src/wizards/newvm/UIWizardNewVM.h \
687 src/wizards/newvm/UIWizardNewVMNameOSTypePage.h \
688 src/wizards/newvm/UIWizardNewVMUnattendedPage.h \
689 src/wizards/newvm/UIWizardNewVMHardwarePage.h \
690 src/wizards/newvm/UIWizardNewVMDiskPage.h \
691 src/wizards/newvm/UIWizardNewVMExpertPage.h \
692 src/wizards/newvm/UIWizardNewVMSummaryPage.h \
693 src/wizards/clonevm/UIWizardCloneVM.h \
694 src/wizards/clonevm/UIWizardCloneVMNamePathPage.h \
695 src/wizards/clonevm/UIWizardCloneVMTypePage.h \
696 src/wizards/clonevm/UIWizardCloneVMModePage.h \
697 src/wizards/clonevm/UIWizardCloneVMExpertPage.h \
698 src/wizards/clonevd/UIWizardCloneVD.h \
699 src/wizards/clonevd/UIWizardCloneVDFormatPage.h \
700 src/wizards/clonevd/UIWizardCloneVDVariantPage.h \
701 src/wizards/clonevd/UIWizardCloneVDPathSizePage.h \
702 src/wizards/clonevd/UIWizardCloneVDExpertPage.h \
703 src/wizards/exportappliance/UIWizardExportApp.h \
704 src/wizards/exportappliance/UIWizardExportAppPageExpert.h \
705 src/wizards/exportappliance/UIWizardExportAppPageFormat.h \
706 src/wizards/exportappliance/UIWizardExportAppPageSettings.h \
707 src/wizards/exportappliance/UIWizardExportAppPageVMs.h \
708 src/wizards/importappliance/UIApplianceUnverifiedCertificateViewer.h \
709 src/wizards/importappliance/UIWizardImportApp.h \
710 src/wizards/importappliance/UIWizardImportAppPageExpert.h \
711 src/wizards/importappliance/UIWizardImportAppPageSettings.h \
712 src/wizards/importappliance/UIWizardImportAppPageSource.h
713
714
715#
716# VirtualBox Virtual Machine Application
717# Headers containing definitions of classes that use the Q_OBJECT macro.
718#
719VirtualBoxVM_QT_MOCHDRS = \
720 src/globals/UIStarter.h \
721 src/runtime/UIBootFailureDialog.h \
722 src/runtime/UIConsoleEventHandler.h \
723 src/runtime/UIFrameBuffer.h \
724 src/runtime/UIIndicatorsPool.h \
725 src/runtime/UIKeyboardHandler.h \
726 src/runtime/UIMachine.h \
727 src/runtime/UIMachineLogic.h \
728 src/runtime/UIMachineWindow.h \
729 src/runtime/UIMachineView.h \
730 src/runtime/UIMouseHandler.h \
731 src/runtime/UIMultiScreenLayout.h \
732 src/runtime/UISession.h \
733 src/runtime/UIVMCloseDialog.h \
734 src/runtime/fullscreen/UIKeyboardHandlerFullscreen.h \
735 src/runtime/fullscreen/UIMachineLogicFullscreen.h \
736 src/runtime/fullscreen/UIMachineViewFullscreen.h \
737 src/runtime/fullscreen/UIMachineWindowFullscreen.h \
738 src/runtime/information/UIInformationConfiguration.h \
739 src/runtime/information/UIVMInformationDialog.h \
740 src/runtime/information/UIInformationRuntime.h \
741 src/guestctrl/UIFileManagerDialog.h \
742 src/guestctrl/UIGuestControlConsole.h \
743 src/guestctrl/UIGuestControlInterface.h \
744 src/guestctrl/UIGuestControlTreeItem.h \
745 src/guestctrl/UIGuestProcessControlDialog.h \
746 src/guestctrl/UIGuestProcessControlWidget.h \
747 src/runtime/normal/UIKeyboardHandlerNormal.h \
748 src/runtime/normal/UIMachineLogicNormal.h \
749 src/runtime/normal/UIMachineViewNormal.h \
750 src/runtime/normal/UIMachineWindowNormal.h \
751 src/runtime/scale/UIKeyboardHandlerScale.h \
752 src/runtime/scale/UIMachineLogicScale.h \
753 src/runtime/scale/UIMachineViewScale.h \
754 src/runtime/scale/UIMachineWindowScale.h \
755 src/runtime/seamless/UIKeyboardHandlerSeamless.h \
756 src/runtime/seamless/UIMachineLogicSeamless.h \
757 src/runtime/seamless/UIMachineViewSeamless.h \
758 src/runtime/seamless/UIMachineWindowSeamless.h \
759 src/softkeyboard/UISoftKeyboard.h \
760 src/widgets/UIMiniToolBar.h
761
762ifdef VBOX_WITH_DRAG_AND_DROP
763 VirtualBoxVM_QT_MOCHDRS += \
764 src/runtime/UIDnDHandler.h
765 ifdef VBOX_WITH_DRAG_AND_DROP_GH
766 VirtualBoxVM_QT_MOCHDRS += \
767 src/runtime/UIDnDMIMEData.h
768 endif
769endif
770
771
772#
773# VirtualBox - GUI Global Shared Library.
774# Headers containing definitions of classes that use the Q_OBJECT macro.
775#
776UICommon_QT_MOCHDRS = \
777 src/VBoxAboutDlg.h \
778 src/VBoxLicenseViewer.h \
779 src/UITakeSnapshotDialog.h \
780 src/extensions/QIAdvancedSlider.h \
781 src/extensions/QIArrowButtonPress.h \
782 src/extensions/QIArrowButtonSwitch.h \
783 src/extensions/QIArrowSplitter.h \
784 src/extensions/QIComboBox.h \
785 src/extensions/QIDialog.h \
786 src/extensions/QIDialogButtonBox.h \
787 src/extensions/QIDialogContainer.h \
788 src/extensions/QIFileDialog.h \
789 src/extensions/QIFlowLayout.h \
790 src/extensions/QIInputDialog.h \
791 src/extensions/QILabel.h \
792 src/extensions/QILabelSeparator.h \
793 src/extensions/QILineEdit.h \
794 src/extensions/QIMainDialog.h \
795 src/extensions/QIManagerDialog.h \
796 src/extensions/QIMenu.h \
797 src/extensions/QIMessageBox.h \
798 src/extensions/QIProcess.h \
799 src/extensions/QIRichTextLabel.h \
800 src/extensions/QIRichToolButton.h \
801 src/extensions/QISplitter.h \
802 src/extensions/QIStatusBar.h \
803 src/extensions/QIStatusBarIndicator.h \
804 src/extensions/QIStyledItemDelegate.h \
805 src/extensions/QITableView.h \
806 src/extensions/QITableWidget.h \
807 src/extensions/QITabWidget.h \
808 src/extensions/QIToolBar.h \
809 src/extensions/QIToolButton.h \
810 src/extensions/QITreeView.h \
811 src/extensions/QITreeWidget.h \
812 src/extensions/QIWidgetValidator.h \
813 src/extensions/graphics/QIGraphicsView.h \
814 src/extensions/graphics/QIGraphicsWidget.h \
815 src/extradata/UIExtraDataDefs.h \
816 src/extradata/UIExtraDataManager.h \
817 src/globals/UIActionPool.h \
818 src/globals/UIActionPoolManager.h \
819 src/globals/UIActionPoolRuntime.h \
820 src/globals/UIAnimationFramework.h \
821 src/globals/UICommon.h \
822 src/globals/UIFileSystemModel.h \
823 src/globals/UIDesktopWidgetWatchdog.h \
824 src/globals/UIGlobalSession.h \
825 src/globals/UIMainEventListener.h \
826 src/globals/UIMessageCenter.h \
827 src/globals/UIModalWindowManager.h \
828 src/globals/UIPopupCenter.h \
829 src/globals/UIProgressEventHandler.h \
830 src/globals/UIProgressObject.h \
831 src/globals/UIProgressTask.h \
832 src/globals/UIQObjectStuff.h \
833 src/globals/UIShortcutPool.h \
834 src/globals/UITask.h \
835 src/globals/UIThreadPool.h \
836 src/globals/UITextTable.h \
837 src/globals/UITranslator.h \
838 src/globals/UIVirtualBoxEventHandler.h \
839 src/globals/UIVirtualBoxClientEventHandler.h \
840 src/globals/VBoxUtils.h \
841 src/guestctrl/UIFileManager.h \
842 src/guestctrl/UIFileManagerGuestTable.h \
843 src/guestctrl/UIFileManagerHostTable.h \
844 src/guestctrl/UIFileManagerPaneContainer.h \
845 src/guestctrl/UIFileManagerTable.h \
846 src/helpbrowser/UIHelpBrowserDialog.h \
847 src/helpbrowser/UIHelpViewer.h \
848 src/helpbrowser/UIHelpBrowserWidget.h \
849 src/logviewer/UIVMLogPage.h \
850 src/logviewer/UIVMLogViewerBookmarksWidget.h \
851 src/logviewer/UIVMLogViewerDialog.h \
852 src/logviewer/UIVMLogViewerFilterWidget.h \
853 src/logviewer/UIVMLogViewerPreferencesWidget.h \
854 src/logviewer/UIVMLogViewerPanel.h \
855 src/logviewer/UIVMLogViewerSearchWidget.h \
856 src/logviewer/UIVMLogViewerTextEdit.h \
857 src/logviewer/UIVMLogViewerWidget.h \
858 src/activity/vmactivity/UIVMActivityMonitor.h \
859 src/activity/UIMonitorCommon.h \
860 src/medium/UIFDCreationDialog.h \
861 src/medium/UIMediumEnumerator.h \
862 src/medium/UIMediumItem.h \
863 src/medium/UIMediumSearchWidget.h \
864 src/medium/UIMediumSelector.h \
865 src/medium/viso/UIVisoContentBrowser.h \
866 src/medium/viso/UIVisoCreator.h \
867 src/notificationcenter/UINotificationCenter.h \
868 src/notificationcenter/UINotificationModel.h \
869 src/notificationcenter/UINotificationObject.h \
870 src/notificationcenter/UINotificationObjectItem.h \
871 src/notificationcenter/UINotificationObjects.h \
872 src/notificationcenter/UINotificationProgressTask.h \
873 src/objects/UIExecutionQueue.h \
874 src/settings/UIAdvancedSettingsDialog.h \
875 src/settings/UIAdvancedSettingsDialogSpecific.h \
876 src/settings/UISettingsPage.h \
877 src/settings/UISettingsPageValidator.h \
878 src/settings/UISettingsSelector.h \
879 src/settings/UISettingsSerializer.h \
880 src/settings/UISettingsWarningPane.h \
881 src/settings/editors/UIAccelerationFeaturesEditor.h \
882 src/settings/editors/UIAudioControllerEditor.h \
883 src/settings/editors/UIAudioFeaturesEditor.h \
884 src/settings/editors/UIAudioHostDriverEditor.h \
885 src/settings/editors/UIAudioSettingsEditor.h \
886 src/settings/editors/UIAutoCaptureKeyboardEditor.h \
887 src/settings/editors/UIBaseMemoryEditor.h \
888 src/settings/editors/UIBootOrderEditor.h \
889 src/settings/editors/UIChipsetEditor.h \
890 src/settings/editors/UIColorThemeEditor.h \
891 src/settings/editors/UIDefaultMachineFolderEditor.h \
892 src/settings/editors/UIDescriptionEditor.h \
893 src/settings/editors/UIDiskEncryptionSettingsEditor.h \
894 src/settings/editors/UIDisplayFeaturesEditor.h \
895 src/settings/editors/UIDisplayScreenFeaturesEditor.h \
896 src/settings/editors/UIDragAndDropEditor.h \
897 src/settings/editors/UIEditor.h \
898 src/settings/editors/UIExecutionCapEditor.h \
899 src/settings/editors/UIFontScaleEditor.h \
900 src/settings/editors/UIGraphicsControllerEditor.h \
901 src/settings/editors/UIHostComboEditor.h \
902 src/settings/editors/UIHotKeyEditor.h \
903 src/settings/editors/UILanguageSettingsEditor.h \
904 src/settings/editors/UIMaximumGuestScreenSizeEditor.h \
905 src/settings/editors/UIMenuBarEditor.h \
906 src/settings/editors/UIMiniToolbarSettingsEditor.h \
907 src/settings/editors/UIMonitorCountEditor.h \
908 src/settings/editors/UIMotherboardFeaturesEditor.h \
909 src/settings/editors/UINameAndSystemEditor.h \
910 src/settings/editors/UINetworkAttachmentEditor.h \
911 src/settings/editors/UINetworkFeaturesEditor.h \
912 src/settings/editors/UINetworkSettingsEditor.h \
913 src/settings/editors/UIParavirtProviderEditor.h \
914 src/settings/editors/UIPointingHIDEditor.h \
915 src/settings/editors/UIProcessorFeaturesEditor.h \
916 src/settings/editors/UIProxyFeaturesEditor.h \
917 src/settings/editors/UIRecordingSettingsEditor.h \
918 src/settings/editors/UIScaleFactorEditor.h \
919 src/settings/editors/UISerialSettingsEditor.h \
920 src/settings/editors/UISharedClipboardEditor.h \
921 src/settings/editors/UISharedFolderDetailsEditor.h \
922 src/settings/editors/UISharedFoldersEditor.h \
923 src/settings/editors/UIShortcutConfigurationEditor.h \
924 src/settings/editors/UISnapshotFolderEditor.h \
925 src/settings/editors/UIStatusBarEditor.h \
926 src/settings/editors/UIStorageSettingsEditor.h \
927 src/settings/editors/UITpmEditor.h \
928 src/settings/editors/UIUSBControllerEditor.h \
929 src/settings/editors/UIUSBFilterDetailsEditor.h \
930 src/settings/editors/UIUSBFiltersEditor.h \
931 src/settings/editors/UIUSBSettingsEditor.h \
932 src/settings/editors/UIVideoMemoryEditor.h \
933 src/settings/editors/UIVirtualCPUEditor.h \
934 src/settings/editors/UIVisualStateEditor.h \
935 src/settings/editors/UIVRDEAuthLibraryEditor.h \
936 src/settings/editors/UIVRDESettingsEditor.h \
937 src/settings/global/UIGlobalSettingsGeneral.h \
938 src/settings/global/UIGlobalSettingsInput.h \
939 src/settings/global/UIGlobalSettingsLanguage.h \
940 src/settings/global/UIGlobalSettingsDisplay.h \
941 src/settings/global/UIGlobalSettingsInterface.h \
942 src/settings/machine/UIMachineSettingsAudio.h \
943 src/settings/machine/UIMachineSettingsDisplay.h \
944 src/settings/machine/UIMachineSettingsGeneral.h \
945 src/settings/machine/UIMachineSettingsInterface.h \
946 src/settings/machine/UIMachineSettingsNetwork.h \
947 src/settings/machine/UIMachineSettingsPortForwardingDlg.h \
948 src/settings/machine/UIMachineSettingsSF.h \
949 src/settings/machine/UIMachineSettingsSerial.h \
950 src/settings/machine/UIMachineSettingsStorage.h \
951 src/settings/machine/UIMachineSettingsSystem.h \
952 src/settings/machine/UIMachineSettingsUSB.h \
953 src/widgets/UIAddDiskEncryptionPasswordDialog.h \
954 src/widgets/UIFilePathSelector.h \
955 src/widgets/UIFileTableNavigationWidget.h \
956 src/widgets/UIFilmContainer.h \
957 src/widgets/UIMediaComboBox.h \
958 src/widgets/UIMediumSizeEditor.h \
959 src/widgets/UIMenuBar.h \
960 src/widgets/UIPaneContainer.h \
961 src/widgets/UIPopupBox.h \
962 src/widgets/UIPopupPane.h \
963 src/widgets/UIPopupPaneButtonPane.h \
964 src/widgets/UIPopupPaneMessage.h \
965 src/widgets/UIPopupPaneDetails.h \
966 src/widgets/UIPopupStack.h \
967 src/widgets/UIPopupStackViewport.h \
968 src/widgets/UIPortForwardingTable.h \
969 src/widgets/UIProgressDialog.h \
970 src/widgets/UISlidingToolBar.h \
971 src/widgets/UISpecialControls.h \
972 src/widgets/UISearchLineEdit.h \
973 src/widgets/UIToolBox.h \
974 src/wizards/UINativeWizard.h \
975 src/wizards/UINativeWizardPage.h \
976 src/wizards/editors/UIUserNamePasswordEditor.h \
977 src/wizards/editors/UIWizardDiskEditors.h \
978 src/wizards/newvd/UIWizardNewVD.h \
979 src/wizards/newvd/UIWizardNewVDFileTypePage.h \
980 src/wizards/newvd/UIWizardNewVDVariantPage.h \
981 src/wizards/newvd/UIWizardNewVDSizeLocationPage.h \
982 src/wizards/newvd/UIWizardNewVDExpertPage.h
983
984ifdef VBOX_GUI_WITH_NETWORK_MANAGER
985 UICommon_QT_MOCHDRS += \
986 src/networking/UIDownloader.h \
987 src/networking/UIDownloaderExtensionPack.h \
988 src/networking/UIDownloaderGuestAdditions.h \
989 src/networking/UIDownloaderUserManual.h \
990 src/networking/UINetworkCustomer.h \
991 src/networking/UINetworkRequestManager.h \
992 src/networking/UINetworkRequest.h \
993 src/networking/UINetworkReply.h \
994 src/networking/UINewVersionChecker.h \
995 src/networking/UIUpdateManager.h \
996 src/settings/editors/UIUpdateSettingsEditor.h \
997 src/settings/global/UIGlobalSettingsProxy.h \
998 src/settings/global/UIGlobalSettingsUpdate.h
999endif
1000
1001UICommon_QT_MOCHDRS.darwin += \
1002 src/platform/darwin/UICocoaSpecialControls.h \
1003 src/platform/darwin/UIWindowMenuManager.h
1004
1005
1006#
1007# VirtualBox Manager Application
1008# Sources containing local definitions of classes that use the Q_OBJECT macro.
1009#
1010VirtualBox_QT_MOCSRCS = \
1011 src/cloud/consolemanager/UICloudConsoleManager.cpp \
1012 src/cloud/profilemanager/UICloudProfileManager.cpp \
1013 src/extensionpackmanager/UIExtensionPackManager.cpp \
1014 src/manager/UIVirtualBoxManager.cpp \
1015 src/manager/UIVirtualMachineItemCloud.cpp \
1016 src/manager/chooser/UIChooserAbstractModel.cpp \
1017 src/activity/overview/UIVMActivityOverviewWidget.cpp \
1018 src/networkmanager/UINetworkManager.cpp \
1019 src/snapshots/UISnapshotDetailsWidget.cpp \
1020 src/snapshots/UISnapshotPane.cpp \
1021 src/widgets/UIApplianceEditorWidget.cpp \
1022 src/widgets/UIFormEditorWidget.cpp \
1023 src/widgets/UIMenuToolBar.cpp \
1024 src/widgets/UITabBar.cpp \
1025 src/widgets/graphics/UIGraphicsScrollBar.cpp \
1026 src/wizards/importappliance/UIWizardImportApp.cpp \
1027 src/wizards/newvm/UIWizardNewVMSummaryPage.cpp
1028
1029#
1030# VirtualBox Virtual Machine Application
1031# Sources containing local definitions of classes that use the Q_OBJECT macro.
1032#
1033VirtualBoxVM_QT_MOCSRCS = \
1034 src/runtime/UIConsoleEventHandler.cpp \
1035 src/runtime/UIFrameBuffer.cpp \
1036 src/runtime/UIIndicatorsPool.cpp \
1037 src/runtime/information/UIInformationRuntime.cpp \
1038 src/guestctrl/UIGuestProcessControlWidget.cpp \
1039 src/softkeyboard/UISoftKeyboard.cpp \
1040 src/widgets/UIMiniToolBar.cpp
1041
1042
1043#
1044# VirtualBox - GUI Global Shared Library.
1045# Sources containing local definitions of classes that use the Q_OBJECT macro.
1046#
1047UICommon_QT_MOCSRCS = \
1048 src/extensions/QIAdvancedSlider.cpp \
1049 src/extensions/QIArrowSplitter.cpp \
1050 src/extensions/QISplitter.cpp \
1051 src/extradata/UIExtraDataManager.cpp \
1052 src/globals/UIActionPool.cpp \
1053 src/globals/UIActionPoolManager.cpp \
1054 src/globals/UIActionPoolRuntime.cpp \
1055 src/globals/UIMainEventListener.cpp \
1056 src/globals/UIThreadPool.cpp \
1057 src/globals/UIVirtualBoxEventHandler.cpp \
1058 src/globals/UIVirtualBoxClientEventHandler.cpp \
1059 src/guestctrl/UIFileManager.cpp \
1060 src/guestctrl/UIFileManagerPaneContainer.cpp \
1061 src/guestctrl/UIFileManagerTable.cpp \
1062 src/guestctrl/UIFileManagerGuestTable.cpp \
1063 src/guestctrl/UIFileManagerHostTable.cpp \
1064 src/helpbrowser/UIHelpViewer.cpp \
1065 src/helpbrowser/UIHelpBrowserWidget.cpp \
1066 src/logviewer/UIVMLogViewerFilterWidget.cpp \
1067 src/logviewer/UIVMLogViewerTextEdit.cpp \
1068 src/logviewer/UIVMLogViewerWidget.cpp \
1069 src/activity/vmactivity/UIVMActivityMonitor.cpp \
1070 src/medium/UIMediumEnumerator.cpp \
1071 src/medium/viso/UIVisoContentBrowser.cpp \
1072 src/medium/viso/UIVisoCreator.cpp \
1073 src/notificationcenter/UINotificationCenter.cpp \
1074 src/settings/UIAdvancedSettingsDialog.cpp \
1075 src/settings/UISettingsSelector.cpp \
1076 src/settings/editors/UIBaseMemoryEditor.cpp \
1077 src/settings/editors/UIBootOrderEditor.cpp \
1078 src/settings/editors/UIHotKeyEditor.cpp \
1079 src/settings/editors/UILanguageSettingsEditor.cpp \
1080 src/settings/editors/UISharedFoldersEditor.cpp \
1081 src/settings/editors/UIShortcutConfigurationEditor.cpp \
1082 src/settings/editors/UIStatusBarEditor.cpp \
1083 src/settings/editors/UIStorageSettingsEditor.cpp \
1084 src/settings/editors/UIUSBFiltersEditor.cpp \
1085 src/widgets/UIAddDiskEncryptionPasswordDialog.cpp \
1086 src/widgets/UIFileTableNavigationWidget.cpp \
1087 src/widgets/UIFilmContainer.cpp \
1088 src/widgets/UIPortForwardingTable.cpp \
1089 src/widgets/UIToolBox.cpp
1090
1091ifdef VBOX_GUI_WITH_NETWORK_MANAGER
1092 UICommon_QT_MOCSRCS += \
1093 src/networking/UINetworkReply.cpp \
1094 src/networking/UIUpdateManager.cpp
1095endif
1096
1097ifdef VBOX_WITH_XPCOM
1098 UICommon_QT_MOCSRCS += \
1099 src/globals/COMDefs.cpp
1100endif
1101
1102UICommon_QT_MOCSRCS.darwin += \
1103 src/platform/darwin/UIWindowMenuManager.cpp
1104
1105ifndef VBOX_GUI_WITH_CUSTOMIZATIONS1
1106 UICommon_QT_MOCSRCS.linux += \
1107 src/globals/UIDesktopWidgetWatchdog.cpp
1108 UICommon_QT_MOCSRCS.solaris += \
1109 src/globals/UIDesktopWidgetWatchdog.cpp
1110 UICommon_QT_MOCSRCS.freebsd += \
1111 src/globals/UIDesktopWidgetWatchdog.cpp
1112endif
1113
1114# Common Guest / Host sources.
1115VBOX_GH_SOURCES := \
1116 $(PATH_ROOT)/src/VBox/GuestHost/DisplayServerType.cpp
1117
1118#
1119# VirtualBox Manager Application
1120# Sources.
1121#
1122VirtualBox_SOURCES = \
1123 src/main.cpp \
1124 src/cloud/consolemanager/UICloudConsoleDetailsWidget.cpp \
1125 src/cloud/consolemanager/UICloudConsoleManager.cpp \
1126 src/cloud/machinesettings/UICloudMachineSettingsDialog.cpp \
1127 src/cloud/machinesettings/UICloudMachineSettingsDialogPage.cpp \
1128 src/cloud/profilemanager/UICloudProfileDetailsWidget.cpp \
1129 src/cloud/profilemanager/UICloudProfileManager.cpp \
1130 src/extensionpackmanager/UIExtensionPackManager.cpp \
1131 src/globals/UIStarter.cpp \
1132 src/manager/UICloudEntityKey.cpp \
1133 src/manager/UIErrorPane.cpp \
1134 src/manager/UIProgressTaskReadCloudMachineList.cpp \
1135 src/manager/UITaskCloudGetSettingsForm.cpp \
1136 src/manager/UIToolPaneGlobal.cpp \
1137 src/manager/UIToolPaneMachine.cpp \
1138 src/manager/UIVirtualBoxManager.cpp \
1139 src/manager/UIVirtualBoxManagerWidget.cpp \
1140 src/manager/UIVirtualMachineItem.cpp \
1141 src/manager/UIVirtualMachineItemCloud.cpp \
1142 src/manager/UIVirtualMachineItemLocal.cpp \
1143 src/manager/UIWelcomePane.cpp \
1144 src/manager/chooser/UIChooser.cpp \
1145 src/manager/chooser/UIChooserAbstractModel.cpp \
1146 src/manager/chooser/UIChooserModel.cpp \
1147 src/manager/chooser/UIChooserView.cpp \
1148 src/manager/chooser/UIChooserHandlerMouse.cpp \
1149 src/manager/chooser/UIChooserHandlerKeyboard.cpp \
1150 src/manager/chooser/UIChooserItem.cpp \
1151 src/manager/chooser/UIChooserItemGroup.cpp \
1152 src/manager/chooser/UIChooserItemGlobal.cpp \
1153 src/manager/chooser/UIChooserItemMachine.cpp \
1154 src/manager/chooser/UIChooserNode.cpp \
1155 src/manager/chooser/UIChooserNodeGroup.cpp \
1156 src/manager/chooser/UIChooserNodeGlobal.cpp \
1157 src/manager/chooser/UIChooserNodeMachine.cpp \
1158 src/manager/chooser/UIChooserSearchWidget.cpp \
1159 src/manager/details/UIDetails.cpp \
1160 src/manager/details/UIDetailsContextMenu.cpp \
1161 src/manager/details/UIDetailsModel.cpp \
1162 src/manager/details/UIDetailsView.cpp \
1163 src/manager/details/UIDetailsItem.cpp \
1164 src/manager/details/UIDetailsGroup.cpp \
1165 src/manager/details/UIDetailsSet.cpp \
1166 src/manager/details/UIDetailsElement.cpp \
1167 src/manager/details/UIDetailsElements.cpp \
1168 src/manager/details/UIMachinePreview.cpp \
1169 src/manager/tools/UITools.cpp \
1170 src/manager/tools/UIToolsModel.cpp \
1171 src/manager/tools/UIToolsView.cpp \
1172 src/manager/tools/UIToolsHandlerMouse.cpp \
1173 src/manager/tools/UIToolsHandlerKeyboard.cpp \
1174 src/manager/tools/UIToolsItem.cpp \
1175 src/medium/UIMediumDetailsWidget.cpp \
1176 src/medium/UIMediumManager.cpp \
1177 src/activity/overview/UIVMActivityOverviewWidget.cpp \
1178 src/activity/overview/UIVMActivityToolWidget.cpp \
1179 src/networkmanager/UIDetailsWidgetCloudNetwork.cpp \
1180 src/networkmanager/UIDetailsWidgetHostNetwork.cpp \
1181 src/networkmanager/UIDetailsWidgetNATNetwork.cpp \
1182 src/networkmanager/UINetworkManager.cpp \
1183 src/networkmanager/UINetworkManagerUtils.cpp \
1184 src/snapshots/UISnapshotDetailsWidget.cpp \
1185 src/snapshots/UISnapshotPane.cpp \
1186 src/widgets/UIApplianceEditorWidget.cpp \
1187 src/widgets/UIApplianceExportEditorWidget.cpp \
1188 src/widgets/UIApplianceImportEditorWidget.cpp \
1189 src/widgets/UIEmptyFilePathSelector.cpp \
1190 src/widgets/UIFormEditorWidget.cpp \
1191 src/widgets/UIGuestOSTypeSelectionButton.cpp \
1192 src/widgets/UILineTextEdit.cpp \
1193 src/widgets/UISlidingAnimation.cpp \
1194 src/widgets/UISlidingWidget.cpp \
1195 src/widgets/UITabBar.cpp \
1196 src/widgets/UIMenuToolBar.cpp \
1197 src/widgets/graphics/UIGraphicsButton.cpp \
1198 src/widgets/graphics/UIGraphicsRotatorButton.cpp \
1199 src/widgets/graphics/UIGraphicsScrollArea.cpp \
1200 src/widgets/graphics/UIGraphicsScrollBar.cpp \
1201 src/widgets/graphics/UIGraphicsZoomButton.cpp \
1202 src/widgets/graphics/UIGraphicsToolBar.cpp \
1203 src/widgets/graphics/UIGraphicsTextPane.cpp \
1204 src/wizards/addcloudvm/UIWizardAddCloudVM.cpp \
1205 src/wizards/addcloudvm/UIWizardAddCloudVMPageExpert.cpp \
1206 src/wizards/addcloudvm/UIWizardAddCloudVMPageSource.cpp \
1207 src/wizards/editors/UIHostnameDomainNameEditor.cpp \
1208 src/wizards/editors/UIWizardCloneVMEditors.cpp \
1209 src/wizards/editors/UIWizardNewVMEditors.cpp \
1210 src/wizards/newcloudvm/UIWizardNewCloudVM.cpp \
1211 src/wizards/newcloudvm/UIWizardNewCloudVMPageExpert.cpp \
1212 src/wizards/newcloudvm/UIWizardNewCloudVMPageProperties.cpp \
1213 src/wizards/newcloudvm/UIWizardNewCloudVMPageSource.cpp \
1214 src/wizards/newvm/UIWizardNewVM.cpp \
1215 src/wizards/newvm/UIWizardNewVMNameOSTypePage.cpp \
1216 src/wizards/newvm/UIWizardNewVMUnattendedPage.cpp \
1217 src/wizards/newvm/UIWizardNewVMHardwarePage.cpp \
1218 src/wizards/newvm/UIWizardNewVMDiskPage.cpp \
1219 src/wizards/newvm/UIWizardNewVMExpertPage.cpp \
1220 src/wizards/newvm/UIWizardNewVMSummaryPage.cpp \
1221 src/wizards/clonevm/UIWizardCloneVM.cpp \
1222 src/wizards/clonevm/UIWizardCloneVMNamePathPage.cpp \
1223 src/wizards/clonevm/UIWizardCloneVMTypePage.cpp \
1224 src/wizards/clonevm/UIWizardCloneVMModePage.cpp \
1225 src/wizards/clonevm/UIWizardCloneVMExpertPage.cpp \
1226 src/wizards/clonevd/UIWizardCloneVD.cpp \
1227 src/wizards/clonevd/UIWizardCloneVDFormatPage.cpp \
1228 src/wizards/clonevd/UIWizardCloneVDVariantPage.cpp \
1229 src/wizards/clonevd/UIWizardCloneVDPathSizePage.cpp \
1230 src/wizards/clonevd/UIWizardCloneVDExpertPage.cpp \
1231 src/wizards/exportappliance/UIWizardExportApp.cpp \
1232 src/wizards/exportappliance/UIWizardExportAppPageExpert.cpp \
1233 src/wizards/exportappliance/UIWizardExportAppPageFormat.cpp \
1234 src/wizards/exportappliance/UIWizardExportAppPageSettings.cpp \
1235 src/wizards/exportappliance/UIWizardExportAppPageVMs.cpp \
1236 src/wizards/importappliance/UIApplianceUnverifiedCertificateViewer.cpp \
1237 src/wizards/importappliance/UIWizardImportApp.cpp \
1238 src/wizards/importappliance/UIWizardImportAppPageExpert.cpp \
1239 src/wizards/importappliance/UIWizardImportAppPageSettings.cpp \
1240 src/wizards/importappliance/UIWizardImportAppPageSource.cpp
1241
1242VirtualBox_SOURCES.darwin += \
1243 src/platform/darwin/UIDesktopServices_darwin.cpp \
1244 src/platform/darwin/UIDesktopServices_darwin_cocoa.mm
1245
1246if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # U*nix
1247 VirtualBox_SOURCES += \
1248 src/platform/nix/UIDesktopServices_nix.cpp \
1249 $(VBOX_GH_SOURCES) # For detecting display server
1250endif
1251
1252VirtualBox_SOURCES.win += \
1253 src/platform/win/UIDesktopServices_win.cpp
1254
1255$(call VBOX_SET_VER_INFO_EXE,VirtualBox,VirtualBox Manager,$(VBOX_WINDOWS_ICON_FILE),VirtualBoxGUI)
1256
1257
1258#
1259# VirtualBox Virtual Machine Application
1260# Sources.
1261#
1262VirtualBoxVM_SOURCES = \
1263 src/main.cpp \
1264 src/globals/UIStarter.cpp \
1265 src/runtime/UIBootFailureDialog.cpp \
1266 src/runtime/UIConsoleEventHandler.cpp \
1267 src/runtime/UIFrameBuffer.cpp \
1268 src/runtime/UIIndicatorsPool.cpp \
1269 src/runtime/UIKeyboardHandler.cpp \
1270 src/runtime/UIMachine.cpp \
1271 src/runtime/UIMachineLogic.cpp \
1272 src/runtime/UIMachineView.cpp \
1273 src/runtime/UIMachineWindow.cpp \
1274 src/runtime/UIMouseHandler.cpp \
1275 src/runtime/UIMultiScreenLayout.cpp \
1276 src/runtime/UISession.cpp \
1277 src/runtime/UIVMCloseDialog.cpp \
1278 src/runtime/fullscreen/UIKeyboardHandlerFullscreen.cpp \
1279 src/runtime/fullscreen/UIMachineLogicFullscreen.cpp \
1280 src/runtime/fullscreen/UIMachineViewFullscreen.cpp \
1281 src/runtime/fullscreen/UIMachineWindowFullscreen.cpp \
1282 src/runtime/information/UIInformationConfiguration.cpp \
1283 src/runtime/information/UIVMInformationDialog.cpp \
1284 src/runtime/information/UIInformationRuntime.cpp \
1285 src/guestctrl/UIFileManagerDialog.cpp \
1286 src/guestctrl/UIGuestControlConsole.cpp \
1287 src/guestctrl/UIGuestControlInterface.cpp \
1288 src/guestctrl/UIGuestControlTreeItem.cpp \
1289 src/guestctrl/UIGuestProcessControlWidget.cpp \
1290 src/guestctrl/UIGuestProcessControlDialog.cpp \
1291 src/runtime/normal/UIKeyboardHandlerNormal.cpp \
1292 src/runtime/normal/UIMachineLogicNormal.cpp \
1293 src/runtime/normal/UIMachineViewNormal.cpp \
1294 src/runtime/normal/UIMachineWindowNormal.cpp \
1295 src/runtime/scale/UIKeyboardHandlerScale.cpp \
1296 src/runtime/scale/UIMachineLogicScale.cpp \
1297 src/runtime/scale/UIMachineViewScale.cpp \
1298 src/runtime/scale/UIMachineWindowScale.cpp \
1299 src/runtime/seamless/UIKeyboardHandlerSeamless.cpp \
1300 src/runtime/seamless/UIMachineLogicSeamless.cpp \
1301 src/runtime/seamless/UIMachineViewSeamless.cpp \
1302 src/runtime/seamless/UIMachineWindowSeamless.cpp \
1303 src/softkeyboard/UISoftKeyboard.cpp \
1304 src/widgets/UIMiniToolBar.cpp
1305
1306ifdef VBOX_WITH_DRAG_AND_DROP
1307 VirtualBoxVM_SOURCES += \
1308 src/runtime/UIDnDHandler.cpp
1309 ifdef VBOX_WITH_DRAG_AND_DROP_GH
1310 VirtualBoxVM_SOURCES += \
1311 src/runtime/UIDnDMIMEData.cpp
1312 VirtualBoxVM_SOURCES.win += \
1313 src/runtime/UIDnDDropSource_win.cpp \
1314 src/runtime/UIDnDDataObject_win.cpp \
1315 src/runtime/UIDnDEnumFormat_win.cpp
1316 endif
1317endif
1318
1319VirtualBoxVM_SOURCES.darwin += \
1320 src/platform/darwin/UIAbstractDockIconPreview.cpp \
1321 src/platform/darwin/UICocoaDockIconPreview.mm
1322
1323if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # U*nix
1324 VirtualBoxVM_SOURCES += \
1325 $(VBOX_GH_SOURCES) # For detecting display server
1326endif
1327
1328ifdef VBOX_WITH_HARDENING
1329 $(call VBOX_SET_VER_INFO_DLL,VirtualBoxVM,VirtualBox Virtual Machine (dll),$(VBOX_WINDOWS_ICON_FILE))
1330else
1331 $(call VBOX_SET_VER_INFO_EXE,VirtualBoxVM,VirtualBox Virtual Machine,$(VBOX_WINDOWS_ICON_FILE))
1332endif
1333
1334
1335#
1336# VirtualBox - GUI Global Shared Library.
1337# Sources.
1338#
1339UICommon_SOURCES = \
1340 src/VBoxAboutDlg.cpp \
1341 src/VBoxLicenseViewer.cpp \
1342 src/UITakeSnapshotDialog.cpp \
1343 src/extensions/QIAdvancedSlider.cpp \
1344 src/extensions/QIArrowButtonPress.cpp \
1345 src/extensions/QIArrowButtonSwitch.cpp \
1346 src/extensions/QIArrowSplitter.cpp \
1347 src/extensions/QIComboBox.cpp \
1348 src/extensions/QIDialog.cpp \
1349 src/extensions/QIDialogButtonBox.cpp \
1350 src/extensions/QIDialogContainer.cpp \
1351 src/extensions/QIFileDialog.cpp \
1352 src/extensions/QIFlowLayout.cpp \
1353 src/extensions/QIInputDialog.cpp \
1354 src/extensions/QILabel.cpp \
1355 src/extensions/QILabelSeparator.cpp \
1356 src/extensions/QILineEdit.cpp \
1357 src/extensions/QIMainDialog.cpp \
1358 src/extensions/QIManagerDialog.cpp \
1359 src/extensions/QIMenu.cpp \
1360 src/extensions/QIMessageBox.cpp \
1361 src/extensions/QIProcess.cpp \
1362 src/extensions/QIRichTextLabel.cpp \
1363 src/extensions/QIRichToolButton.cpp \
1364 src/extensions/QISplitter.cpp \
1365 src/extensions/QIStatusBar.cpp \
1366 src/extensions/QIStatusBarIndicator.cpp \
1367 src/extensions/QIStyledItemDelegate.cpp \
1368 src/extensions/QITableView.cpp \
1369 src/extensions/QITableWidget.cpp \
1370 src/extensions/QITabWidget.cpp \
1371 src/extensions/QIToolBar.cpp \
1372 src/extensions/QIToolButton.cpp \
1373 src/extensions/QITreeView.cpp \
1374 src/extensions/QITreeWidget.cpp \
1375 src/extensions/QIWidgetValidator.cpp \
1376 src/extensions/graphics/QIGraphicsView.cpp \
1377 src/extensions/graphics/QIGraphicsWidget.cpp \
1378 src/extradata/UIExtraDataDefs.cpp \
1379 src/extradata/UIExtraDataManager.cpp \
1380 src/converter/UIConverter.cpp \
1381 src/converter/UIConverterBackendCOM.cpp \
1382 src/converter/UIConverterBackendGlobal.cpp \
1383 src/globals/COMDefs.cpp \
1384 src/globals/UIActionPool.cpp \
1385 src/globals/UIActionPoolManager.cpp \
1386 src/globals/UIActionPoolRuntime.cpp \
1387 src/globals/UIAnimationFramework.cpp \
1388 src/globals/UICloudNetworkingStuff.cpp \
1389 src/globals/UICommon.cpp \
1390 src/globals/UICursor.cpp \
1391 src/globals/UIFileSystemModel.cpp \
1392 src/globals/UIDefs.cpp \
1393 src/globals/UIDesktopWidgetWatchdog.cpp \
1394 src/globals/UIDetailsGenerator.cpp \
1395 src/globals/UIErrorString.cpp \
1396 src/globals/UIExtension.cpp \
1397 src/globals/UIGlobalSession.cpp \
1398 src/globals/UIGuestOSType.cpp \
1399 src/globals/UIIconPool.cpp \
1400 src/globals/UIImageTools.cpp \
1401 src/globals/UIMachineAttributeSetter.cpp \
1402 src/globals/UIMainEventListener.cpp \
1403 src/globals/UIMessageCenter.cpp \
1404 src/globals/UIModalWindowManager.cpp \
1405 src/globals/UIMousePointerShapeData.cpp \
1406 src/globals/UIPathOperations.cpp \
1407 src/globals/UIPopupCenter.cpp \
1408 src/globals/UIProgressEventHandler.cpp \
1409 src/globals/UIProgressObject.cpp \
1410 src/globals/UIProgressTask.cpp \
1411 src/globals/UIQObjectStuff.cpp \
1412 src/globals/UIShortcutPool.cpp \
1413 src/globals/UITextTable.cpp \
1414 src/globals/UITask.cpp \
1415 src/globals/UIThreadPool.cpp \
1416 src/globals/UITranslator.cpp \
1417 src/globals/UIVersion.cpp \
1418 src/globals/UIVirtualBoxEventHandler.cpp \
1419 src/globals/UIVirtualBoxClientEventHandler.cpp \
1420 src/guestctrl/UIFileManager.cpp \
1421 src/guestctrl/UIFileManagerGuestTable.cpp \
1422 src/guestctrl/UIFileManagerHostTable.cpp \
1423 src/guestctrl/UIFileManagerPaneContainer.cpp \
1424 src/guestctrl/UIFileManagerTable.cpp \
1425 src/helpbrowser/UIHelpBrowserDialog.cpp \
1426 src/helpbrowser/UIHelpViewer.cpp \
1427 src/helpbrowser/UIHelpBrowserWidget.cpp \
1428 src/logviewer/UIVMLogPage.cpp \
1429 src/logviewer/UIVMLogViewerBookmarksWidget.cpp \
1430 src/logviewer/UIVMLogViewerDialog.cpp \
1431 src/logviewer/UIVMLogViewerFilterWidget.cpp \
1432 src/logviewer/UIVMLogViewerPreferencesWidget.cpp \
1433 src/logviewer/UIVMLogViewerPanel.cpp \
1434 src/logviewer/UIVMLogViewerSearchWidget.cpp \
1435 src/logviewer/UIVMLogViewerTextEdit.cpp \
1436 src/logviewer/UIVMLogViewerWidget.cpp \
1437 src/activity/UIMonitorCommon.cpp \
1438 src/activity/vmactivity/UIVMActivityMonitor.cpp \
1439 src/medium/UIFDCreationDialog.cpp \
1440 src/medium/UIMedium.cpp \
1441 src/medium/UIMediumDefs.cpp \
1442 src/medium/UIMediumEnumerator.cpp \
1443 src/medium/UIMediumItem.cpp \
1444 src/medium/UIMediumSearchWidget.cpp \
1445 src/medium/UIMediumSelector.cpp \
1446 src/medium/viso/UIVisoContentBrowser.cpp \
1447 src/medium/viso/UIVisoCreator.cpp \
1448 src/notificationcenter/UINotificationCenter.cpp \
1449 src/notificationcenter/UINotificationModel.cpp \
1450 src/notificationcenter/UINotificationObject.cpp \
1451 src/notificationcenter/UINotificationObjectItem.cpp \
1452 src/notificationcenter/UINotificationObjects.cpp \
1453 src/notificationcenter/UINotificationProgressTask.cpp \
1454 src/objects/UIExecutionQueue.cpp \
1455 src/objects/UIRichTextString.cpp \
1456 src/settings/UISettingsDefs.cpp \
1457 src/settings/UIAdvancedSettingsDialog.cpp \
1458 src/settings/UIAdvancedSettingsDialogSpecific.cpp \
1459 src/settings/UISettingsPage.cpp \
1460 src/settings/UISettingsPageValidator.cpp \
1461 src/settings/UISettingsSelector.cpp \
1462 src/settings/UISettingsSerializer.cpp \
1463 src/settings/UISettingsWarningPane.cpp \
1464 src/settings/editors/UIAccelerationFeaturesEditor.cpp \
1465 src/settings/editors/UIAudioControllerEditor.cpp \
1466 src/settings/editors/UIAudioFeaturesEditor.cpp \
1467 src/settings/editors/UIAudioHostDriverEditor.cpp \
1468 src/settings/editors/UIAudioSettingsEditor.cpp \
1469 src/settings/editors/UIAutoCaptureKeyboardEditor.cpp \
1470 src/settings/editors/UIBaseMemoryEditor.cpp \
1471 src/settings/editors/UIBootOrderEditor.cpp \
1472 src/settings/editors/UIChipsetEditor.cpp \
1473 src/settings/editors/UIColorThemeEditor.cpp \
1474 src/settings/editors/UIDefaultMachineFolderEditor.cpp \
1475 src/settings/editors/UIDescriptionEditor.cpp \
1476 src/settings/editors/UIDiskEncryptionSettingsEditor.cpp \
1477 src/settings/editors/UIDisplayFeaturesEditor.cpp \
1478 src/settings/editors/UIDisplayScreenFeaturesEditor.cpp \
1479 src/settings/editors/UIDragAndDropEditor.cpp \
1480 src/settings/editors/UIEditor.cpp \
1481 src/settings/editors/UIExecutionCapEditor.cpp \
1482 src/settings/editors/UIFontScaleEditor.cpp \
1483 src/settings/editors/UIGraphicsControllerEditor.cpp \
1484 src/settings/editors/UIHostComboEditor.cpp \
1485 src/settings/editors/UIHotKeyEditor.cpp \
1486 src/settings/editors/UILanguageSettingsEditor.cpp \
1487 src/settings/editors/UIMaximumGuestScreenSizeEditor.cpp \
1488 src/settings/editors/UIMenuBarEditor.cpp \
1489 src/settings/editors/UIMiniToolbarSettingsEditor.cpp \
1490 src/settings/editors/UIMonitorCountEditor.cpp \
1491 src/settings/editors/UIMotherboardFeaturesEditor.cpp \
1492 src/settings/editors/UINameAndSystemEditor.cpp \
1493 src/settings/editors/UINetworkAttachmentEditor.cpp \
1494 src/settings/editors/UINetworkFeaturesEditor.cpp \
1495 src/settings/editors/UINetworkSettingsEditor.cpp \
1496 src/settings/editors/UIParavirtProviderEditor.cpp \
1497 src/settings/editors/UIPointingHIDEditor.cpp \
1498 src/settings/editors/UIProcessorFeaturesEditor.cpp \
1499 src/settings/editors/UIProxyFeaturesEditor.cpp \
1500 src/settings/editors/UIRecordingSettingsEditor.cpp \
1501 src/settings/editors/UIScaleFactorEditor.cpp \
1502 src/settings/editors/UISerialSettingsEditor.cpp \
1503 src/settings/editors/UISharedClipboardEditor.cpp \
1504 src/settings/editors/UISharedFolderDetailsEditor.cpp \
1505 src/settings/editors/UISharedFoldersEditor.cpp \
1506 src/settings/editors/UIShortcutConfigurationEditor.cpp \
1507 src/settings/editors/UISnapshotFolderEditor.cpp \
1508 src/settings/editors/UIStatusBarEditor.cpp \
1509 src/settings/editors/UIStorageSettingsEditor.cpp \
1510 src/settings/editors/UITpmEditor.cpp \
1511 src/settings/editors/UIUSBControllerEditor.cpp \
1512 src/settings/editors/UIUSBFilterDetailsEditor.cpp \
1513 src/settings/editors/UIUSBFiltersEditor.cpp \
1514 src/settings/editors/UIUSBSettingsEditor.cpp \
1515 src/settings/editors/UIVideoMemoryEditor.cpp \
1516 src/settings/editors/UIVirtualCPUEditor.cpp \
1517 src/settings/editors/UIVisualStateEditor.cpp \
1518 src/settings/editors/UIVRDEAuthLibraryEditor.cpp \
1519 src/settings/editors/UIVRDESettingsEditor.cpp \
1520 src/settings/global/UIGlobalSettingsGeneral.cpp \
1521 src/settings/global/UIGlobalSettingsInput.cpp \
1522 src/settings/global/UIGlobalSettingsLanguage.cpp \
1523 src/settings/global/UIGlobalSettingsDisplay.cpp \
1524 src/settings/global/UIGlobalSettingsInterface.cpp \
1525 src/settings/machine/UIMachineSettingsAudio.cpp \
1526 src/settings/machine/UIMachineSettingsDisplay.cpp \
1527 src/settings/machine/UIMachineSettingsGeneral.cpp \
1528 src/settings/machine/UIMachineSettingsInterface.cpp \
1529 src/settings/machine/UIMachineSettingsNetwork.cpp \
1530 src/settings/machine/UIMachineSettingsPortForwardingDlg.cpp \
1531 src/settings/machine/UIMachineSettingsSF.cpp \
1532 src/settings/machine/UIMachineSettingsSerial.cpp \
1533 src/settings/machine/UIMachineSettingsStorage.cpp \
1534 src/settings/machine/UIMachineSettingsSystem.cpp \
1535 src/settings/machine/UIMachineSettingsUSB.cpp \
1536 src/widgets/UIAddDiskEncryptionPasswordDialog.cpp \
1537 src/widgets/UIFilePathSelector.cpp \
1538 src/widgets/UIFileTableNavigationWidget.cpp \
1539 src/widgets/UIFilmContainer.cpp \
1540 src/widgets/UIMediaComboBox.cpp \
1541 src/widgets/UIMediumSizeEditor.cpp \
1542 src/widgets/UIMenuBar.cpp \
1543 src/widgets/UIPaneContainer.cpp \
1544 src/widgets/UIPopupBox.cpp \
1545 src/widgets/UIPopupPane.cpp \
1546 src/widgets/UIPopupPaneButtonPane.cpp \
1547 src/widgets/UIPopupPaneMessage.cpp \
1548 src/widgets/UIPopupPaneDetails.cpp \
1549 src/widgets/UIPopupStack.cpp \
1550 src/widgets/UIPopupStackViewport.cpp \
1551 src/widgets/UIPortForwardingTable.cpp \
1552 src/widgets/UIProgressDialog.cpp \
1553 src/widgets/UISearchLineEdit.cpp \
1554 src/widgets/UISlidingToolBar.cpp \
1555 src/widgets/UISpecialControls.cpp \
1556 src/widgets/UIToolBox.cpp \
1557 src/wizards/UINativeWizard.cpp \
1558 src/wizards/UINativeWizardPage.cpp \
1559 src/wizards/editors/UIUserNamePasswordEditor.cpp \
1560 src/wizards/editors/UIWizardDiskEditors.cpp \
1561 src/wizards/newvd/UIWizardNewVD.cpp \
1562 src/wizards/newvd/UIWizardNewVDFileTypePage.cpp \
1563 src/wizards/newvd/UIWizardNewVDVariantPage.cpp \
1564 src/wizards/newvd/UIWizardNewVDSizeLocationPage.cpp \
1565 src/wizards/newvd/UIWizardNewVDExpertPage.cpp
1566
1567ifdef VBOX_GUI_WITH_NETWORK_MANAGER
1568 UICommon_SOURCES += \
1569 src/networking/UIDownloader.cpp \
1570 src/networking/UIDownloaderExtensionPack.cpp \
1571 src/networking/UIDownloaderGuestAdditions.cpp \
1572 src/networking/UIDownloaderUserManual.cpp \
1573 src/networking/UINetworkCustomer.cpp \
1574 src/networking/UINetworkRequestManager.cpp \
1575 src/networking/UINetworkRequest.cpp \
1576 src/networking/UINetworkReply.cpp \
1577 src/networking/UIUpdateDefs.cpp \
1578 src/networking/UINewVersionChecker.cpp \
1579 src/networking/UIUpdateManager.cpp \
1580 src/settings/editors/UIUpdateSettingsEditor.cpp \
1581 src/settings/global/UIGlobalSettingsProxy.cpp \
1582 src/settings/global/UIGlobalSettingsUpdate.cpp
1583endif
1584
1585if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # Un*x
1586 UICommon_SOURCES += \
1587 src/platform/nix/VBoxUtils-nix.cpp \
1588 src/platform/nix/XKeyboard-new.cpp
1589endif
1590
1591UICommon_SOURCES.win += \
1592 src/platform/win/VBoxUtils-win.cpp \
1593 src/platform/win/WinKeyboard.cpp
1594
1595UICommon_SOURCES.darwin += \
1596 src/platform/darwin/CocoaEventHelper.mm \
1597 src/platform/darwin/DarwinKeyboard.cpp \
1598 src/platform/darwin/UICocoaApplication.mm \
1599 src/platform/darwin/UICocoaSpecialControls.mm \
1600 src/platform/darwin/UIWindowMenuManager.cpp \
1601 src/platform/darwin/VBoxUtils-darwin-cocoa.mm \
1602 src/platform/darwin/VBoxUtils-darwin.cpp
1603
1604#
1605# Include common guest / host sources.
1606#
1607if1of ($(KBUILD_TARGET), freebsd linux netbsd openbsd solaris) # U*nix
1608 UICommon_SOURCES += \
1609 $(VBOX_GH_SOURCES)
1610endif
1611
1612#
1613# VirtualBox Manager Application
1614# Deployment.
1615#
1616if defined(VBOX_WITH_ORACLE_QT) || defined(VBOX_WITH_QT_PAYLOAD)
1617 INSTALLS.linux += VirtualBox.qt.conf
1618 INSTALLS.solaris += VirtualBox.qt.conf
1619 VirtualBox.qt.conf_INST = $(INST_BIN)
1620 VirtualBox.qt.conf_MODE = 644
1621 VirtualBox.qt.conf_SOURCES = $(VirtualBox_0_OUTDIR)/qt.conf=>qt.conf
1622
1623 $$(VirtualBox_0_OUTDIR)/qt.conf: $(PATH_SUB_CURRENT)/Makefile.kmk $(VBOX_VERSION_MK) | $$(@D)/
1624 $(QUIET)$(RM) -f $@
1625 $(QUIET)$(APPEND) $@ "[Paths]"
1626 $(QUIET)$(APPEND) $@ "Plugins =" $(PATH_OUT)/$(INST_BIN)/plugins
1627endif
1628
1629
1630#
1631# VirtualBox Manager Application
1632# The Qt modules we're using.
1633# (The include directory and lib/framework for each module will be added by the Qt unit.)
1634#
1635VirtualBox_QT_MODULES = Core Gui Widgets PrintSupport StateMachine
1636VirtualBox_QT_MODULES.win += EntryPoint
1637
1638
1639#
1640# VirtualBox Virtual Machine Application
1641# The Qt modules we're using.
1642# (The include directory and lib/framework for each module will be added by the Qt unit.)
1643#
1644VirtualBoxVM_QT_MODULES = Core Gui Widgets PrintSupport StateMachine
1645VirtualBoxVM_QT_MODULES.win += EntryPoint
1646
1647
1648#
1649# VirtualBox - GUI Global Shared Library.
1650# The Qt modules we're using.
1651# (The include directory and lib/framework for each module will be added by the Qt unit.)
1652#
1653UICommon_QT_MODULES = Core Gui Widgets Help StateMachine
1654ifdef VBOX_WITH_SCREENSAVER_CONTROL
1655 UICommon_QT_MODULES.linux += DBus
1656 UICommon_QT_MODULES.linux += Xml
1657endif
1658ifdef VBOX_WITH_SCREENSAVER_CONTROL
1659 UICommon_QT_MODULES.solaris += DBus
1660 UICommon_QT_MODULES.solaris += Xml
1661endif
1662ifdef VBOX_WITH_SCREENSAVER_CONTROL
1663 UICommon_QT_MODULES.freebsd += DBus
1664 UICommon_QT_MODULES.freebsd += Xml
1665endif
1666
1667
1668# Pull in the ui files
1669$(eval VirtualBox_SOURCES += $(FORMS))
1670$(eval VirtualBoxVM_SOURCES += $(FORMS))
1671$(eval UICommon_SOURCES += $(FORMS))
1672
1673
1674# Resource files with some OSE differences (VirtualBoxBrand.qrc is created further down).
1675UICommon_SOURCES += VirtualBox1.qrc
1676VirtualBox1.qrc_RCCFLAGS = -name BASIC1
1677UICommon_SOURCES += VirtualBox2.qrc
1678VirtualBox2.qrc_RCCFLAGS = -name BASIC2
1679UICommon_SOURCES += VirtualBox1_x2.qrc
1680VirtualBox1_x2.qrc_RCCFLAGS = -name BASIC1_X2
1681UICommon_SOURCES += VirtualBox2_x2.qrc
1682VirtualBox2_x2.qrc_RCCFLAGS = -name BASIC2_X2
1683UICommon_SOURCES += VirtualBox1_x3.qrc
1684VirtualBox1_x3.qrc_RCCFLAGS = -name BASIC1_X3
1685UICommon_SOURCES += VirtualBox2_x3.qrc
1686VirtualBox2_x3.qrc_RCCFLAGS = -name BASIC2_X3
1687UICommon_SOURCES += VirtualBox1_x4.qrc
1688VirtualBox1_x4.qrc_RCCFLAGS = -name BASIC1_X4
1689UICommon_SOURCES += VirtualBox2_x4.qrc
1690VirtualBox2_x4.qrc_RCCFLAGS = -name BASIC2_X4
1691UICommon_SOURCES += VirtualBox_xml.qrc
1692VirtualBox_xml.qrc_RCCFLAGS = -name BASIC_XML
1693UICommon_SOURCES += $(VBOX_VIRTUALBOX_OUT_DIR)/VirtualBoxBrand.qrc
1694$(VBOX_VIRTUALBOX_OUT_DIR)/VirtualBoxBrand.qrc_RCCFLAGS = -name BRAND
1695
1696
1697# Import the translation source from VBoxUI.pro and add the qt_xx_YY counterparts
1698VirtualBox_QT_TRANSLATIONS := $(TRANSLATIONS) \
1699 $(patsubst nls/VirtualBox_%.ts,nls/qt_%.ts, $(filter nls/VirtualBox_%.ts,$(TRANSLATIONS)))
1700# Compress the translation units.
1701VirtualBox_LRCFLAGS = -silent
1702# Where to install the translations (a separate install target, VirtualBox-nls-inst is created).
1703VirtualBox_QT_TRANSLATIONS_INST = $(INST_BIN)nls/
1704# All files which contain translatable strings.
1705VirtualBox_VBOX_ALL_NLS_SOURCES = $(VirtualBox_SOURCES) $(VirtualBoxVM_SOURCES) $(UICommon_SOURCES)
1706
1707
1708## @todo how to detect what tool is used?
1709## @todo GCC3 seems to lack -Wno-missing-base-class-initializer, so we use
1710# more generic -Wno-extra
1711# bird: What about $(if $(VBOX_GCC_Wno-missing-base-class-initializer),$(VBOX_GCC_Wno-missing-base-class-initializer),$(VBOX_GCC_Wno-extra))?
1712ifdef VBOX_WITH_XPCOM
1713 VirtualBox_src/globals/COMDefs.cpp_CXXFLAGS = $(VBOX_GCC_Wno-extra)
1714endif
1715
1716
1717#
1718# Build generated COM wrappers as part of app.
1719# VirtualBox - GUI Global Shared Library.
1720#
1721includedep $(PATH_TARGET)/UICommonComWrapperFiles.dep
1722UICommon_BLDDIRS += $(UICommon_0_OUTDIR)/include
1723UICommon_INTERMEDIATES += $(UICommon_0_OUTDIR)/include/COMWrappers
1724UICommon_SOURCES += $(UICommon_0_OUTDIR)/include/COMWrappers.cpp
1725UICommon_CLEAN += $(wildcard $(UICommon_0_OUTDIR)/include/*) $(PATH_TARGET)/UICommonComWrapperFiles.dep
1726
1727## @todo kmk doesn't remake optional outputs when they are missing...
1728$$(UICommon_0_OUTDIR)/include/COMWrappers \
1729+ $(PATH_TARGET)/UICommonComWrapperFiles.dep \
1730+| $(if-expr defined(UICommon_VBOX_COMWRAPPERS) \
1731 , $(UICommon_VBOX_COMWRAPPERS) \
1732 , $$(UICommon_0_OUTDIR)/include/COMEnums.h \
1733 $$(UICommon_0_OUTDIR)/include/COMWrappers.cpp \
1734 ): \
1735 $(VBOX_XIDL_FILE) \
1736 $(VBOX_VIRTUALBOX_SRC)/src/globals/COMWrappers.xsl \
1737 $(VBOX_FILESPLIT) \
1738 | $$(dir $$@)
1739 $(call MSG_GENERATE,UICommon,$<,$@)
1740 $(QUIET)$(RM) -f -- "$@" "$(PATH_TARGET)/UICommonComWrapperFiles.dep"
1741 $(QUIET)$(VBOX_XSLTPROC) -o $@ \
1742 $(VBOX_VIRTUALBOX_SRC)/src/globals/COMWrappers.xsl $<
1743 $(QUIET)$(VBOX_FILESPLIT) $@ $(UICommon_0_OUTDIR)/include \
1744 $(PATH_TARGET)/UICommonComWrapperFiles.dep UICommon_VBOX_COMWRAPPERS
1745 $(APPEND) "$@"
1746
1747# alias for generating the COM Wrappers file.
1748testwrappers:: $$(UICommon_0_OUTDIR)/include/COMWrappers
1749
1750
1751#
1752# Generate qrc file with branded icons.
1753#
1754VirtualBox_BLDDIRS += $(VBOX_VIRTUALBOX_OUT_DIR)
1755VirtualBox_CLEAN += $(VBOX_VIRTUALBOX_OUT_DIR)/VirtualBoxBrand.qrc
1756$(VBOX_VIRTUALBOX_OUT_DIR)/VirtualBoxBrand.qrc: \
1757 $(VBOX_VIRTUALBOX_SRC)/VirtualBoxBrand.qrc \
1758 $(PATH_ROOT)/Config.kmk \
1759 | $$(dir $$@)
1760 $(call MSG_GENERATE,VirtualBox,$<,$@)
1761 $(QUIET)$(SED) \
1762 -e 's;@VBOX_ABOUT_PNG@;$(VBOX_BRAND_GUI_ABOUT_PNG);g' \
1763 -e 's;@VBOX_ABOUT_X2_PNG@;$(VBOX_BRAND_GUI_ABOUT_X2_PNG);g' \
1764 -e 's;@VBOX_ABOUT_X3_PNG@;$(VBOX_BRAND_GUI_ABOUT_X3_PNG);g' \
1765 -e 's;@VBOX_ABOUT_X4_PNG@;$(VBOX_BRAND_GUI_ABOUT_X4_PNG);g' \
1766 -e 's;@VBOX_ABOUT_16PX_PNG@;$(VBOX_BRAND_GUI_ABOUT_16PX_PNG);g' \
1767 -e 's;@VBOX_ABOUT_16PX_X2_PNG@;$(VBOX_BRAND_GUI_ABOUT_16PX_X2_PNG);g' \
1768 -e 's;@VBOX_ABOUT_16PX_X3_PNG@;$(VBOX_BRAND_GUI_ABOUT_16PX_X3_PNG);g' \
1769 -e 's;@VBOX_ABOUT_16PX_X4_PNG@;$(VBOX_BRAND_GUI_ABOUT_16PX_X4_PNG);g' \
1770 -e 's;@VBOX_VBOX_16PX_PNG@;$(VBOX_BRAND_GUI_VBOX_16PX_PNG);g' \
1771 -e 's;@VBOX_VBOX_20PX_PNG@;$(VBOX_BRAND_GUI_VBOX_20PX_PNG);g' \
1772 -e 's;@VBOX_VBOX_32PX_PNG@;$(VBOX_BRAND_GUI_VBOX_32PX_PNG);g' \
1773 -e 's;@VBOX_VBOX_40PX_PNG@;$(VBOX_BRAND_GUI_VBOX_40PX_PNG);g' \
1774 -e 's;@VBOX_VBOX_48PX_PNG@;$(VBOX_BRAND_GUI_VBOX_48PX_PNG);g' \
1775 -e 's;@VBOX_VBOX_64PX_PNG@;$(VBOX_BRAND_GUI_VBOX_64PX_PNG);g' \
1776 -e 's;@VBOX_CUBE_42PX_PNG@;$(VBOX_BRAND_GUI_CUBE_42PX_PNG);g' \
1777 -e 's;@VBOX_CUBE_SVG@;$(VBOX_BRAND_GUI_VBOX_SVG);g' \
1778 --output $@ \
1779 $<
1780
1781
1782#
1783# Precompiled header
1784# win.amd64 without: kmk_time: 3m51.962058s
1785# win.amd64 with: kmk_time: 2m23.336252s
1786# linux.amd64 without: time: real 1m03.719s user 26m26.766s sys 2m03.526s
1787# linux.amd64 with: time: real 0m42.650s user 14m46.332s sys 1m28.463s
1788#
1789ifdef VBOX_WITH_PRECOMPILED_HEADERS
1790 if1of ($(KBUILD_TARGET), win)
1791 VirtualBox_USES += vccprecomp
1792 VirtualBox_PCH_HDR := $(PATH_SUB_CURRENT)/src/precomp_vcc.h
1793
1794 VirtualBoxVM_USES += vccprecomp
1795 VirtualBoxVM_PCH_HDR := $(PATH_SUB_CURRENT)/src/precomp_vcc.h
1796
1797 UICommon_USES += vccprecomp
1798 UICommon_PCH_HDR := $(PATH_SUB_CURRENT)/src/precomp_vcc.h
1799
1800 else if $(KBUILD_KMK_REVISION) >= 3256 && "$(KBUILD_TARGET)" != "darwin" && !defined(VBOX_WITHOUT_PRECOMPILED_HEADERS)
1801 if $(VBOX_GCC_VERSION_CXX) >= 50000 # GCC 4.x runs into trouble compiling the header.
1802 UICommon_USES += gccprecomp
1803 UICommon_PCH_HDR := $(PATH_SUB_CURRENT)/src/precomp_gcc.h
1804 #UICommon_CXXFLAGS.linux += -H
1805
1806 VirtualBox_USES += gccprecomp
1807 VirtualBox_PCH_HDR := $(PATH_SUB_CURRENT)/src/precomp_gcc.h
1808 #VirtualBox_CXXFLAGS.linux += -H
1809
1810 VirtualBoxVM_USES += gccprecomp
1811 VirtualBoxVM_PCH_HDR := $(PATH_SUB_CURRENT)/src/precomp_gcc.h
1812 #VirtualBoxVM_CXXFLAGS.linux += -H
1813
1814 # GCC precompiled headers seems to work more efficiently when #pragma once is involved.
1815 # So, we've cooked our own camel cased qt wrapper headers with #pragma once inside.
1816 VBOX_GUI_INC_DIRS <= precomptricks
1817 endif
1818 endif
1819endif
1820
1821ifeq ($(KBUILD_TARGET),win)
1822 #
1823 # On Windows we'll have to generate/edit part of the resource file.
1824 # The IDI_ICON1 name is Qt specific.
1825 #
1826 src/platform/win/VirtualBox.rc_INCS = $(VirtualBox_0_OUTDIR)
1827 src/platform/win/VirtualBox.rc_DEPS = $(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc
1828 src/platform/win/VirtualBox.rc_CLEAN = $(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc
1829 src/platform/win/VirtualBoxVM.rc_INCS = $(VirtualBox_0_OUTDIR)
1830 src/platform/win/VirtualBoxVM.rc_DEPS = $(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc
1831 src/platform/win/VirtualBoxVM.rc_CLEAN = $(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc
1832
1833 $$(VirtualBox_0_OUTDIR)/VirtualBox-icon.rc: $(MAKEFILE_CURRENT) $(VBOX_WINDOWS_ICON_FILE) | $$(dir $$@)
1834 $(APPEND) -t $@ 'IDI_ICON1 ICON "$(subst /,\\,$(VBOX_WINDOWS_ICON_FILE))"'
1835
1836endif # win
1837
1838
1839#
1840# Unset everything that was loaded from VBoxUI.pro.
1841#
1842FORMS :=
1843TRANSLATIONS :=
1844
1845
1846
1847ifeq ($(KBUILD_TARGET),win)
1848 #
1849 # Install the visual manifest and associated PNGs.
1850 #
1851 INSTALLS.win += VirtualBoxManifest
1852 VirtualBoxManifest_INST = $(INST_VIRTUALBOX)
1853 VirtualBoxManifest_DEFPATH = $(PATH_ROOT)/src/VBox/Artwork/$(if-expr defined(VBOX_OSE),OSE,NonOSE)/
1854 VirtualBoxManifest_SOURCES := \
1855 virtualbox-70px.png=>VirtualBox_70px.png \
1856 virtualbox-150px.png=>VirtualBox_150px.png \
1857 $(PATH_SUB_CURRENT)/src/platform/win/VirtualBox.VisualElementsManifest.xml
1858
1859endif
1860
1861
1862ifeq ($(KBUILD_TARGET),darwin)
1863 #
1864 # Create directories for each approved language or the application
1865 # menu won't be translated.
1866 #
1867 INSTALLS += VirtualBox.lproj
1868 VirtualBox.lproj_INST = $(INST_VIRTUALBOX)Contents/Resources/
1869 VirtualBox.lproj_MODE = 755
1870 VirtualBox.lproj_DIRS := $(addsuffix .lproj,$(VBOX_APPROVED_GUI_LANGUAGES))
1871
1872 #
1873 # On OS X (darwin) we need to install icon resources and compulsory bundle contents.
1874 # The VirtualBoxVM.app helper is for launching VMs (fixes some issues with the dock).
1875 #
1876 INSTALLS += VirtualBox.app
1877 VirtualBox.app_INST = $(INST_VIRTUALBOX)Contents/
1878 VirtualBox.app_MODE = 644
1879 VirtualBox.app_SOURCES = \
1880 src/platform/darwin/PkgInfo \
1881 $(VirtualBox.app_0_OUTDIR)/Info.plist \
1882 $(VBOX_MACOSX_ICON_FILE)=>Resources/virtualbox.icns \
1883 $(VBOX_BRAND_GUI_VBOX_64PX_PNG)=>Resources/virtualbox.png \
1884 $(PATH_ROOT)/src/VBox/Artwork/darwin/virtualbox-vbox.icns=>Resources/virtualbox-vbox.icns \
1885 $(PATH_ROOT)/src/VBox/Artwork/darwin/virtualbox-vbox-extpack.icns=>Resources/virtualbox-vbox-extpack.icns \
1886 $(PATH_ROOT)/src/VBox/Artwork/darwin/virtualbox-ovf.icns=>Resources/virtualbox-ovf.icns \
1887 $(PATH_ROOT)/src/VBox/Artwork/darwin/virtualbox-ova.icns=>Resources/virtualbox-ova.icns \
1888 $(PATH_ROOT)/src/VBox/Artwork/darwin/virtualbox-vdi.icns=>Resources/virtualbox-vdi.icns \
1889 $(PATH_ROOT)/src/VBox/Artwork/darwin/virtualbox-vmdk.icns=>Resources/virtualbox-vmdk.icns \
1890 $(PATH_ROOT)/src/VBox/Artwork/darwin/virtualbox-vhd.icns=>Resources/virtualbox-vhd.icns \
1891 $(PATH_ROOT)/src/VBox/Artwork/darwin/virtualbox-hdd.icns=>Resources/virtualbox-hdd.icns
1892
1893 # Qt5 requires qt.conf on Mac OS X:
1894 VirtualBox.app_SOURCES += \
1895 $(VirtualBox.app_0_OUTDIR)/qt.conf=>Resources/qt.conf
1896
1897 $$(VirtualBox.app_0_OUTDIR)/Info.plist: $(PATH_SUB_CURRENT)/src/platform/darwin/Info.plist $(VBOX_VERSION_MK) | $$(@D)/
1898 $(call MSG_GENERATE,VirtualBox.app,$<,$@)
1899 $(QUIET)$(RM) -f $@
1900 $(QUIET)$(SED) \
1901 -e 's+@VBOX_VERSION_STRING@+$(VBOX_VERSION_STRING)+g' \
1902 -e 's+@VBOX_VERSION_MAJOR@+$(VBOX_VERSION_MAJOR)+g' \
1903 -e 's+@VBOX_VERSION_MINOR@+$(VBOX_VERSION_MINOR)+g' \
1904 -e 's+@VBOX_VERSION_BUILD@+$(VBOX_VERSION_BUILD)+g' \
1905 -e 's+@VBOX_VENDOR@+$(VBOX_VENDOR)+g' \
1906 -e 's+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+g' \
1907 -e 's+@VBOX_C_YEAR@+$(VBOX_C_YEAR)+g' \
1908 $< > $@
1909
1910 $$(VirtualBox.app_0_OUTDIR)/qt.conf: $(PATH_SUB_CURRENT)/Makefile.kmk $(VBOX_VERSION_MK) | $$(@D)/
1911 $(QUIET)$(RM) -f $@
1912 $(QUIET)$(APPEND) $@ "[Paths]"
1913 ifdef VBOX_WITH_HARDENING # Not necessary and will screwup copying files elsewhere to test.
1914 $(QUIET)$(APPEND) $@ "Prefix =" $(PATH_OUT)/$(VirtualBox.app_INST)
1915 endif
1916
1917 INSTALLS += VirtualBoxVM.app
1918 VirtualBoxVM.app_INST = $(VirtualBox.app_INST)Resources/VirtualBoxVM.app/Contents/
1919 VirtualBoxVM.app_MODE = 644
1920 VirtualBoxVM.app_SOURCES = \
1921 src/platform/darwin/VM-PkgInfo=>PkgInfo \
1922 $(VirtualBoxVM.app_0_OUTDIR)/VM-Info.plist=>Info.plist \
1923 $(foreach mysrc,$(VirtualBox.app_SOURCES),$(if-expr $(pos =>Resources/,$(mysrc)) > 0,$(mysrc),))
1924 ifdef VBOX_WITH_INTNET_SERVICE_IN_R3
1925 VirtualBoxVM.app_SYMLINKS = \
1926 XPCServices=>../../../XPCServices
1927 endif
1928
1929 $$(VirtualBoxVM.app_0_OUTDIR)/VM-Info.plist: $(PATH_SUB_CURRENT)/src/platform/darwin/VM-Info.plist $(VBOX_VERSION_MK) | $$(@D)/
1930 $(call MSG_GENERATE,VirtualBoxVM.app,$<,$@)
1931 $(QUIET)$(RM) -f $@
1932 $(QUIET)$(SED) \
1933 -e 's+@VBOX_VERSION_STRING@+$(VBOX_VERSION_STRING)+g' \
1934 -e 's+@VBOX_VERSION_MAJOR@+$(VBOX_VERSION_MAJOR)+g' \
1935 -e 's+@VBOX_VERSION_MINOR@+$(VBOX_VERSION_MINOR)+g' \
1936 -e 's+@VBOX_VERSION_BUILD@+$(VBOX_VERSION_BUILD)+g' \
1937 -e 's+@VBOX_VENDOR@+$(VBOX_VENDOR)+g' \
1938 -e 's+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+g' \
1939 -e 's+@VBOX_C_YEAR@+$(VBOX_C_YEAR)+g' \
1940 --output $@ $<
1941
1942 PROGRAMS += vmstarter
1943 vmstarter_TEMPLATE = VBoxR3Exe
1944 vmstarter_OBJCXXFLAGS += -Wno-error=deprecated-declarations ## @todo fix deprecate API use!
1945 vmstarter_LDFLAGS += -framework AppKit
1946 vmstarter_SOURCES = src/platform/darwin/vmstarter.mm
1947 vmstarter_INST = $(INST_BIN)vmstarter
1948
1949 INSTALLS += vmstarter.app
1950 vmstarter.app_INST = $(VirtualBox.app_INST)Resources/vmstarter.app/Contents/
1951 vmstarter.app_MODE = 644
1952 vmstarter.app_SOURCES = \
1953 src/platform/darwin/vmstarter-PkgInfo=>PkgInfo \
1954 $(vmstarter.app_0_OUTDIR)/vmstarter-Info.plist=>Info.plist \
1955 $(foreach mysrc,$(VirtualBox.app_SOURCES),$(if-expr $(pos =>Resources/,$(mysrc)) > 0,$(mysrc),))
1956 vmstarter.app_SYMLINKS = \
1957 MacOS=>../../../MacOS
1958
1959 $$(vmstarter.app_0_OUTDIR)/vmstarter-Info.plist: $(PATH_SUB_CURRENT)/src/platform/darwin/vmstarter-Info.plist $(VBOX_VERSION_MK) | $$(@D)/
1960 $(call MSG_GENERATE,vmstarter.app,$<,$@)
1961 $(QUIET)$(RM) -f $@
1962 $(QUIET)$(SED) \
1963 -e 's+@VBOX_VERSION_STRING@+$(VBOX_VERSION_STRING)+g' \
1964 -e 's+@VBOX_VERSION_MAJOR@+$(VBOX_VERSION_MAJOR)+g' \
1965 -e 's+@VBOX_VERSION_MINOR@+$(VBOX_VERSION_MINOR)+g' \
1966 -e 's+@VBOX_VERSION_BUILD@+$(VBOX_VERSION_BUILD)+g' \
1967 -e 's+@VBOX_VENDOR@+$(VBOX_VENDOR)+g' \
1968 -e 's+@VBOX_PRODUCT@+$(VBOX_PRODUCT)+g' \
1969 -e 's+@VBOX_C_YEAR@+$(VBOX_C_YEAR)+g' \
1970 --output $@ $<
1971endif # darwin
1972
1973
1974#
1975# Testcase for the darwin keyboard routines.
1976#
1977ifdef VBOX_WITH_TESTCASES
1978 PROGRAMS.darwin += tstDarwinKeyboard
1979 tstDarwinKeyboard_TEMPLATE = VBoxR3TstExe
1980 tstDarwinKeyboard_DEFS.x86 = USE_HID_FOR_MODIFIERS
1981 tstDarwinKeyboard_INCS = \
1982 $(VBOX_GUI_INC_DIRS)
1983 tstDarwinKeyboard_SOURCES = \
1984 src/platform/darwin/tstDarwinKeyboard.cpp \
1985 src/platform/darwin/DarwinKeyboard.cpp \
1986 src/platform/darwin/CocoaEventHelper.mm
1987 tstDarwinKeyboard_LDFLAGS = -framework IOKit -framework Carbon -framework AppKit
1988 tstDarwinKeyboard_LIBS = \
1989 $(LIB_RUNTIME)
1990 tstDarwinKeyboard_LIBS += $(PATH_STAGE_DLL)/UICommon$(VBOX_SUFF_DLL)
1991endif
1992
1993
1994#
1995# Doxygen documentation.
1996#
1997QTGUI_DOXYFILE_OUTPUT = $(PATH_OUT)/docs/qtgui
1998BLDDIRS += $(QTGUI_DOXYFILE_OUTPUT)
1999OTHER_CLEAN += \
2000 $(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui \
2001 $(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui.dep \
2002 $(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui
2003
2004QTGUI_DOXYFILE_INPUT_DIRS := \
2005 $(addprefix $(PATH_SUB_CURRENT)/src/, \
2006 converter \
2007 extensions \
2008 extensions/graphics \
2009 extradata \
2010 globals \
2011 manager \
2012 manager/chooser \
2013 manager/details \
2014 manager/tools \
2015 manager \
2016 manager \
2017 medium \
2018 net \
2019 objects \
2020 platform \
2021 platform/darwin \
2022 platform/os2 \
2023 platform/win \
2024 platform/nix \
2025 runtime \
2026 runtime/fullscreen \
2027 runtime/information \
2028 runtime/guestctrl \
2029 runtime/normal \
2030 runtime/scale \
2031 runtime/seamless \
2032 selector \
2033 selector/graphics \
2034 selector/graphics/chooser \
2035 selector/graphics/details \
2036 settings \
2037 settings/global \
2038 settings/machine \
2039 widgets \
2040 widgets/graphics \
2041 wizards \
2042 wizards/addcloudvm \
2043 wizards/clonevd \
2044 wizards/clonevm \
2045 wizards/exportappliance \
2046 wizards/importappliance \
2047 wizards/newcloudvm \
2048 wizards/newvd \
2049 wizards/newvm)
2050
2051QTGUI_DOXYFILE_INPUT := \
2052 $(foreach dir, $(QTGUI_DOXYFILE_INPUT_DIRS), \
2053 $(sort $(wildcard $(dir)/*.h)) \
2054 $(sort $(wildcard $(dir)/*.cpp $(dir)/*.m $(dir)/*.mm)))
2055
2056includedep $(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui.dep
2057
2058# Generate the Doxyfile
2059$(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui: \
2060 $(PATH_SUB_CURRENT)/Doxyfile \
2061 $(PATH_SUB_CURRENT)/Makefile.kmk \
2062 $(comp-vars QTGUI_DOXYFILE_INPUT,DOXYGEN_QTGUI_INPUT_PREV,FORCE) \
2063 $(comp-vars QTGUI_DOXYFILE_OUTPUT,DOXYGEN_QTGUI_OUTPUT_PREV,FORCE) \
2064 | $$(dir $$@)
2065 $(QUIET)$(RM) -f $@ $@.tmp $@.dep
2066 $(QUIET)$(CP) -f $< $@.tmp
2067 $(QUIET)$(APPEND) $@.tmp
2068 $(QUIET)$(APPEND) $@.tmp "OUTPUT_DIRECTORY = $(QTGUI_DOXYFILE_OUTPUT)"
2069 $(QUIET)$(APPEND) $@.tmp "WARN_LOGFILE = $(QTGUI_DOXYFILE_OUTPUT)/errors"
2070 $(QUIET)$(APPEND) $@.tmp "INCLUDE_PATH = $(PATH_ROOT)/include ."
2071 $(QUIET)$(APPEND) $@.tmp "PREDEFINED += $(ARCH_BITS_DEFS)"
2072 $(QUIET)$(APPEND) $@.tmp
2073 $(QUIET)$(APPEND) $@.tmp 'INPUT = $(foreach x,$(QTGUI_DOXYFILE_INPUT),\$(NLTAB)$(x))'
2074 $(QUIET)$(APPEND) $@.tmp
2075 $(QUIET)$(MV) -f $@.tmp $@
2076 @$(APPEND) $@.dep "DOXYGEN_QTGUI_OUTPUT_PREV = $(QTGUI_DOXYFILE_OUTPUT)"
2077 @$(APPEND) $@.dep "DOXYGEN_QTGUI_INPUT_PREV = $(QTGUI_DOXYFILE_INPUT)"
2078
2079# Do the actual job.
2080$(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui: $(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui $$(QTGUI_DOXYFILE_INPUT) \
2081 | $(QTGUI_DOXYFILE_OUTPUT)/
2082 $(call MSG_L1,doxygen qtgui)
2083 $(QUIET)$(RM) -f $@
2084 $(QUIET)$(RM) -Rf -- $(QTGUI_DOXYFILE_OUTPUT)/html/
2085 $(VBOX_DOXYGEN) $(QTGUI_DOXYFILE_OUTPUT)/Doxyfile.qtgui
2086 $(APPEND) $@
2087
2088# aliases
2089docs.qtgui: $(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui
2090if !defined(VBOX_ONLY_DOCS) && defined(VBOX_WITH_ALL_DOXYGEN_TARGETS)
2091 docs: $(QTGUI_DOXYFILE_OUTPUT)/docs.qtgui
2092endif
2093
2094
2095# Commit the magic.
2096# (note: before custom rules that make usage of generated variables!).
2097include $(FILE_KBUILD_SUB_FOOTER)
2098
2099
2100#
2101# Update all known NLS translation (.ts) files in the nls/ subdirectory.
2102#
2103# NOTE: This target is intended to be run only by the GUI maintainer shortly
2104# before a new product release. VirtualBox_xx_YY.ts is a template for new
2105# languages and should never be actually translated or installed.
2106#
2107# Use the checknls target for checking again common mistakes done by the
2108# translators.
2109#
2110# For Qt >= 4.6.0 it maybe necessary to add -I $(VBOX_GUI_INC_DIRS) to the
2111# lupdate call
2112#
2113#VirtualBox_QT_TRANSLATIONS = nls/VirtualBox_de.ts
2114checknls::
2115 # Check for missing :/ in image paths
2116 grep -i "src=[^:%]" $(filter-out nls/qt_%.ts,$(VirtualBox_QT_TRANSLATIONS))
2117
2118updatenls:: makeallnls nls/VirtualBox_en.ts
2119
2120makeallnls:: \
2121 $(foreach header,$(VBOX_GUI_INC_DIRS),$(wildcard $(header)/*.h)) \
2122 $(filter-out %.qrc,$(VirtualBox_VBOX_ALL_NLS_SOURCES) $(VirtualBox_VBOX_EXTRA_NLS_SOURCES))
2123 $(call MSG_L1,lupdate all languages (nls/*.ts))
2124 $(QUIET)$(TOOL_QT5_LUPDATE) \
2125 $^ \
2126 -ts \
2127 $(filter-out nls/VirtualBox_en.ts,$(filter-out nls/qt_%.ts,$(VirtualBox_QT_TRANSLATIONS))) \
2128 nls/VirtualBox_xx_YY.ts
2129
2130# Create the English translation file. This is something special cause it will
2131# contain the plural forms only.
2132nls/VirtualBox_en.ts: \
2133 $(foreach header,$(VBOX_GUI_INC_DIRS),$(wildcard $(header)/*.h)) \
2134 $(filter-out %.qrc,$(VirtualBox_VBOX_ALL_NLS_SOURCES) $(VirtualBox_VBOX_EXTRA_NLS_SOURCES))
2135 $(call MSG_L1,lupdate $@)
2136 $(QUIET)$(TOOL_QT5_LUPDATE) \
2137 $^ \
2138 -ts \
2139 $@
2140 $(QUIET)$(SED) -n -i -e \
2141 '/<context>/,/<\/context>/!p;/<context>/h;/<name>/H;/<message numerus="yes">/,/<\/message>/H;/<\/context>/{H;x;/<message/p}' \
2142 $@
2143
Note: See TracBrowser for help on using the repository browser.

© 2023 Oracle
ContactPrivacy policyTerms of Use