VirtualBox

Changeset 2368 in kBuild for branches


Ignore:
Timestamp:
Nov 30, 2009 12:30:43 AM (15 years ago)
Author:
bird
Message:

0.1.5: Backported r2356, r2357, r2358, r2359 and r2360: Objective-C++ support.

Location:
branches/kBuild-0.1.5
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • branches/kBuild-0.1.5

  • branches/kBuild-0.1.5/kBuild/footer.kmk

    r2367 r2368  
    21662166define def_src_handler_objc
    21672167local type := OBJC
     2168 $(kb-src-one 2)
     2169endef
     2170
     2171define def_src_handler_objcxx
     2172local type := OBJCXX
    21682173 $(kb-src-one 2)
    21692174endef
  • branches/kBuild-0.1.5/kBuild/header.kmk

    r2363 r2368  
    809809 .CC:def_src_handler_cxx \
    810810  .m:def_src_handler_objc \
     811  .M:def_src_handler_objcxx \
     812 .mm:def_src_handler_objcxx \
    811813.asm:def_src_handler_asm \
    812814.ASM:def_src_handler_asm \
     
    820822## PROPS_TOOLS
    821823# This is a subset of PROPS_SINGLE.
    822 PROPS_TOOLS := TOOL CTOOL CXXTOOL OBJCTOOL ASTOOL RCTOOL ARTOOL LDTOOL FETCHTOOL UNPACKTOOL PATCHTOOL
     824PROPS_TOOLS := TOOL CTOOL CXXTOOL OBJCTOOL OBJCXXTOOL ASTOOL RCTOOL ARTOOL LDTOOL FETCHTOOL UNPACKTOOL PATCHTOOL
    823825
    824826## PROPS_SINGLE
     
    827829# will do the necessary inheritance for templates, sdks, tools and targets.
    828830PROPS_SINGLE := $(PROPS_TOOLS) TEMPLATE INST NOINST BLD_TYPE BLD_TRG BLD_TRG_ARCH BLD_TRG_CPU FETCHDIR \
    829         OBJSUFF COBJSUFF CXXOBJSUFF OBJCOBJSUFF ASOBJSUFF RCOBJSUFF SYSSUFF BINSUFF EXESUFF DLLSUFF LIBSUFF ARLIBSUFF \
     831        OBJSUFF COBJSUFF CXXOBJSUFF OBJCOBJSUFF OBJCXXOBJSUFF ASOBJSUFF RCOBJSUFF SYSSUFF BINSUFF EXESUFF DLLSUFF LIBSUFF ARLIBSUFF \
    830832        MODE UID GID
    831833## PROPS_SINGLE_LNK
    832834# Subset of PROPS_SINGLE which applies to all linkable targets.
    833 PROPS_SINGLE_LNK := TOOL TEMPLATE CTOOL CXXTOOL OBJCTOOL ASTOOL RCTOOL \
     835PROPS_SINGLE_LNK := TOOL TEMPLATE CTOOL CXXTOOL OBJCTOOL OBJCXXTOOL ASTOOL RCTOOL \
    834836        INST NOINST BLD_TYPE BLD_TRG BLD_TRG_ARCH BLD_TRG_CPU \
    835         OBJSUFF COBJSUFF CXXOBJSUFF OBJCOBJSUFF ASOBJSUFF RCOBJSUFF \
     837        OBJSUFF COBJSUFF CXXOBJSUFF OBJCOBJSUFF OBJCXXOBJSUFF ASOBJSUFF RCOBJSUFF \
    836838        MODE UID GID
    837839
     
    852854        CXXFLAGS CXXDEFS \
    853855        OBJCFLAGS OBJCDEFS \
     856        OBJCXXFLAGS OBJCXXDEFS \
    854857        ASFLAGS ASDEFS \
    855858        RCFLAGS RCDEFS \
     
    864867        CXXFLAGS CXXDEFS \
    865868        OBJCFLAGS OBJCDEFS \
     869        OBJCXXFLAGS OBJCXXDEFS \
    866870        ASFLAGS ASDEFS \
    867871        RCFLAGS RCDEFS \
     
    875879PROPS_ACCUMULATE_L := \
    876880        SDKS USES SOURCES SRC_HANDLERS INTERMEDIATES \
    877         INCS CINCS CXXINCS OBJCINCS ASINCS RCINCS \
     881        INCS CINCS CXXINCS OBJCINCS OBJCXXINCS ASINCS RCINCS \
    878882        LIBS LIBPATH \
    879883        DIRS BLDDIRS CLEAN
     
    882886PROPS_ACCUMULATE_L_LNK := \
    883887        SDKS USES SOURCES SRC_HANDLERS INTERMEDIATES \
    884         INCS CINCS CXXINCS OBJCINCS ASINCS RCINCS \
     888        INCS CINCS CXXINCS OBJCINCS OBJCXXINCS ASINCS RCINCS \
    885889        BLDDIRS CLEAN
    886890
  • branches/kBuild-0.1.5/kBuild/tools/GCC4MACHO.kmk

    r2243 r2368  
    3535
    3636# Tool Specific Properties
    37 TOOL_GCC4MACHO_CC  ?= gcc$(HOSTSUFF_EXE)
    38 TOOL_GCC4MACHO_CXX ?= g++$(HOSTSUFF_EXE)
    39 TOOL_GCC4MACHO_OBJC?= gcc$(HOSTSUFF_EXE)
    40 TOOL_GCC4MACHO_AS  ?= gcc$(HOSTSUFF_EXE)
    41 TOOL_GCC4MACHO_LD  ?= gcc$(HOSTSUFF_EXE)
     37TOOL_GCC4MACHO_CC        ?= gcc$(HOSTSUFF_EXE)
     38TOOL_GCC4MACHO_CXX       ?= g++$(HOSTSUFF_EXE)
     39TOOL_GCC4MACHO_OBJC      ?= gcc$(HOSTSUFF_EXE)
     40TOOL_GCC4MACHO_OBJCXX    ?= gcc$(HOSTSUFF_EXE)
     41TOOL_GCC4MACHO_AS        ?= gcc$(HOSTSUFF_EXE)
     42TOOL_GCC4MACHO_LD        ?= gcc$(HOSTSUFF_EXE)
    4243TOOL_GCC4MACHO_LD_SYSMOD ?= gcc$(HOSTSUFF_EXE)
    4344ifndef TOOL_GCC4MACHO_LDFLAGS.$(KBUILD_TARGET)
     
    5051
    5152ifdef SLKRUNS
    52 TOOL_GCC4MACHO_CC  += -fmessage-length=0
    53 TOOL_GCC4MACHO_CXX += -fmessage-length=0
    54 TOOL_GCC4MACHO_OBJC+= -fmessage-length=0
     53TOOL_GCC4MACHO_CC        += -fmessage-length=0
     54TOOL_GCC4MACHO_CXX       += -fmessage-length=0
     55TOOL_GCC4MACHO_OBJC      += -fmessage-length=0
     56TOOL_GCC4MACHO_OBJCXX    += -fmessage-length=0
    5557endif
    5658
     
    6567
    6668TOOL_GCC4MACHO_CXXOBJSUFF       ?= .o
    67 TOOL_GCC4MACHO_CXXOBJSUFF       ?= .o
    6869TOOL_GCC4MACHO_CXXFLAGS         ?=
    6970TOOL_GCC4MACHO_CXXFLAGS.debug   ?= -g
     
    7374TOOL_GCC4MACHO_CXXDEFS          ?=
    7475
    75 TOOL_GCC4MACHO_OBJCOBJSUFF      ?= .o
    7676TOOL_GCC4MACHO_OBJCOBJSUFF      ?= .o
    7777TOOL_GCC4MACHO_OBJCFLAGS        ?=
     
    8181TOOL_GCC4MACHO_OBJCINCS         ?=
    8282TOOL_GCC4MACHO_OBJCDEFS         ?=
     83
     84TOOL_GCC4MACHO_OBJCXXOBJSUFF        ?= .o
     85TOOL_GCC4MACHO_OBJCXXFLAGS          ?=
     86TOOL_GCC4MACHO_OBJCXXFLAGS.debug    ?= -g
     87TOOL_GCC4MACHO_OBJCXXFLAGS.profile  ?= -O2 #-g -pg
     88TOOL_GCC4MACHO_OBJCXXFLAGS.release  ?= -O2
     89TOOL_GCC4MACHO_OBJCXXINCS           ?=
     90TOOL_GCC4MACHO_OBJCXXDEFS           ?=
    8391
    8492TOOL_GCC4MACHO_ASFLAGS          ?= -x assembler-with-cpp
     
    215223define TOOL_GCC4MACHO_COMPILE_OBJC_CMDS
    216224        $(QUIET)$(TOOL_GCC4MACHO_OBJC) -c\
     225                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     226                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     227                -o $(obj)\
     228                $(abspath $(source))
     229endef
     230endif # !KBUILD_USE_KOBJCACHE
     231
     232
     233## Compile Objective-C++ source.
     234# @param    $(target)   Normalized main target name.
     235# @param    $(source)   Source filename (relative).
     236# @param    $(obj)      Object file name. This shall be (re)created by the compilation.
     237# @param    $(dep)          Dependcy file. This shall be (re)created by the compilation.
     238# @param    $(flags)    Flags.
     239# @param    $(defs)     Definitions. No -D or something.
     240# @param    $(incs)     Includes. No -I or something.
     241# @param    $(dirdep)   Directory creation dependency.
     242# @param    $(deps)             Other dependencies.
     243# @param    $(outbase)  Output basename (full). Use this for list files and such.
     244# @param    $(objsuff)  Object suffix.
     245TOOL_GCC4MACHO_COMPILE_OBJCXX_DEPEND =
     246TOOL_GCC4MACHO_COMPILE_OBJCXX_DEPORD =
     247ifdef KBUILD_USE_KOBJCACHE
     248TOOL_GCC4MACHO_COMPILE_OBJCXX_USES_KOBJCACHE = 1
     249TOOL_GCC4MACHO_COMPILE_OBJCXX_OUTPUT = $(outbase).mii
     250define TOOL_GCC4MACHO_COMPILE_OBJCXX_CMDS
     251        $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\
     252                --kObjCache-cpp $(outbase).mii\
     253                $(TOOL_GCC4MACHO_OBJCXX) -E -o -\
     254                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     255                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     256                $(abspath $(source))\
     257                --kObjCache-cc $(obj)\
     258                $(TOOL_GCC4MACHO_OBJCXX) -c\
     259                $(flags) -fpreprocessed -x objective-c++\
     260                -o $(obj)\
     261                -
     262endef
     263else  # !KBUILD_USE_KOBJCACHE
     264TOOL_GCC4MACHO_COMPILE_OBJCXX_OUTPUT =
     265define TOOL_GCC4MACHO_COMPILE_OBJCXX_CMDS
     266        $(QUIET)$(TOOL_GCC4MACHO_OBJCXX) -c\
    217267                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    218268                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
  • branches/kBuild-0.1.5/kBuild/tools/GXX4MACHO.kmk

    r2243 r2368  
    3535
    3636# Tool Specific Properties
    37 TOOL_GXX4MACHO_CC  ?= gcc$(HOSTSUFF_EXE)
    38 TOOL_GXX4MACHO_CXX ?= g++$(HOSTSUFF_EXE)
    39 TOOL_GXX4MACHO_OBJC?= gcc$(HOSTSUFF_EXE)
    40 TOOL_GXX4MACHO_AS  ?= gcc$(HOSTSUFF_EXE)
    41 TOOL_GXX4MACHO_LD  ?= g++$(HOSTSUFF_EXE)
     37TOOL_GXX4MACHO_CC        ?= gcc$(HOSTSUFF_EXE)
     38TOOL_GXX4MACHO_CXX       ?= g++$(HOSTSUFF_EXE)
     39TOOL_GXX4MACHO_OBJC      ?= gcc$(HOSTSUFF_EXE)
     40TOOL_GXX4MACHO_OBJCXX    ?= gcc$(HOSTSUFF_EXE)
     41TOOL_GXX4MACHO_AS        ?= gcc$(HOSTSUFF_EXE)
     42TOOL_GXX4MACHO_LD        ?= g++$(HOSTSUFF_EXE)
    4243TOOL_GXX4MACHO_LD_SYSMOD ?= g++$(HOSTSUFF_EXE)
    4344ifndef TOOL_GXX4MACHO_LDFLAGS.$(KBUILD_TARGET)
     
    5051
    5152ifdef SLKRUNS
    52 TOOL_GXX4MACHO_CC  += -fmessage-length=0
    53 TOOL_GXX4MACHO_CXX += -fmessage-length=0
    54 TOOL_GXX4MACHO_OBJC+= -fmessage-length=0
     53TOOL_GXX4MACHO_CC     += -fmessage-length=0
     54TOOL_GXX4MACHO_CXX    += -fmessage-length=0
     55TOOL_GXX4MACHO_OBJC   += -fmessage-length=0
     56TOOL_GXX4MACHO_OBJCXX += -fmessage-length=0
    5557endif
    5658
     
    6567
    6668TOOL_GXX4MACHO_CXXOBJSUFF       ?= .o
    67 TOOL_GXX4MACHO_CXXOBJSUFF       ?= .o
    6869TOOL_GXX4MACHO_CXXFLAGS         ?=
    6970TOOL_GXX4MACHO_CXXFLAGS.debug   ?= -g
     
    7374TOOL_GXX4MACHO_CXXDEFS          ?=
    7475
    75 TOOL_GXX4MACHO_OBJCOBJSUFF      ?= .o
    7676TOOL_GXX4MACHO_OBJCOBJSUFF      ?= .o
    7777TOOL_GXX4MACHO_OBJCFLAGS        ?=
     
    8181TOOL_GXX4MACHO_OBJCINCS         ?=
    8282TOOL_GXX4MACHO_OBJCDEFS         ?=
     83
     84TOOL_GXX4MACHO_OBJCXXOBJSUFF        ?= .o
     85TOOL_GXX4MACHO_OBJCXXFLAGS          ?=
     86TOOL_GXX4MACHO_OBJCXXFLAGS.debug    ?= -g
     87TOOL_GXX4MACHO_OBJCXXFLAGS.profile  ?= -O2 #-g -pg
     88TOOL_GXX4MACHO_OBJCXXFLAGS.release  ?= -O2
     89TOOL_GXX4MACHO_OBJCXXINCS           ?=
     90TOOL_GXX4MACHO_OBJCXXDEFS           ?=
    8391
    8492TOOL_GXX4MACHO_ASFLAGS          ?= -x assembler-with-cpp
     
    215223define TOOL_GXX4MACHO_COMPILE_OBJC_CMDS
    216224        $(QUIET)$(TOOL_GXX4MACHO_OBJC) -c\
     225                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     226                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     227                -o $(obj)\
     228                $(abspath $(source))
     229endef
     230endif # !KUSE_OBJCACHE
     231
     232
     233## Compile Objective-C++ source.
     234# @param    $(target)   Normalized main target name.
     235# @param    $(source)   Source filename (relative).
     236# @param    $(obj)      Object file name. This shall be (re)created by the compilation.
     237# @param    $(dep)          Dependcy file. This shall be (re)created by the compilation.
     238# @param    $(flags)    Flags.
     239# @param    $(defs)     Definitions. No -D or something.
     240# @param    $(incs)     Includes. No -I or something.
     241# @param    $(dirdep)   Directory creation dependency.
     242# @param    $(deps)             Other dependencies.
     243# @param    $(outbase)  Output basename (full). Use this for list files and such.
     244# @param    $(objsuff)  Object suffix.
     245TOOL_GXX4MACHO_COMPILE_OBJCXX_DEPEND =
     246TOOL_GXX4MACHO_COMPILE_OBJCXX_DEPORD =
     247ifdef KBUILD_USE_KOBJCACHE
     248TOOL_GXX4MACHO_COMPILE_OBJCXX_USES_KOBJCACHE = 1
     249TOOL_GXX4MACHO_COMPILE_OBJCXX_OUTPUT = $(outbase).mii
     250define TOOL_GXX4MACHO_COMPILE_OBJCXX_CMDS
     251        $(QUIET)$(KOBJCACHE) -f $(outbase).koc -d $(PATH_OBJCACHE) -t $(bld_trg).$(bld_trg_arch) -p\
     252                --kObjCache-cpp $(outbase).mii\
     253                $(TOOL_GXX4MACHO_OBJCXX) -E -o -\
     254                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
     255                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
     256                $(abspath $(source))\
     257                --kObjCache-cc $(obj)\
     258                $(TOOL_GXX4MACHO_OBJCXX) -c\
     259                $(flags) -fpreprocessed -x objective-c++ \
     260                -o $(obj)\
     261                -
     262endef
     263else  # !KBUILD_USE_KOBJCACHE
     264TOOL_GXX4MACHO_COMPILE_OBJCXX_OUTPUT =
     265define TOOL_GXX4MACHO_COMPILE_OBJCXX_CMDS
     266        $(QUIET)$(TOOL_GXX4MACHO_OBJCXX) -c\
    217267                $(flags) $(addprefix -I, $(incs)) $(addprefix -D, $(defs))\
    218268                -Wp,-MD,$(dep) -Wp,-MT,$(obj) -Wp,-MP\
  • branches/kBuild-0.1.5/kBuild/units/qt4.kmk

    r2332 r2368  
    957957 # Adding -F to CXXFLAGS is necessary to make #include <QtCore/qstring.h> stuff work...
    958958 $(eval $(target)_CXXFLAGS += -F$(PATH_SDK_QT4_LIB) )
     959 $(eval $(target)_OBJCXXFLAGS += -F$(PATH_SDK_QT4_LIB) )
    959960 $(eval $(target)_LDFLAGS  += -F$(PATH_SDK_QT4_LIB) $(foreach module,$(qt_modules), -framework $(qt_prefix)Qt$(module)$(qt_infix)) )
    960961 $(eval $(target)_INCS     += $(foreach module,$(qt_modules), $(PATH_SDK_QT4_LIB)/$(qt_prefix)Qt$(module)$(qt_infix).framework/Versions/4/Headers) )
Note: See TracChangeset for help on using the changeset viewer.

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