VirtualBox

source: vbox/trunk/tools/bin/gen-slickedit-workspace.sh@ 37820

最後變更 在這個檔案從37820是 37820,由 vboxsync 提交於 14 年 前

exporting gen-slickedit-workspace.sh/cmd

  • 屬性 svn:eol-style 設為 LF
  • 屬性 svn:executable 設為 *
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 28.6 KB
 
1# !kmk_ash
2# $Id: gen-slickedit-workspace.sh 37820 2011-07-07 14:16:34Z vboxsync $
3## @file
4# Script for generating a SlickEdit workspace.
5#
6
7#
8# Copyright (C) 2009 Oracle Corporation
9#
10# Oracle Corporation confidential
11# All rights reserved
12#
13
14#
15# Some constants.
16#
17MY_CAT="kmk_cat"
18MY_MKDIR="kmk_mkdir"
19MY_MV="kmk_mv"
20MY_SED="kmk_sed"
21MY_RM="kmk_rm"
22MY_SLEEP="kmk_sleep"
23MY_EXPR="kmk_expr"
24MY_SVN="svn"
25
26#MY_SORT="kmk_cat"
27MY_SORT="sort"
28
29#
30# Globals.
31#
32MY_PROJECT_FILES=""
33MY_OUT_DIRS="\
34out/${KBUILD_TARGET}.${KBUILD_TARGET_ARCH}/${KBUILD_TYPE} \
35out/${BUILD_TARGET}.${BUILD_TARGET_ARCH}/${BUILD_TYPE} \
36out/${KBUILD_TARGET}.${KBUILD_TARGET_ARCH}/debug \
37out/${BUILD_TARGET}.${BUILD_TARGET_ARCH}/debug \
38out/${KBUILD_TARGET}.${KBUILD_TARGET_ARCH}/release \
39out/${BUILD_TARGET}.${BUILD_TARGET_ARCH}/release \
40out/linux.amd64/debug \
41out/linux.x86/debug \
42out/win.amd64/debug \
43out/win.x86/debug \
44out/darwin.amd64/debug \
45out/darwin.x86/debug \
46out/solaris.amd64/debug \
47out/solaris.x86/debug";
48
49
50#
51# Parameters w/ defaults.
52#
53MY_ROOT_DIR=".."
54MY_OUT_DIR="SlickEdit"
55MY_PRJ_PRF="VBox-"
56MY_WS_NAME="VirtualBox.vpw"
57MY_DBG=""
58MY_WINDOWS_HOST=""
59MY_OPT_MINIMAL=""
60
61#MY_KBUILD_PATH="${KBUILD_PATH}"
62#test -z "${MY_KBUILD_PATH}" && MY_KBUILD_PATH="${PATH_KBUILD}"
63#MY_KBUILD=""
64
65
66##
67# Gets the absolute path to an existing directory.
68#
69# @param $1 The path.
70my_abs_dir()
71{
72 if test -n "${PWD}"; then
73 MY_ABS_DIR=`cd ${MY_ROOT_DIR}/${1} && echo ${PWD}`
74 else
75 # old cygwin shell has no PWD and need adjusting.
76 MY_ABS_DIR=`cd ${MY_ROOT_DIR}/${1} && pwd | ${MY_SED} -e 's,^/cygdrive/\(.\)/,\1:/,'`
77 fi
78 if test -z "${MY_ABS_DIR}"; then
79 MY_ABS_DIR="${1}"
80 fi
81}
82
83##
84# Gets the file name part of a path.
85#
86# @param $1 The path.
87my_get_name()
88{
89 SAVED_IFS=$IFS
90 IFS=":/ "
91 set $1
92 while test $# -gt 1 -a -n "${2}";
93 do
94 shift;
95 done
96
97 IFS=$SAVED_IFS
98 #echo "$1"
99 export MY_GET_NAME=$1
100}
101
102##
103# Generate file entry for the specified file if it was found to be of interest.
104#
105# @param $1 The output file name base.
106# @param $2 The file name.
107my_file()
108{
109 # sort and filter by file type.
110 case "$2" in
111 # drop these.
112 *.kup|*~|*.pyc|*.exe|*.sys|*.dll|*.o|*.obj|*.lib|*.a|*.ko)
113 return 0
114 ;;
115
116 # by prefix or directory component.
117 tst*|*/testcase/*)
118 MY_FOLDER="$1-Testcases.lst"
119 ;;
120
121 # by extension.
122 *.c|*.cpp|*.m|*.mm|*.pl|*.py|*.as|*.c.h|*.cpp.h)
123 MY_FOLDER="$1-Sources.lst"
124 ;;
125
126 *.h|*.hpp|*.mm)
127 MY_FOLDER="$1-Headers.lst"
128 ;;
129
130 *.asm|*.s|*.S|*.inc|*.mac)
131 MY_FOLDER="$1-Assembly.lst"
132 ;;
133
134 *)
135 MY_FOLDER="$1-Others.lst"
136 ;;
137 esac
138
139 ## @todo only files which are in subversion.
140# if ${MY_SVN} info "${2}" > /dev/null 2>&1; then
141 my_get_name "${2}"
142 echo ' <!-- sortkey: '"${MY_GET_NAME}"' --> <F N="'"${2}"'"/>' >> "${MY_FOLDER}"
143# fi
144}
145
146##
147# Generate file entries for the specified sub-directory tree.
148#
149# @param $1 The output filename.
150# @param $2 The sub-directory.
151my_sub_tree()
152{
153 if test -n "$MY_DBG"; then echo "dbg: my_sub_tree: ${2}"; fi
154
155 # Skip .svn directories.
156 case "$2" in
157 */.svn|*/.svn)
158 return 0
159 ;;
160 esac
161
162 # Process the files in the directory.
163 for f in $2/*;
164 do
165 if test -d "${f}";
166 then
167 my_sub_tree "${1}" "${f}"
168 else
169 my_file "${1}" "${f}"
170 fi
171 done
172 return 0;
173}
174
175
176##
177# Generate folders for the specified directories and files.
178#
179# @param $1 The output (base) file name.
180# @param $2+ The files and directories to traverse.
181my_generate_folder()
182{
183 MY_FILE="$1"
184 shift
185
186 # Zap existing file collections.
187 > "${MY_FILE}-Sources.lst"
188 > "${MY_FILE}-Headers.lst"
189 > "${MY_FILE}-Assembly.lst"
190 > "${MY_FILE}-Testcases.lst"
191 > "${MY_FILE}-Others.lst"
192
193 # Traverse the directories and files.
194 while test $# -ge 1 -a -n "${1}";
195 do
196 for f in ${MY_ROOT_DIR}/$1;
197 do
198 if test -d "${f}";
199 then
200 my_sub_tree "${MY_FILE}" "${f}"
201 else
202 my_file "${MY_FILE}" "${f}"
203 fi
204 done
205 shift
206 done
207
208 # Generate the folders.
209 if test -s "${MY_FILE}-Sources.lst";
210 then
211 echo ' <Folder Name="Sources" Filters="*.c;*.cpp;*.cpp.h;*.c.h;*.m;*.mm;*.pl;*.py;*.as">' >> "${MY_FILE}"
212 ${MY_SORT} "${MY_FILE}-Sources.lst" | ${MY_SED} -e 's/<!-- sortkey: [^>]*>/ /' >> "${MY_FILE}"
213 echo ' </Folder>' >> "${MY_FILE}"
214 fi
215 if test -s "${MY_FILE}-Headers.lst";
216 then
217 echo ' <Folder Name="Headers" Filters="*.h;*.hpp">' >> "${MY_FILE}"
218 ${MY_SORT} "${MY_FILE}-Headers.lst" | ${MY_SED} -e 's/<!-- sortkey: [^>]*>/ /' >> "${MY_FILE}"
219 echo ' </Folder>' >> "${MY_FILE}"
220 fi
221 if test -s "${MY_FILE}-Assembly.lst";
222 then
223 echo ' <Folder Name="Assembly" Filters="*.asm;*.s;*.S;*.inc;*.mac">' >> "${MY_FILE}"
224 ${MY_SORT} "${MY_FILE}-Assembly.lst" | ${MY_SED} -e 's/<!-- sortkey: [^>]*>/ /' >> "${MY_FILE}"
225 echo ' </Folder>' >> "${MY_FILE}"
226 fi
227 if test -s "${MY_FILE}-Testcases.lst";
228 then
229 echo ' <Folder Name="Testcases" Filters="tst*;">' >> "${MY_FILE}"
230 ${MY_SORT} "${MY_FILE}-Testcases.lst" | ${MY_SED} -e 's/<!-- sortkey: [^>]*>/ /' >> "${MY_FILE}"
231 echo ' </Folder>' >> "${MY_FILE}"
232 fi
233 if test -s "${MY_FILE}-Others.lst";
234 then
235 echo ' <Folder Name="Others" Filters="">' >> "${MY_FILE}"
236 ${MY_SORT} "${MY_FILE}-Others.lst" | ${MY_SED} -e 's/<!-- sortkey: [^>]*>/ /' >> "${MY_FILE}"
237 echo ' </Folder>' >> "${MY_FILE}"
238 fi
239
240 # Cleanup
241 ${MY_RM} "${MY_FILE}-Sources.lst" "${MY_FILE}-Headers.lst" "${MY_FILE}-Assembly.lst" "${MY_FILE}-Testcases.lst" "${MY_FILE}-Others.lst"
242}
243
244
245##
246# Function generating a project.
247#
248# @param $1 The project file name.
249# @param $2 The project working directory.
250# @param $3 Dummy separator.
251# @param $4+ Include directories.
252# @param $N --end-includes
253# @param $N+1 Directory sub-trees and files to include in the project.
254#
255my_generate_project()
256{
257 MY_FILE="${MY_PRJ_PRF}${1}.vpj";
258 echo "Generating ${MY_FILE}..."
259 MY_WRK_DIR="${2}"
260 shift
261 shift
262 shift
263
264 # Add it to the project list for workspace construction later on.
265 MY_PROJECT_FILES="${MY_PROJECT_FILES} ${MY_FILE}"
266
267
268 #
269 # Generate the head bits.
270 #
271 echo '<!DOCTYPE Project SYSTEM "http://www.slickedit.com/dtd/vse/10.0/vpj.dtd">' > "${MY_FILE}"
272 echo '<Project' >> "${MY_FILE}"
273 echo ' Version="10.0"' >> "${MY_FILE}"
274 echo ' VendorName="SlickEdit"' >> "${MY_FILE}"
275 echo ' VCSProject="Subversion:"' >> "${MY_FILE}"
276# echo ' Customized="1"' >> "${MY_FILE}"
277# echo ' WorkingDir="."' >> "${MY_FILE}"
278 my_abs_dir "${MY_WRK_DIR}" >> "${MY_FILE}"
279 echo ' WorkingDir="'"${MY_ABS_DIR}"'"' >> "${MY_FILE}"
280 echo ' >' >> "${MY_FILE}"
281 echo ' <Config Name="Release" OutputFile="" CompilerConfigName="Latest Version">' >> "${MY_FILE}"
282 echo ' <Menu>' >> "${MY_FILE}"
283 echo ' <Target Name="Compile" MenuCaption="&amp;Compile" CaptureOutputWith="ProcessBuffer"' >> "${MY_FILE}"
284 echo ' SaveOption="SaveCurrent" RunFromDir="%p" ClearProcessBuffer="1">' >> "${MY_FILE}"
285 echo ' <Exec CmdLine="'"${MY_KMK_INVOCATION}"' -C %p %n.o"/>' >> "${MY_FILE}"
286 echo ' </Target>' >> "${MY_FILE}"
287 echo ' <Target Name="Build" MenuCaption="&amp;Build"CaptureOutputWith="ProcessBuffer"' >> "${MY_FILE}"
288 echo ' SaveOption="SaveWorkspaceFiles" RunFromDir="%rw" ClearProcessBuffer="1">' >> "${MY_FILE}"
289 echo ' <Exec CmdLine="'"${MY_KMK_INVOCATION}"'"/>' >> "${MY_FILE}"
290 echo ' </Target>' >> "${MY_FILE}"
291 echo ' <Target Name="Rebuild" MenuCaption="&amp;Rebuild" CaptureOutputWith="ProcessBuffer"' >> "${MY_FILE}"
292 echo ' SaveOption="SaveWorkspaceFiles" RunFromDir="%rw" ClearProcessBuffer="1">' >> "${MY_FILE}"
293 echo ' <Exec CmdLine="'"${MY_KMK_INVOCATION}"' rebuild"/>' >> "${MY_FILE}"
294 echo ' </Target>' >> "${MY_FILE}"
295 echo ' <Target Name="Debug" MenuCaption="&amp;Debug" SaveOption="SaveNone" RunFromDir="%rw">' >> "${MY_FILE}"
296 echo ' <Exec/>' >> "${MY_FILE}"
297 echo ' </Target>' >> "${MY_FILE}"
298 echo ' <Target Name="Execute" MenuCaption="E&amp;xecute" SaveOption="SaveNone" RunFromDir="%rw">' >> "${MY_FILE}"
299 echo ' <Exec/>' >> "${MY_FILE}"
300 echo ' </Target>' >> "${MY_FILE}"
301 echo ' </Menu>' >> "${MY_FILE}"
302
303 #
304 # Include directories.
305 #
306 echo ' <Includes>' >> "${MY_FILE}"
307 while test $# -ge 1 -a "${1}" != "--end-includes";
308 do
309 for f in $1;
310 do
311 my_abs_dir ${f}
312 echo ' <Include Dir="'"${MY_ABS_DIR}/"'"/>' >> "${MY_FILE}"
313 done
314 shift
315 done
316 shift
317 echo ' </Includes>' >> "${MY_FILE}"
318 echo ' </Config>' >> "${MY_FILE}"
319
320
321 #
322 # Process directories+files and create folders.
323 #
324 echo ' <Files>' >> "${MY_FILE}"
325 my_generate_folder "${MY_FILE}" $*
326 echo ' </Files>' >> "${MY_FILE}"
327
328 #
329 # The tail.
330 #
331 echo '</Project>' >> "${MY_FILE}"
332
333 return 0
334}
335
336
337##
338# Generate the workspace
339#
340my_generate_workspace()
341{
342 MY_FILE="${MY_WS_NAME}"
343 echo "Generating ${MY_FILE}..."
344 echo '<!DOCTYPE Workspace SYSTEM "http://www.slickedit.com/dtd/vse/10.0/vpw.dtd">' > "${MY_FILE}"
345 echo '<Workspace Version="10.0" VendorName="SlickEdit">' >> "${MY_FILE}"
346 echo ' <Projects>' >> "${MY_FILE}"
347 for i in ${MY_PROJECT_FILES};
348 do
349 echo ' <Project File="'"${i}"'" />' >> "${MY_FILE}"
350 done
351 echo ' </Projects>' >> "${MY_FILE}"
352 echo '</Workspace>' >> "${MY_FILE}"
353 return 0;
354}
355
356
357###### end of functions ####
358
359
360#
361# Parse arguments.
362#
363while test $# -ge 1;
364do
365 ARG=$1
366 shift
367 case "$ARG" in
368
369 --rootdir)
370 if test $# -eq 0; then
371 echo "error: missing --rootdir argument." 1>&2
372 exit 1;
373 fi
374 MY_ROOT_DIR="$1"
375 shift
376 ;;
377
378 --outdir)
379 if test $# -eq 0; then
380 echo "error: missing --outdir argument." 1>&2
381 exit 1;
382 fi
383 MY_OUT_DIR="$1"
384 shift
385 ;;
386
387 --project-base)
388 if test $# -eq 0; then
389 echo "error: missing --project-base argument." 1>&2
390 exit 1;
391 fi
392 MY_PRJ_PRF="$1"
393 shift
394 ;;
395
396 --workspace)
397 if test $# -eq 0; then
398 echo "error: missing --workspace argument." 1>&2
399 exit 1;
400 fi
401 MY_WS_NAME="$1"
402 shift
403 ;;
404
405 --windows-host)
406 MY_WINDOWS_HOST=1
407 ;;
408
409 --minimal)
410 MY_OPT_MINIMAL=1
411 ;;
412
413 # usage
414 --h*|-h*|-?|--?)
415 echo "usage: $0 [--rootdir <rootdir>] [--outdir <outdir>] [--project-base <prefix>] [--workspace <name>] [--minimal]"
416 echo ""
417 echo "If --outdir is specified, you must specify a --rootdir relative to it as well."
418 exit 1;
419 ;;
420
421 # default
422 *)
423 echo "error: Invalid parameter '$ARG'" 1>&2
424 exit 1;
425
426 esac
427done
428
429
430#
431# From now on everything *MUST* succeed.
432#
433set -e
434
435
436#
437# Make sure the output directory exists, is valid and clean.
438#
439${MY_RM} -f \
440 "${MY_OUT_DIR}/${MY_PRJ_PRF}"*.vpj \
441 "${MY_OUT_DIR}/${MY_WS_NAME}" \
442 "${MY_OUT_DIR}/`echo ${MY_WS_NAME} | ${MY_SED} -e 's/\.vpw$/.vtg/'`"
443${MY_MKDIR} -p "${MY_OUT_DIR}"
444cd "${MY_OUT_DIR}"
445
446
447#
448# Determine the invocation to conjure up kmk.
449#
450my_abs_dir "tools"
451if test -n "${MY_WINDOWS_HOST}"; then
452 MY_KMK_INVOCATION="${MY_ABS_DIR}/win.x86/bin/rexx.exe ${MY_ABS_DIR}/envSub.cmd kmk.exe"
453else
454 MY_KMK_INVOCATION="${MY_ABS_DIR}/env.sh --quiet kmk"
455fi
456
457
458#
459# Generate the projects and workspace.
460#
461# Note! The configs aren't optimal yet, lots of adjustment wrt headers left to be done.
462#
463
464# src/VBox/Runtime
465my_generate_project "IPRT" "src/VBox/Runtime" --begin-incs "include" "src/VBox/Runtime/include" --end-includes "include/iprt" "src/VBox/Runtime"
466
467# src/VBox/VMM
468my_generate_project "VMM" "src/VBox/VMM" --begin-incs "include" "src/VBox/VMM" --end-includes "src/VBox/VMM" \
469 "include/VBox/vmm/cfgm.h" \
470 "include/VBox/vmm/cpum.*" \
471 "include/VBox/vmm/dbgf.h" \
472 "include/VBox/vmm/em.h" \
473 "include/VBox/vmm/gmm.*" \
474 "include/VBox/vmm/gvm.*" \
475 "include/VBox/vmm/hw*.*" \
476 "include/VBox/vmm/iom.h" \
477 "include/VBox/vmm/mm.h" \
478 "include/VBox/vmm/patm.*" \
479 "include/VBox/vmm/pdm*.h" \
480 "include/VBox/vmm/pgm.*" \
481 "include/VBox/vmm/rem.h" \
482 "include/VBox/vmm/selm.*" \
483 "include/VBox/vmm/ssm.h" \
484 "include/VBox/vmm/stam.*" \
485 "include/VBox/vmm/tm.h" \
486 "include/VBox/vmm/trpm.*" \
487 "include/VBox/vmm/vm.*" \
488 "include/VBox/vmm/vmm.*"
489
490# src/recompiler
491my_generate_project "REM" "src/recompiler" --begin-incs \
492 "include" \
493 "src/recompiler" \
494 "src/recompiler/target-i386" \
495 "src/recompiler/tcg/i386" \
496 "src/recompiler/Sun/crt" \
497 --end-includes \
498 "src/recompiler" \
499 "src/VBox/VMM/REMInternal.h" \
500 "src/VBox/VMM/VMMAll/REMAll.cpp"
501
502# src/VBox/Additions
503my_generate_project "Add-freebsd" "src/VBox/Additions/freebsd" --begin-incs "include" "src/VBox/Additions/freebsd" --end-includes "src/VBox/Additions/freebsd"
504my_generate_project "Add-linux" "src/VBox/Additions/linux" --begin-incs "include" "src/VBox/Additions/linux" --end-includes "src/VBox/Additions/linux"
505my_generate_project "Add-os2" "src/VBox/Additions/os2" --begin-incs "include" "src/VBox/Additions/os2" --end-includes "src/VBox/Additions/os2"
506my_generate_project "Add-solaris" "src/VBox/Additions/solaris" --begin-incs "include" "src/VBox/Additions/solaris" --end-includes "src/VBox/Additions/solaris"
507my_generate_project "Add-win" "src/VBox/Additions/WINNT" --begin-incs "include" "src/VBox/Additions/WINNT" --end-includes "src/VBox/Additions/WINNT"
508test -z "$MY_OPT_MINIMAL" && \
509my_generate_project "Add-x11" "src/VBox/Additions/x11" --begin-incs "include" "src/VBox/Additions/x11" --end-includes "src/VBox/Additions/x11"
510my_generate_project "Add-Control" "src/VBox/Additions/common/VBoxControl" --begin-incs "include" "src/VBox/Additions/common/VBoxControl" --end-includes "src/VBox/Additions/common/VBoxControl"
511my_generate_project "Add-GuestDrv" "src/VBox/Additions/common/VBoxGuest" --begin-incs "include" "src/VBox/Additions/common/VBoxGuest" --end-includes "src/VBox/Additions/common/VBoxGuest" "include/VBox/VBoxGuest*.*"
512my_generate_project "Add-Lib" "src/VBox/Additions/common/VBoxGuestLib" --begin-incs "include" "src/VBox/Additions/common/VBoxGuestLib" --end-includes "src/VBox/Additions/common/VBoxGuestLib" "include/VBox/VBoxGuest*.*"
513my_generate_project "Add-Service" "src/VBox/Additions/common/VBoxService" --begin-incs "include" "src/VBox/Additions/common/VBoxService" --end-includes "src/VBox/Additions/common/VBoxService"
514test -z "$MY_OPT_MINIMAL" && \
515my_generate_project "Add-crOpenGL" "src/VBox/Additions/common/crOpenGL" --begin-incs "include" "src/VBox/Additions/common/crOpenGL" --end-includes "src/VBox/Additions/common/crOpenGL"
516
517# src/VBox/Debugger
518my_generate_project "Debugger" "src/VBox/Debugger" --begin-incs "include" "src/VBox/Debugger" --end-includes "src/VBox/Debugger" "include/VBox/dbggui.h" "include/VBox/dbg.h"
519
520# src/VBox/Devices
521my_generate_project "Devices" "src/VBox/Devices" --begin-incs "include" "src/VBox/Devices" --end-includes "src/VBox/Devices" "include/VBox/pci.h" "include/VBox/pdm*.h"
522## @todo split this up.
523
524# src/VBox/Disassembler
525my_generate_project "DIS" "src/VBox/Disassembler" --begin-incs "include" "src/VBox/Disassembler" --end-includes "src/VBox/Disassembler" "include/VBox/dis*.h"
526
527# src/VBox/Frontends
528my_generate_project "FE-VBoxManage" "src/VBox/Frontends/VBoxManage" --begin-incs "include" "src/VBox/Frontends/VBoxManage" --end-includes "src/VBox/Frontends/VBoxManage"
529my_generate_project "FE-VBoxHeadless" "src/VBox/Frontends/VBoxHeadless" --begin-incs "include" "src/VBox/Frontends/VBoxHeadless" --end-includes "src/VBox/Frontends/VBoxHeadless"
530my_generate_project "FE-VBoxSDL" "src/VBox/Frontends/VBoxSDL" --begin-incs "include" "src/VBox/Frontends/VBoxSDL" --end-includes "src/VBox/Frontends/VBoxSDL"
531my_generate_project "FE-VBoxShell" "src/VBox/Frontends/VBoxShell" --begin-incs "include" "src/VBox/Frontends/VBoxShell" --end-includes "src/VBox/Frontends/VBoxShell"
532# noise - my_generate_project "FE-VBoxBFE" "src/VBox/Frontends/VBoxBFE" --begin-incs "include" "src/VBox/Frontends/VBoxBFE" --end-includes "src/VBox/Frontends/VBoxBFE"
533FE_VBOX_WRAPPERS=""
534for d in ${MY_OUT_DIRS};
535do
536 if test -d "${MY_ROOT_DIR}/${d}/obj/VirtualBox/include"; then
537 FE_VBOX_WRAPPERS="${d}/obj/VirtualBox/include"
538 break
539 fi
540done
541if test -n "${FE_VBOX_WRAPPERS}"; then
542 my_generate_project "FE-VirtualBox" "src/VBox/Frontends/VirtualBox" --begin-incs "include" "${FE_VBOX_WRAPPERS}" --end-includes "src/VBox/Frontends/VirtualBox" "${FE_VBOX_WRAPPERS}/COMWrappers.cpp" "${FE_VBOX_WRAPPERS}/COMWrappers.h"
543else
544 my_generate_project "FE-VirtualBox" "src/VBox/Frontends/VirtualBox" --begin-incs "include" --end-includes "src/VBox/Frontends/VirtualBox"
545fi
546
547# src/VBox/GuestHost
548my_generate_project "HGSMI-GH" "src/VBox/GuestHost/HGSMI" --begin-incs "include" --end-includes "src/VBox/GuestHost/HGSMI"
549test -z "$MY_OPT_MINIMAL" && \
550my_generate_project "OpenGL-GH" "src/VBox/GuestHost/OpenGL" --begin-incs "include" "src/VBox/GuestHost/OpenGL" --end-includes "src/VBox/GuestHost/OpenGL"
551my_generate_project "ShClip-GH" "src/VBox/GuestHost/SharedClipboard" --begin-incs "include" --end-includes "src/VBox/GuestHost/SharedClipboard"
552
553# src/VBox/HostDrivers
554my_generate_project "SUP" "src/VBox/HostDrivers/Support" --begin-incs "include" "src/VBox/HostDrivers/Support" --end-includes "src/VBox/HostDrivers/Support" "include/VBox/sup.h" "include/VBox/sup.mac"
555my_generate_project "VBoxNetAdp" "src/VBox/HostDrivers/VBoxNetAdp" --begin-incs "include" "src/VBox/HostDrivers/VBoxNetAdp" --end-includes "src/VBox/HostDrivers/VBoxNetAdp" "include/VBox/intnet.h"
556my_generate_project "VBoxNetFlt" "src/VBox/HostDrivers/VBoxNetFlt" --begin-incs "include" "src/VBox/HostDrivers/VBoxNetFlt" --end-includes "src/VBox/HostDrivers/VBoxNetFlt" "include/VBox/intnet.h"
557my_generate_project "VBoxUSB" "src/VBox/HostDrivers/VBoxUSB" --begin-incs "include" "src/VBox/HostDrivers/VBoxUSB" --end-includes "src/VBox/HostDrivers/VBoxUSB" "include/VBox/usblib*.h" "include/VBox/usbfilter.h"
558
559# src/VBox/HostServices
560my_generate_project "GuestProps" "src/VBox/HostServices/GuestProperties" --begin-incs "include" "src/VBox/HostServices/GuestProperties" --end-includes "src/VBox/HostServices/GuestProperties"
561my_generate_project "ShClip-HS" "src/VBox/HostServices/SharedClipboard" --begin-incs "include" "src/VBox/HostServices/SharedClipboard" --end-includes "src/VBox/HostServices/SharedClipboard"
562my_generate_project "SharedFolders" "src/VBox/HostServices/SharedFolders" --begin-incs "include" "src/VBox/HostServices/SharedFolders" --end-includes "src/VBox/HostServices/SharedFolders" "include/VBox/shflsvc.h"
563my_generate_project "OpenGL-HS" "src/VBox/HostServices/SharedOpenGL" --begin-incs "include" "src/VBox/HostServices/SharedOpenGL" --end-includes "src/VBox/HostServices/SharedOpenGL"
564
565# src/VBox/ImageMounter
566my_generate_project "ImageMounter" "src/VBox/ImageMounter" --begin-incs "include" "src/VBox/ImageMounter" --end-includes "src/VBox/ImageMounter"
567
568# src/VBox/Installer
569my_generate_project "Installers" "src/VBox/Installer" --begin-incs "include" --end-includes "src/VBox/Installer"
570
571# src/VBox/Main
572my_generate_project "Main" "src/VBox/Main" --begin-incs "include" "src/VBox/Main/include" --end-includes "src/VBox/Main" "include/VBox/com" "include/VBox/settings.h"
573## @todo seperate webservices and Main. pick the right headers. added generated headers.
574
575# src/VBox/Network
576my_generate_project "Net-DHCP" "src/VBox/NetworkServices/DHCP" --begin-incs "include" "src/VBox/NetworkServices/NetLib" --end-includes "src/VBox/NetworkServices/DHCP"
577my_generate_project "Net-NAT" "src/VBox/NetworkServices/NAT" --begin-incs "include" "src/VBox/NetworkServices/NAT" --end-includes "src/VBox/NetworkServices/NAT" "src/VBox/Devices/Network/slirp"
578my_generate_project "Net-NetLib" "src/VBox/NetworkServices/NetLib" --begin-incs "include" "src/VBox/NetworkServices/NetLib" --end-includes "src/VBox/NetworkServices/NetLib"
579
580# src/VBox/RDP
581my_generate_project "RDP-Client" "src/VBox/RDP/client" --begin-incs "include" "src/VBox/RDP/client" --end-includes "src/VBox/RDP/client"
582my_generate_project "RDP-Server" "src/VBox/RDP/server" --begin-incs "include" "src/VBox/RDP/server" --end-includes "src/VBox/RDP/server"
583my_generate_project "RDP-WebClient" "src/VBox/RDP/webclient" --begin-incs "include" "src/VBox/RDP/webclient" --end-includes "src/VBox/RDP/webclient"
584my_generate_project "RDP-Misc" "src/VBox/RDP" --begin-incs "include" --end-includes "src/VBox/RDP/auth" "src/VBox/RDP/tscpasswd" "src/VBox/RDP/x11server"
585
586# src/VBox/Testsuite
587my_generate_project "Testsuite" "src/VBox/Testsuite" --begin-incs "include" --end-includes "src/VBox/Testsuite"
588
589# src/apps/adpctl - misplaced.
590my_generate_project "adpctl" "src/apps/adpctl" --begin-incs "include" --end-includes "src/apps/adpctl"
591
592# src/bldprogs
593my_generate_project "bldprogs" "src/bldprogs" --begin-incs "include" --end-includes "src/bldprogs"
594
595# A few things from src/lib
596my_generate_project "zlib" "src/libs/zlib-1.2.1" --begin-incs "include" --end-includes "src/libs/zlib-1.2.1/*.c" "src/libs/zlib-1.2.1/*.h"
597my_generate_project "liblzf" "src/libs/liblzf-3.4" --begin-incs "include" --end-includes "src/libs/liblzf-3.4"
598my_generate_project "libpng" "src/libs/libpng-1.2.8" --begin-incs "include" --end-includes "src/libs/libpng-1.2.8/*.c" "src/libs/libpng-1.2.8/*.h"
599my_generate_project "openssl" "src/libs/openssl-0.9.8p" --begin-incs "include" "src/libs/openssl-0.9.8p/crypto" --end-includes "src/libs/openssl-0.9.8p"
600
601
602# include/VBox
603my_generate_project "VBoxHeaders" "include" --begin-incs "include" --end-includes "include/VBox"
604
605# Misc
606my_generate_project "misc" "src/testcase" --begin-incs "include" --end-includes \
607 "src/testcase" \
608 "configure" \
609 "configure.vbs" \
610 "Config.kmk" \
611 "Makefile.kmk" \
612 "src/Makefile.kmk" \
613 "src/VBox/Makefile.kmk"
614
615
616# out/x.y/z/bin/sdk/bindings/xpcom
617XPCOM_INCS="src/libs/xpcom18a4"
618for d in \
619 "out/${KBUILD_TARGET}.${KBUILD_TARGET_ARCH}/${KBUILD_TYPE}/dist/sdk/bindings/xpcom" \
620 "out/${BUILD_TARGET}.${BUILD_TARGET_ARCH}/${BUILD_TYPE}/dist/sdk/bindings/xpcom" \
621 "out/${KBUILD_TARGET}.${KBUILD_TARGET_ARCH}/${KBUILD_TYPE}/bin/sdk/bindings/xpcom" \
622 "out/${BUILD_TARGET}.${BUILD_TARGET_ARCH}/${BUILD_TYPE}/bin/sdk/bindings/xpcom" \
623 "out/linux.amd64/debug/bin/sdk/bindings/xpcom" \
624 "out/linux.x86/debug/bin/sdk/bindings/xpcom" \
625 "out/darwin.amd64/debug/dist/sdk/bindings/xpcom" \
626 "out/darwin.x86/debug/bin/dist/bindings/xpcom" \
627 "out/solaris.amd64/debug/bin/sdk/bindings/xpcom" \
628 "out/solaris.x86/debug/bin/sdk/bindings/xpcom";
629do
630 if test -d "${MY_ROOT_DIR}/${d}"; then
631 my_generate_project "SDK-xpcom" "${d}" --begin-incs "include" "${d}/include" --end-includes "${d}"
632 XPCOM_INCS="${d}/include"
633 break
634 fi
635done
636
637# lib/xpcom
638my_generate_project "xpcom" "src/libs/xpcom18a4" --begin-incs "include" "${XPCOM_INCS}" --end-includes "src/libs/xpcom18a4"
639
640my_generate_workspace
641
642
643#
644# Update the history file if present.
645#
646MY_FILE="${MY_WS_NAME}histu"
647if test -f "${MY_FILE}"; then
648 echo "Updating ${MY_FILE}..."
649 ${MY_MV} -f "${MY_FILE}" "${MY_FILE}.old"
650 ${MY_SED} -n \
651 -e '/PROJECT_CACHE/d' \
652 -e '/\[TreeExpansion2\]/d' \
653 -e '/^\[/p' \
654 -e '/: /p' \
655 -e '/^CurrentProject/p' \
656 "${MY_FILE}.old" > "${MY_FILE}"
657fi
658
659echo "done"
660
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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