android webkit 有关css文件如何生成对应的cpp文件

我们会发现在webkit源码下发现很多的css文件例如:

webkit/WebCore/css/html.css

webkit/WebCore/css/quirks.css

webkit/WebCore/css/view-source.css

webkit/WebCore/css/mediaControls.css

等等css是如何对应到源码下的那?

我们发现在 WebCore下有个

Android.derived.mk

# user agent style sheets

style_sheets := $(LOCAL_PATH)/css/html.css $(LOCAL_PATH)/css/quirks.css $(LOCAL_PATH)/css/view-source.css $(LOCAL_PATH)/css/mediaControls.css
ifeq ($(ENABLE_SVG), true)
style_sheets := $(style_sheets) $(LOCAL_PATH)/css/svg.css
endif
GEN := $(intermediates)/css/UserAgentStyleSheets.h
make_css_file_arrays := $(LOCAL_PATH)/css/make-css-file-arrays.pl
$(GEN): PRIVATE_CUSTOM_TOOL = $< $@ $(basename $@).cpp $(filter %.css,$^)
$(GEN): $(make_css_file_arrays) $(style_sheets)
        $(transform-generated-source)
LOCAL_GENERATED_SOURCES += $(GEN) $(GEN:%.h=%.cpp)

这个文件下存在这么一个脚本

脚本的逻辑内容很简单,其中最关键的地方就是css/make-css-file-arrays.pl这个脚本

执行这个脚本就是生成/UserAgentStyleSheets.h和/UserAgentStyleSheets.cpp文件

然后在编译的时候把这个cpp文件编译进去就可以使用了。

基于此所以每当你修改对应的css文件那么对应到源代码生成所以编译的时间也就比较长,原理就在上面说的。


你可能感兴趣的:(android,css,脚本,Arrays,webkit,Path)