VirtualBox

vbox的更動 29118 路徑 trunk/src/libs/xpcom18a4/java


忽略:
時間撮記:
2010-5-6 上午03:05:29 (15 年 以前)
作者:
vboxsync
訊息:

xpidl,java/Makefile.kmk: Hacked the java mode of xpidl into producing output equivalent to that of genjifaces. There are some minor diffs still and the output spec needs fixing (file -> directory), the .java output compiles but has not been tested. xpidl is able to generate the enum constants used in VirtualBox, genjifaces isn't.

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/libs/xpcom18a4/java/Makefile.kmk

    r29115 r29118  
    8686DLLS += VBoxJXpcom
    8787
    88 #
    89 # genjifaces
    90 #
    91 PROGRAMS += genjifaces
    92 TEMPLATE_XPCOMEXEBLD                   = XPCOM Build executable
    93 TEMPLATE_XPCOMEXEBLD_EXTENDS           = XPCOMBLDPROG
    94 TEMPLATE_XPCOMEXEBLD_EXTENDS_BY        = appending
    95 TEMPLATE_XPCOMEXEBLD_CXXFLAGS          = $(TEMPLATE_XPCOM_CXXFLAGS)
    96 TEMPLATE_XPCOMEXEBLD_INCS              =               \
    97                   $(TEMPLATE_XPCOM_INCS)               \
    98                   $(VBOX_PATH_XPCOM_SRC)               \
    99                   $(VBOX_PATH_XPCOM_SRC)/xpcom/build   \
    100                   $(VBOX_PATH_XPCOM_SRC)/xpcom/ds
    101 TEMPLATE_XPCOMEXEBLD_DEFS              = VBOX_WITH_XPCOM
    102 TEMPLATE_XPCOMEXEBLD_LIBS              = $(VBoxXPCOM_LIBS) $(PATH_LIB)/VBoxCOM$(VBOX_SUFF_LIB)
    103 TEMPLATE_XPCOMEXEBLD_INCS.darwin       = $(TEMPLATE_XPCOM_INCS.darwin)
    104 TEMPLATE_XPCOMEXEBLD_LDFLAGS.darwin    =   \
    105                  -framework CoreServices   \
    106                  -framework CoreFoundation \
    107                  -framework Foundation     \
    108                  -framework AppKit         \
    109                  -framework Carbon         
    110 
    111 ifeq ($(KBUILD_TARGET),darwin)
    112  define preprocess_exebld
    113   $(shell install_name_tool -change $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxRT.dylib $(PATH_BIN)/VBoxRT.dylib $(1))
    114  endef
     88ifndef VBOX_WITH_JAVA_SUPPORT_IN_XPIDL
     89if 1
     90 #
     91 # genjifaces - using VBoxXPCOM and associates.
     92 #
     93 PROGRAMS += genjifaces
     94 TEMPLATE_XPCOMEXEBLD                   = XPCOM Build executable
     95 TEMPLATE_XPCOMEXEBLD_EXTENDS           = XPCOMBLDPROG
     96 TEMPLATE_XPCOMEXEBLD_EXTENDS_BY        = appending
     97 TEMPLATE_XPCOMEXEBLD_CXXFLAGS          = $(TEMPLATE_XPCOM_CXXFLAGS)
     98 TEMPLATE_XPCOMEXEBLD_INCS              =               \
     99                   $(TEMPLATE_XPCOM_INCS)               \
     100                   $(VBOX_PATH_XPCOM_SRC)               \
     101                   $(VBOX_PATH_XPCOM_SRC)/xpcom/build   \
     102                   $(VBOX_PATH_XPCOM_SRC)/xpcom/ds
     103 TEMPLATE_XPCOMEXEBLD_DEFS              = VBOX_WITH_XPCOM
     104 TEMPLATE_XPCOMEXEBLD_LIBS              = $(VBoxXPCOM_LIBS) $(PATH_LIB)/VBoxCOM$(VBOX_SUFF_LIB)
     105 TEMPLATE_XPCOMEXEBLD_INCS.darwin       = $(TEMPLATE_XPCOM_INCS.darwin)
     106 TEMPLATE_XPCOMEXEBLD_LDFLAGS.darwin    =   \
     107                 -framework CoreServices   \
     108                 -framework CoreFoundation \
     109                 -framework Foundation     \
     110                 -framework AppKit         \
     111                  -framework Carbon
     112
     113 ifeq ($(KBUILD_TARGET),darwin)
     114  define preprocess_exebld
     115   $(shell install_name_tool -change $(VBOX_DYLD_EXECUTABLE_PATH)/VBoxRT.dylib $(PATH_BIN)/VBoxRT.dylib $(1))
     116  endef
     117 else
     118  define preprocess_exebld
     119  endef
     120 endif
     121
     122 genjifaces_TEMPLATE = XPCOMEXEBLD
     123 genjifaces_INCS     =    \
     124         src
     125 genjifaces_DEFS     =    \
     126        EXPORT_XPTI_API  \
     127         EXPORT_XPT_API
     128
     129 genjifaces_SOURCES  =    \
     130        ../xpcom/build/nsStringAPI.cpp \
     131         ../xpcom/build/nsXPComInit.cpp \
     132         tools/genifaces/GenerateJavaInterfaces.cpp \
     133         src/nsFileStreams.cpp
     134 genjifaces_INST = $(INST_BIN)
     135 genjifaces_DEPS = $(PATH_TARGET)/VBox-xpcom-idl-timestamp
     136 GENJIFACES_BIN := $(PATH_BIN)/genjifaces$(HOSTSUFF_EXE)
     137
    115138else
    116  define preprocess_exebld
    117  endef
    118 endif
    119 
    120 genjifaces_TEMPLATE = XPCOMEXEBLD
    121 genjifaces_INCS     =    \
    122         src
    123 genjifaces_DEFS     =    \
    124         EXPORT_XPTI_API  \
    125         EXPORT_XPT_API
    126 
    127 genjifaces_SOURCES  =    \
    128         ../xpcom/build/nsStringAPI.cpp \
    129         ../xpcom/build/nsXPComInit.cpp \
    130         tools/genifaces/GenerateJavaInterfaces.cpp \
    131         src/nsFileStreams.cpp
    132 genjifaces_INST = $(INST_BIN)
    133 genjifaces_DEPS = $(PATH_TARGET)/VBox-xpcom-idl-timestamp
    134 GENJIFACES_BIN := $(PATH_BIN)/genjifaces$(HOSTSUFF_EXE)
     139 #
     140 # genjifaces - as a build program. Eventually we should probably do it this way,
     141 #              unless the xpidl hack is preferred instead.
     142 #
     143 BLDPROGS += genjifaces
     144 genjifaces_TEMPLATE = XPCOMBLDPROG
     145 genjifaces_DEFS     = \
     146        EXPORT_XPTI_API \
     147        EXPORT_XPT_API \
     148        VBOX_WITH_XPCOM \
     149        _IMPL_NS_COM \
     150        XPCOM_GLUE \
     151        XPCOM_GLUE_NO_DYNAMIC_LOADING \
     152        $(filter-out VBOX_USE_IPRT_IN_NSPR,$(VBox-xpcom-nspr_DEFS))
     153 genjifaces_DEFS.$(KBUILD_HOST) += \
     154        $(VBox-xpcom-nspr_DEFS.$(KBUILD_HOST))
     155 genjifaces_DEFS.$(KBUILD_HOST).$(KBUILD_HOST_ARCH) += \
     156        $(VBox-xpcom-nspr_DEFS.$(KBUILD_HOST).$(KBUILD_HOST_ARCH))
     157 genjifaces_DEFPATH := $(abspath $(PATH_SUB_CURRENT)/..)
     158 genjifaces_INCS     = \
     159        java/src
     160 genjifaces_INCS += \
     161        $(TEMPLATE_XPCOM_INCS) \
     162        $(VBox-xpcom-nspr_INCS) \
     163 genjifaces_INCS.$(KBUILD_HOST) += \
     164        $(TEMPLATE_XPCOM_INCS.$(KBUILD_HOST)) \
     165        $(VBox-xpcom-nspr_INCS.$(KBUILD_HOST))
     166 genjifaces_SOURCES  = \
     167        java/tools/genifaces/GenerateJavaInterfaces.cpp \
     168        java/src/nsFileStreams.cpp
     169 genjifaces_SOURCES += \
     170        xpcom/build/nsXPComInit.cpp \
     171        xpcom/build/nsStringAPI.cpp \
     172        $(VBox-xpcom-string_SOURCES) \
     173        $(VBox-xpcom-base_SOURCES) \
     174        $(VBox-xpcom-ds_SOURCES) \
     175        $(VBox-xpcom-threads_SOURCES) \
     176        xpcom/io/nsNativeCharsetUtils.cpp \
     177        xpcom/io/nsUnicharInputStream.cpp \
     178        \
     179        $(VBox-xpcom-nspr_SOURCES) \
     180        \
     181        $(VBoxXPCOMGlue_COMMON_SOURCES) \
     182        xpcom/glue/standalone/nsXPCOMGlue.cpp \
     183        xpcom/glue/standalone/nsGREDirServiceProvider.cpp
     184 genjifaces_LDFLAGS.darwin = \
     185        -framework CoreServices \
     186        -framework CoreFoundation \
     187        -framework Foundation \
     188        -framework AppKit \
     189        -framework Carbon
     190 genjifaces_DEPS = $(PATH_TARGET)/VBox-xpcom-idl-timestamp
     191endif
     192endif # !VBOX_WITH_JAVA_SUPPORT_IN_XPIDL
    135193
    136194#
     
    165223                $(VBOX_JXPCOM_JSRC)/internal/XPCOMJavaProxy.java
    166224
     225ifndef VBOX_WITH_JAVA_SUPPORT_IN_XPIDL
    167226VBOX_JXPCOM_GEN   = $(VBOX_JXPCOM_TARGET)/jxpcomgen
     227else
     228VBOX_JXPCOM_GEN   = $(VBOX_JXPCOM_TARGET)/jxpcomgen-idl
     229endif
    168230
    169231VBOX_JXPCOM_NSERROR = $(VBOX_JXPCOM_GEN)/java/XPCOMError.java
     
    179241          org.mozilla.xpcom.internal.JavaXPCOMMethods
    180242
    181 $(VBOX_JXPCOM_GEN):
    182         $(QUIET)$(MKDIR) -p $(VBOX_JXPCOM_GEN)
    183 
    184243$(VBOX_JXPCOM_GEN)/java:
    185244        $(QUIET)$(MKDIR) -p $(VBOX_JXPCOM_GEN)/java
    186245
    187 $(VBOX_JXPCOM_NSERROR): $(VBOX_PATH_XPCOM_SRC)/xpcom/base/nsError.h $(VBOX_JXPCOM_SRC)/tools/gen-nsError.pl $(VBOX_JXPCOM_GEN)/java
     246$(VBOX_JXPCOM_NSERROR): $(VBOX_PATH_XPCOM_SRC)/xpcom/base/nsError.h $(VBOX_JXPCOM_SRC)/tools/gen-nsError.pl | $(VBOX_JXPCOM_GEN)/java
    188247        perl $(VBOX_JXPCOM_SRC)/tools/gen-nsError.pl < $< > $@
    189248
    190 $(VBOX_JXPCOM_GEN)/jxpcomgen.list: $(GENJIFACES_BIN) $(PATH_TARGET)/VBox-xpcom-xpt-files/VBoxXPCOMBase.xpt $(VBOX_JXPCOM_GEN)
     249ifndef VBOX_WITH_JAVA_SUPPORT_IN_XPIDL
     250$(VBOX_JXPCOM_GEN)/jxpcomgen.list: $(GENJIFACES_BIN) $(PATH_TARGET)/VBox-xpcom-xpt-files/VBoxXPCOMBase.xpt | $(VBOX_JXPCOM_GEN)/java
    191251        $(QUIET)echo Generating Java interface files
    192         $(QUIET)$(MKDIR) -p $(VBOX_JXPCOM_GEN)/java
    193252        $(call preprocess_exebld,$(GENJIFACES_BIN))
    194253        $(GENJIFACES_BIN) -d $(VBOX_JXPCOM_GEN)/java
    195254        $(QUIET)echo $$(ls $(VBOX_JXPCOM_GEN)/java/*.java) > $@
     255else  # VBOX_WITH_JAVA_SUPPORT_IN_XPIDL
     256## @todo this doesn't work properly as a sub-makefile yet (XPIDL_INCS, XPCOM_IDLFILES).
     257$(VBOX_JXPCOM_GEN)/jxpcomgen.list: \
     258                $(VBOX_PATH_SDK)/bindings/xpcom/idl/VirtualBox_XPCOM.idl \
     259                $$(XPCOM_IDLFILES) \
     260                $(VBOX_XPIDL) \
     261                | $(VBOX_JXPCOM_GEN)/java
     262        $(call MSG_L1,Generating Java interface files from IDL)
     263        $(QUIET)$(RM) -f $(filter-out %/XPCOMError.java, $(wildcard $(VBOX_JXPCOM_GEN)/java/*.java))
     264        $(foreach idl, $(VBOX_PATH_SDK)/bindings/xpcom/idl/VirtualBox_XPCOM.idl $(XPCOM_IDLFILES)\
     265                , $(NLTAB)$(TARGET_xpidl) -m java $(XPIDL_INCS) -e $(VBOX_JXPCOM_GEN)/java/$(basename $(notdir $(idl))).java $(idl) )
     266        $(QUIET)ls $(VBOX_JXPCOM_GEN)/java/*.java > $@
     267endif # VBOX_WITH_JAVA_SUPPORT_IN_XPIDL
    196268
    197269$(VBOX_JXPCOM_JAR): $(JXPCOM_JAR_SRC) $(VBOX_JXPCOM_GEN)/jxpcomgen.list $(VBOX_JXPCOM_NSERROR) $(VBOX_JXPCOM_MGR)
     
    200272        $(VBOX_JAVAC) @$ $(VBOX_JXPCOM_GEN)/jxpcomgen.list \
    201273              -d $(VBOX_JXPCOM_JDEST) -classpath $(VBOX_JXPCOM_JDEST)
    202         $(VBOX_JAVAC) $(JXPCOM_JAR_SRC)                             \
     274                $(VBOX_JAVAC) $(JXPCOM_JAR_SRC)                             \
    203275                      $(VBOX_JXPCOM_NSERROR) $(VBOX_JXPCOM_MGR)     \
    204276              -d $(VBOX_JXPCOM_JDEST) -classpath $(VBOX_JXPCOM_JDEST)
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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