From 6c960adecf3697cbab228c4d88f0c29876044a3a Mon Sep 17 00:00:00 2001 From: ocoursiere Date: Wed, 10 Sep 2003 22:36:47 +0000 Subject: [PATCH] Improved build process again... --- bepascal/Jamfile | 20 +- bepascal/Jamrules | 390 +++++++++++++++++- bepascal/source/bepascal/cpp/Jamfile | 219 ++++++---- .../cpp/src/be/interface/StatusBar.cpp | 3 +- .../pas/src/be/interface/statusbar.pp | 12 +- 5 files changed, 539 insertions(+), 105 deletions(-) diff --git a/bepascal/Jamfile b/bepascal/Jamfile index af48544..4740163 100644 --- a/bepascal/Jamfile +++ b/bepascal/Jamfile @@ -22,9 +22,11 @@ SubDir BEPASCAL_TOP ; # Force creation of target's directories BEFORE the building of libbepascal.so Depends libbepascal.so : dirs ; +# build libbepascal.so before libstubgen.so +Depends libstubgen.so : libbepascal.so ; -NOCARE libbepascal.so ; -NOCARE libstubgen.so ; +#LEAVES libbepascal.so ; +#LEAVES libstubgen.so ; # set the distribution dir DISTRIB_DIR = distrib ; @@ -44,7 +46,6 @@ rule MakeDistribs MkDir -p $(DISTRIB_DIR) ; # copy libbepascal.so in lib Bulk lib : libbepascal.so libstubgen.so ; - Depends all : ; # binary files like libbepascal.so are needed to build bin_bepascal.zip Depends bin_bepascal.zip : libbepascal.so ; # make all distribution files. We recursively add all files @@ -73,11 +74,20 @@ rule MakeDistribs docs ; } +NOTFILE zip ; +ALWAYS zip ; + +rule zip +{ + # Make distribution files + Depends all : ; + Depends all : ; + MakeDistribs ; +} + # Install libbepascal.so in LIBBEPASCAL_INSTALL_DIR (/boot/home/config/lib) InstallLib $(LIBBEPASCAL_INSTALL_DIR) : libbepascal.so ; InstallLib $(LIBBEPASCAL_INSTALL_DIR) : libstubgen.so ; -# Make distribution files -MakeDistribs ; SubInclude BEPASCAL_TOP source ; diff --git a/bepascal/Jamrules b/bepascal/Jamrules index 4de1628..7af68da 100644 --- a/bepascal/Jamrules +++ b/bepascal/Jamrules @@ -27,23 +27,36 @@ rule UserObject } } +# fpcMkObjectDirs ; +# Makes the necessary sub-directories in the object target directory based +# on the sub-directories used for the source files. +rule fpcMkObjectDirs +{ + local dir ; + for i in $(1) + { + dir = [ FDirName $(LOCATE_TARGET) $(i:D) ] ; + Depends $(i:S=$(SUFOBJ)) : $(dir) ; + MkDir $(dir) ; + } +} + rule fpc { - echo $(1) ; - echo $(2) ; + local dir ; + dir = $(LOCATE_TARGET:P) ; + fpcMkObjectDirs $(2) ; + Depends all : $(2) ; Depends $(1) : $(2) ; PPUFILES += $(2)u ; # try to clean ppu files (don't work yet) Clean clean : $(2)u ; - echo $(2)u ; - echo $(LOCATE_TARGET) ; - echo $(PPUFILES) ; } # call the FreePascal compiler actions fpc { - fpc -FU$(LOCATE_TARGET) -g -S2 $(2) + fpc -g -S2 $(2) -FE$(dir) ; } # Make a zip file named $(1) that include (recursively) all files in the directory list $(2), except the ones @@ -58,3 +71,368 @@ actions MakeZip { zip $(DISTRIB_DIR)/$(1) -r $(2) -x \*CVS\* } + +## OpenBeOS Generic Jamfile Engine v1.0.1 +## Does all the hard work for the Generic Jamfile +## which simply defines the project parameters. +## Most of the real work is done in the Jambase +## embedded into the jam executable. +## +## Inspired by the Be Makefile Engine +## +## Supports Generic Jamfile v1.0 +## +## Copyright (c) 2002, 2003 Ryan Leavengood +## Released under the Terms of the MIT License, see +## http://www.opensource.org/licenses/mit-license.html + +## Hacked for BePascal to handle many shared objects in the same source +## tree. +## + + +##------------------------------------------------------------------- +## Define some utility rules +##------------------------------------------------------------------- + +# AddResources : ; +# Adds the given resources to the given application. +rule AddResources +{ + Depends $(<) : $(>) ; +} + +actions AddResources +{ + $(XRES) -o "$(<)" $(>) +} + +# MimeSet ; +# Sets the mime type of the given application to be an application. +actions MimeSet +{ + $(MIMESET) -f "$(<)" +} + +# ProcessLibs ; +# Prepends -l to any library names that aren't _APP_ or _KERNEL_ or +# that don't have .a or .so file extensions. The result will be given +# to the linker so that it links to the right libraries. +rule ProcessLibs +{ + local result ; + for i in $(1) + { + if ( ( $(i) in _APP_ _KERNEL_ ) || ( $(i:S) in .so .a ) ) + { + result += $(i) ; + } + else + { + result += -l$(i) ; + } + } + return $(result) ; +} + +# MkObjectDirs ; +# Makes the necessary sub-directories in the object target directory based +# on the sub-directories used for the source files. +rule MkObjectDirs +{ + local dir ; + for i in $(1) + { + dir = [ FDirName $(LOCATE_TARGET) $(i:D) ] ; + Depends $(i:S=$(SUFOBJ)) : $(dir) ; + MkDir $(dir) ; + } +} + +# RmApp : ; +# Removes the given application file when the given pseudotarget +# is specified. +rule RmApp +{ + Depends $(<) : $(>) ; +} + +actions RmApp +{ + rm -rf "$(>)" +} + +# RunApp : ; +# Runs the given application in the background when the given pseudotarget +# is specified. +rule RunApp +{ + Depends $(<) : $(>) ; +} + +actions RunApp +{ + "$(>)" & +} + +# InstallDriver1 : ; +# Installs the given driver in the correct location when the given pseudotarget +# is specified. +rule InstallDriver1 +{ + Depends $(<) : $(>) ; + USER_BIN_PATH on $(<) = /boot/home/config/add-ons/kernel/drivers/bin ; + USER_DEV_PATH on $(<) = /boot/home/config/add-ons/kernel/drivers/dev ; +} + +actions InstallDriver1 +{ + copyattr --data "$(>)" "$(USER_BIN_PATH)/$(>:B)" + mkdir -p $(USER_DEV_PATH)/$(DRIVER_PATH) + ln -sf "$(USER_BIN_PATH)/$(>:B)" "$(USER_DEV_PATH)/$(DRIVER_PATH)/$(>:B)" +} + +# InstallDriver : ; +# Installs the given driver in the correct location when the given pseudotarget +# is specified, after making sure that this is actually a driver. +rule InstallDriver +{ + if ( $(TYPE) = DRIVER ) + { + InstallDriver1 $(<) : $(>) ; + } +} + +# Link : ; +# Replaces the actions for the default Jam Link rule with one that handles spaces +# in application names. +actions Link bind NEEDLIBS +{ + $(LINK) $(LINKFLAGS) -o "$(<)" $(UNDEFS) $(>) $(NEEDLIBS) $(LINKLIBS) +} + +# BeMain : ; +# This is the main rule that builds the project. +rule BeMain +{ + local NAME on $(<) = $(<) ; + local SRCS on $(<) = $(2) ; + local TYPE on $(<) = $(3) ; + + +##------------------------------------------------------------------- +## Now all the needed variables are defined +##------------------------------------------------------------------- + +# Set the directory where object files and binaries will be created. +# The pre-defined Jam variable OSPLAT will indicate what platform we +# are on (X86 vs PPC, etc.) +LOCATE_TARGET = obj.$(OSPLAT) ; + +# Set some defaults +if ( ! $(NAME) ) +{ + ECHO "No NAME defined!" ; + NAME = NameThisApp ; +} + +if ( ! $(TYPE) ) +{ + ECHO "No TYPE defined...defaulting to APP" ; + TYPE = APP ; +# TYPE = SHARED ; +} + +if ( ! $(SRCS) ) +{ + ECHO "NO SRCS defined...defaulting to *.cpp in current directory" ; + SRCS = [ GLOB . : *.cpp ] ; +} + +if ( ! $(DRIVER_PATH) ) +{ + DRIVER_PATH = misc ; +} + +# Now handle platform-specific settings +if ( $(OSPLAT) = X86 ) +{ + if ( $(TYPE) = DRIVER ) + { + CCFLAGS on $(<) += -D_KERNEL_MODE=1 -no-fpic ; + C++FLAGS on $(<) += -D_KERNEL_MODE=1 -no-fpic ; + } + + switch $(OPTIMIZE) + { + case FULL : OPTIMIZER on $(<) = -O3 ; + case SOME : OPTIMIZER on $(<) = -O1 ; + case NONE : OPTIMIZER on $(<) = -O0 ; + # Default to FULL + case * : OPTIMIZER on $(<) = -O3 ; + } + + DEBUG = ; + + if ( $(DEBUGGER) = TRUE ) + { + DEBUG on $(<) += -g ; + OPTIMIZER on $(<) = -O0 ; + } + + CCFLAGS on $(<) += $(OPTIMIZER) $(DEBUG) ; + C++FLAGS on $(<) += $(OPTIMIZER) $(DEBUG) ; + + if ( $(WARNINGS) = ALL ) + { + CCFLAGS on $(<) += -Wall -Wno-multichar -Wno-ctor-dtor-privacy ; + C++FLAGS on $(<) += -Wall -Wno-multichar -Wno-ctor-dtor-privacy ; + } + else if ( $(WARNINGS) = NONE ) + { + CCFLAGS on $(<) += -w ; + C++FLAGS on $(<) += -w ; + } + + LINKFLAGS on $(<) += $(DEBUG) ; + + # Set linker flags + switch $(TYPE) + { + case APP : LINKFLAGS on $(<) += -Xlinker -soname=_APP_ ; + case SHARED : LINKFLAGS on $(<) += -nostart -Xlinker -soname=$(NAME) ; + case DRIVER : LINKFLAGS on $(<) += -nostdlib /boot/develop/lib/x86/_KERNEL_ ; + } +} +else if ( $(OSPLAT) = PPC ) +{ + switch $(OPTIMIZE) + { + case FULL : OPTIMIZER on $(<) = -O7 ; + case SOME : OPTIMIZER on $(<) = -O3 ; + case NONE : OPTIMIZER on $(<) = -O0 ; + # Default to FULL + case * : OPTIMIZER on $(<) = -O7 ; + } + + DEBUG on $(<) = ; + + if ( $(DEBUGGER) = TRUE ) + { + DEBUG on $(<) += -g ; + } + + CCFLAGS on $(<) += $(OPTIMIZER) $(DEBUG) ; + C++FLAGS on $(<) += $(OPTIMIZER) $(DEBUG) ; + + if ( $(WARNINGS) = ALL ) + { + CCFLAGS on $(<) += -w on -requireprotos ; + C++FLAGS on $(<) += -w on -requireprotos ; + } + else if ( $(WARNINGS) = NONE ) + { + CCFLAGS on $(<) += -w off ; + C++FLAGS on $(<) += -w off ; + } + + # Clear the standard environment variable + # Now there are no standard libraries to link against + BELIBFILES on $(<) = ; + + # Set linker flags + if ( $(TYPE) = SHARED ) + { + LINKFLAGS on $(<) += -xms ; + } + + if ( $(TYPE) = DRIVER ) + { + LINKFLAGS on $(<) += -nodefaults -export all -G + /boot/develop/lib/ppc/glue-noinit.a + /boot/develop/lib/ppc/_KERNEL_ ; + } + else + { + LINKFLAGS on $(<) += -export pragma -init _init_routine_ + -term _term_routine_ -lroot + /boot/develop/lib/ppc/glue-noinit.a + /boot/develop/lib/ppc/init_term_dyn.o + /boot/develop/lib/ppc/start_dyn.o ; + } + + if ( $(SYMBOLS) = TRUE ) + { + LINKFLAGS on $(<) += -map $(NAME).xMAP ; + } + + if ( $(DEBUGGER) = TRUE ) + { + LINKFLAGS on $(<) += -g -osym $(NAME).SYM ; + } +} +else +{ + EXIT "Your platform is unsupported" ; +} + +# Handle the other settings +LINKLIBS on $(<) += [ ProcessLibs $(LIBS) ] ; +for i in $(LIBPATHS) +{ + LINKFLAGS on $(<) += -L$(i) ; +} +HDRS += $(SYSTEM_INCLUDE_PATHS) ; +HDRS on $(<) += $(LOCAL_INCLUDE_PATHS) ; +CCFLAGS on $(<) += $(COMPILER_FLAGS) ; +C++FLAGS on $(<) += $(COMPILER_FLAGS) ; +LINKFLAGS on $(<) += $(LINKER_FLAGS) ; + +# Define some tools +XRES = xres ; +MIMESET = mimeset ; + +# Defining this variable keeps objects from being deleted by the Library +# rule. By default the objects are deleted after being archived into +# the library. I prefer they not be. +KEEPOBJS = true ; + +# Set up the driverinstall target...this makes it easy to install drivers +# for testing +Always driverinstall ; +NotFile driverinstall ; +InstallDriver driverinstall : $(NAME) ; + +# Set up the rmapp target...this removes only the application +Always rmapp ; +NotFile rmapp ; +RmApp rmapp : $(NAME) ; + +# Set up the test target...this runs the application in the background +#Always test ; +NotFile test ; +RunApp test : $(NAME) ; + MkObjectDirs $(>) ; + + if ( $(TYPE) = STATIC ) + { + Library $(<) : $(>) ; + } + else + { + Main $(<) : $(>) ; + } + + if ( $(RSRCS) ) + { + AddResources $(<) : $(RSRCS) ; + } + + MimeSet $(<) ; +} + +##------------------------------------------------------------------- +## OK, let's build +##------------------------------------------------------------------- + +#BeMain $(NAME) : $(SRCS) ; diff --git a/bepascal/source/bepascal/cpp/Jamfile b/bepascal/source/bepascal/cpp/Jamfile index ab7de24..866944e 100644 --- a/bepascal/source/bepascal/cpp/Jamfile +++ b/bepascal/source/bepascal/cpp/Jamfile @@ -37,7 +37,7 @@ NAME = libbepascal.so ; # SHARED: Shared library or add-on # STATIC: Static library archive # DRIVER: Kernel Driver -TYPE = SHARED ; +TYPE on $(NAME) = SHARED ; # Specify the source files to use # Full paths or paths relative to the Jamfile can be included. @@ -47,7 +47,135 @@ TYPE = SHARED ; # if two source files with the same name (source.c or source.cpp) # are included from different directories. # Ex: SRCS = file1.cpp file2.cpp file3.cpp ; -SRCS = src/be/bepas_kernel/beobj.cpp +#SRCS on $(NAME) = src/be/bepas_kernel/beobj.cpp +# src/be/app/Application.cpp +# src/be/app/Clipboard.cpp +# src/be/app/Handler.cpp +# src/be/app/Invoker.cpp +# src/be/app/Looper.cpp +# src/be/app/Message.cpp +# src/be/app/Messenger.cpp +# src/be/app/Roster.cpp +# src/be/device/Joystick.cpp +# src/be/device/SerialPort.cpp +# src/be/interface/Alert.cpp +# src/be/interface/Box.cpp +# src/be/interface/Button.cpp +# src/be/interface/CheckBox.cpp +# src/be/interface/Control.cpp +# src/be/interface/Font.cpp +# src/be/interface/ListItem.cpp +# src/be/interface/ListView.cpp +# src/be/interface/Menu.cpp +# src/be/interface/MenuBar.cpp +# src/be/interface/MenuItem.cpp +# src/be/interface/OutlineListView.cpp +# src/be/interface/Point.cpp +# src/be/interface/Rect.cpp +# src/be/interface/RadioButton.cpp +# src/be/interface/ScrollBar.cpp +# src/be/interface/ScrollView.cpp +# src/be/interface/StatusBar.cpp +# src/be/interface/StringView.cpp +# src/be/interface/TabView.cpp +# src/be/interface/TextControl.cpp +# src/be/interface/TextView.cpp +# src/be/interface/View.cpp +# src/be/interface/Window.cpp +# src/be/mail/E-mail.cpp +# src/be/storage/FilePanel.cpp +# src/be/storage/Volume.cpp +# src/be/storage/VolumeRoster.cpp +# src/be/support/Archivable.cpp +# src/be/support/DataIO.cpp +# src/be/support/Flattenable.cpp +# src/be/support/List.cpp +# src/be/support/String.cpp +# src/hey/hey.cpp ; + +# Specify the resource files to use +# Full path or a relative path to the resource file can be used. +RSRCS on $(NAME) = ; + +# Specify additional libraries to link against +# There are two acceptable forms of library specifications +# - if your library follows the naming pattern of: +# libXXX.so or libXXX.a you can simply specify XXX +# library: libbe.so entry: be +# +# - if your library does not follow the standard library +# naming scheme you need to specify the path to the library +# and it's name +# library: my_lib.a entry: my_lib.a or path/my_lib.a +LIBS += root be mail device tracker ; + +# Specify additional paths to directories following the standard +# libXXX.so or libXXX.a naming scheme. You can specify full paths +# or paths relative to the Jamfile. The paths included may not +# be recursive, so include all of the paths where libraries can +# be found. Directories where source files are found are +# automatically included. +LIBPATHS on $(NAME) = ; + +# Additional paths to look for system headers +# These use the form: #include
+# source file directories are NOT auto-included here +SYSTEM_INCLUDE_PATHS += . + $(SEARCH_SOURCE)/include/be/app + $(SEARCH_SOURCE)/include/be/bepas_kernel + $(SEARCH_SOURCE)/include/be/interface + $(SEARCH_SOURCE)/include/be/support + $(SEARCH_SOURCE)/include/hey ; + +# Additional paths to look for local headers +# thes use the form: #include "header" +# source file directories are automatically included +LOCAL_INCLUDE_PATHS on $(NAME) = ; + +# Specify the level of optimization that you desire +# NONE, SOME, FULL +OPTIMIZE on $(NAME) = ; + +# Specify any preprocessor symbols to be defined. The symbols will not +# have their values set automatically; you must supply the value (if any) +# to use. For example, setting DEFINES to "DEBUG=1" will cause the +# compiler option "-DDEBUG=1" to be used. Setting DEFINES to "DEBUG" +# would pass "-DDEBUG" on the compiler's command line. +DEFINES on $(NAME) = ; + +# Specify special warning levels +# if unspecified default warnings will be used +# NONE = supress all warnings +# ALL = enable all warnings +WARNINGS on $(NAME) = ; + +# Specify whether image symbols will be created +# so that stack crawls in the debugger are meaningful +# if TRUE symbols will be created +SYMBOLS on $(NAME) = ; + +# Specify debug settings +# if TRUE will allow application to be run from a source-level +# debugger. Note that this will disable all optimzation. +DEBUGGER on $(NAME) = ; + +# Specify additional compiler flags for all files +COMPILER_FLAGS on $(NAME) = ; + +# Specify additional linker flags +LINKER_FLAGS on $(NAME) = ; + +# (for TYPE == DRIVER only) Specify desired location of driver in the /dev +# hierarchy. Used by the driverinstall rule. E.g., DRIVER_PATH = video/usb will +# instruct the driverinstall rule to place a symlink to your driver's binary in +# ~/add-ons/kernel/drivers/dev/video/usb, so that your driver will appear at +# /dev/video/usb when loaded. Default is "misc". +DRIVER_PATH on $(NAME) = ; + +## Include the Jamfile-engine +#include $(BUILDHOME)/etc/Jamfile-engine ; + +BeMain libbepascal.so : src/be/bepas_kernel/beobj.cpp src/be/app/Application.cpp src/be/app/Clipboard.cpp src/be/app/Handler.cpp @@ -82,7 +210,8 @@ SRCS = src/be/bepas_kernel/beobj.cpp src/be/interface/TextView.cpp src/be/interface/View.cpp src/be/interface/Window.cpp - src/be/mail/E-mail.cpp + src/be/mail/E-mail.cpp + src/be/storage/FilePanel.cpp src/be/storage/Volume.cpp src/be/storage/VolumeRoster.cpp src/be/support/Archivable.cpp @@ -90,86 +219,4 @@ SRCS = src/be/bepas_kernel/beobj.cpp src/be/support/Flattenable.cpp src/be/support/List.cpp src/be/support/String.cpp - src/hey/hey.cpp ; - -# Specify the resource files to use -# Full path or a relative path to the resource file can be used. -RSRCS = ; - -# Specify additional libraries to link against -# There are two acceptable forms of library specifications -# - if your library follows the naming pattern of: -# libXXX.so or libXXX.a you can simply specify XXX -# library: libbe.so entry: be -# -# - if your library does not follow the standard library -# naming scheme you need to specify the path to the library -# and it's name -# library: my_lib.a entry: my_lib.a or path/my_lib.a -LIBS = be mail device ; - -# Specify additional paths to directories following the standard -# libXXX.so or libXXX.a naming scheme. You can specify full paths -# or paths relative to the Jamfile. The paths included may not -# be recursive, so include all of the paths where libraries can -# be found. Directories where source files are found are -# automatically included. -LIBPATHS = ; - -# Additional paths to look for system headers -# These use the form: #include
-# source file directories are NOT auto-included here -SYSTEM_INCLUDE_PATHS = . - $(SEARCH_SOURCE)/include/be/app - $(SEARCH_SOURCE)/include/be/bepas_kernel - $(SEARCH_SOURCE)/include/be/interface - $(SEARCH_SOURCE)/include/be/support - $(SEARCH_SOURCE)/include/hey ; - -# Additional paths to look for local headers -# thes use the form: #include "header" -# source file directories are automatically included -LOCAL_INCLUDE_PATHS = ; - -# Specify the level of optimization that you desire -# NONE, SOME, FULL -OPTIMIZE = ; - -# Specify any preprocessor symbols to be defined. The symbols will not -# have their values set automatically; you must supply the value (if any) -# to use. For example, setting DEFINES to "DEBUG=1" will cause the -# compiler option "-DDEBUG=1" to be used. Setting DEFINES to "DEBUG" -# would pass "-DDEBUG" on the compiler's command line. -DEFINES = ; - -# Specify special warning levels -# if unspecified default warnings will be used -# NONE = supress all warnings -# ALL = enable all warnings -WARNINGS = ; - -# Specify whether image symbols will be created -# so that stack crawls in the debugger are meaningful -# if TRUE symbols will be created -SYMBOLS = ; - -# Specify debug settings -# if TRUE will allow application to be run from a source-level -# debugger. Note that this will disable all optimzation. -DEBUGGER = ; - -# Specify additional compiler flags for all files -COMPILER_FLAGS = ; - -# Specify additional linker flags -LINKER_FLAGS on libbepascal.so = ; - -# (for TYPE == DRIVER only) Specify desired location of driver in the /dev -# hierarchy. Used by the driverinstall rule. E.g., DRIVER_PATH = video/usb will -# instruct the driverinstall rule to place a symlink to your driver's binary in -# ~/add-ons/kernel/drivers/dev/video/usb, so that your driver will appear at -# /dev/video/usb when loaded. Default is "misc". -DRIVER_PATH = ; - -## Include the Jamfile-engine -include $(BUILDHOME)/etc/Jamfile-engine ; + src/hey/hey.cpp : SHARED ; diff --git a/bepascal/source/bepascal/cpp/src/be/interface/StatusBar.cpp b/bepascal/source/bepascal/cpp/src/be/interface/StatusBar.cpp index f99835f..eb12faa 100644 --- a/bepascal/source/bepascal/cpp/src/be/interface/StatusBar.cpp +++ b/bepascal/source/bepascal/cpp/src/be/interface/StatusBar.cpp @@ -176,8 +176,7 @@ TCPlusObject BStatusBar_Create(TPasObject PasObject, BRect frame, const char *na * Params: BMessage *data * Effects: ***********************************************************************/ -TCPlusObject BStatusBar_Create_1 -(TPasObject PasObject, BMessage *data) +TCPlusObject BStatusBar_Create_1(TPasObject PasObject, BMessage *data) { return new BPStatusBar(PasObject, data); } diff --git a/bepascal/source/bepascal/pas/src/be/interface/statusbar.pp b/bepascal/source/bepascal/pas/src/be/interface/statusbar.pp index c0f4e94..9a295a8 100644 --- a/bepascal/source/bepascal/pas/src/be/interface/statusbar.pp +++ b/bepascal/source/bepascal/pas/src/be/interface/statusbar.pp @@ -74,7 +74,7 @@ function BStatusBar_Create(AObject : TBeObject;frame : TCPlusObject; name : pchar; slabel : Pchar; trailing_label : Pchar): TCPlusObject; cdecl; external BePascalLibName name 'BStatusBar_Create'; -function BStatusBar_Create(AObject : TBeObject; data : TCPlusObject): TCPlusObject; cdecl; external BePascalLibName name 'BStatusBar_Create'; +function BStatusBar_Create_1(AObject : TBeObject; data : TCPlusObject): TCPlusObject; cdecl; external BePascalLibName name 'BStatusBar_Create_1'; procedure BStatusBar_Free(AObject : TCPlusObject); cdecl; external BePascalLibName name 'BStatusBar_Free'; function BStatusBar_Instantiate(AObject : TCPlusObject; data : TCPlusObject) : BArchivable; cdecl; external BePascalLibName name 'BStatusBar_Instantiate'; function BStatusBar_Archive(AObject : TCPlusObject; data : TCPlusObject; deep : boolean) : Status_t; cdecl; external BePascalLibName name 'BStatusBar_Archive'; @@ -114,18 +114,18 @@ function BStatusBar_GetSupportedSuites(AObject : TCPlusObject; data : TCPlusObje implementation constructor BStatusBar.Create(frame : BRect; - name : pchar; - alabel : Pchar; - trailing_label : Pchar); + name : pchar; + alabel : Pchar; + trailing_label : Pchar); begin CreatePas; - CPlusObject := BStatusBar_Create(Self,frame.CPlusObject,name,alabel,trailing_label); + CPlusObject := BStatusBar_Create(Self, frame.CPlusObject, name, alabel, trailing_label); end; constructor BStatusBar.Create(data : BMessage); begin CreatePas; - CPlusObject := BStatusBar_Create(Self, data.CPlusObject); + CPlusObject := BStatusBar_Create_1(Self, data.CPlusObject); end; destructor BStatusBar.Destroy;