cairo是opensource的项目,其在*nix上利用makefile,gcc便能很方便进行编译,客户程序也能很方便pkg-config进行链接.
cairo 依赖项目: FreeType,FontConfig,libPng,libExpat,libZ
Win32平台的编译也是非常简单,只要将makefile.in里面的东东搬到CMakefiles.txt中,然后用CMake(2.4)产生vs2005的工程即可
WINCE的编译可谓是异常的麻烦
FreeType倒是不错,自带了wince的工程档,FontConfig却是没有,且Fontconfig为了实现多进程共享字体资源而采用了cache机制,应用程序通过mmap()将字体信息映射到自己的地址空间来访问。这种模式在wince里可谓没有必要,所以对Fontconfig进行了比较大的手术,去除了FcSerialize,FcCache,FcPattern的内存映射机制,同时限定fonts.conf的存储位置,字体目录位置等等。
libPng:
libpng的 png_convert_from_struct_tm ,png_convert_from_time_t 在wince得不到实现,因为部分的c runtime functions在wince没有实现,所以不得已自己实现这些功能函数
我编译的cairo特性:
支持win32_surface,freetype,fontconfig,image_surface,png_surface