围观而已。
GCIN & HIME
http://moto.debian.tw/viewtopic.php?f=49&t=16373
http://moto.debian.tw/viewtopic.php?f=49&t=16384
估计他们想不到这边还有个坐在几千公里外的fcitx开发者在远处……
围观而已。
GCIN & HIME
http://moto.debian.tw/viewtopic.php?f=49&t=16373
http://moto.debian.tw/viewtopic.php?f=49&t=16384
估计他们想不到这边还有个坐在几千公里外的fcitx开发者在远处……
CMake 是一个跨平台的开源构建系统。
1、CMake的诞生
既然维基百科有我就不多说了。
http://zh.wikipedia.org/wiki/CMake
2、为什么要使用CMake
http://lwn.net/Articles/188693/ Why the KDE project switched to CMake — and how
原因之一是跨平台,本来他们想采用 SCons 作为构建系统, 但在跨平台上遇见了许多问题。CMake的优势在于它只依赖于C++编译器,跨平台,可以生成各个平台特定的Makefile和工程文件,并且支持单元测试。
另外一点就是性能,但我一时间找不到具体的引用了。
3、使用CMake的基本方法
mkdir build cd build cmake .. make make install
针对一般用户来说就是以上内容,和当年的传统 configure make 很像吧?
4、第一个项目
cmake_minimum_required (VERSION 2.6) project(test) add_executable(test test.cpp)
cmake项目一开始都需要指定cmake的最低版本,一般来说2.6即可,最新版是2.8.6。第二行制定项目名称,其次就是添加一个可执行文件。源代码是 test.cpp 。这样cmake就会编译生成一个test的可执行文件。
当然一个好习惯是为一堆文件设置一个变量名。
例如:http://code.google.com/p/fcitx/source/browse/src/core/CMakeLists.txt
set(FCITX_SOURCES fcitx.c errorhandler.c )
设置了一个名为FCITX_SOURCES的变量,引用
上面的链接中还出现了一些新命令,那么我们也来一一解释:
install(TARGETS fcitx RUNTIME DESTINATION ${bindir})
将 target fcitx安装到 ${bindir} 目录下。
target_link_libraries(fcitx fcitx-core ${LIBEXECINFO_LIBRARIES})
fcitx这个target和fcitx-core,以及 ${LIBEXECINFO_LIBRARIES} 进行link。
用过makefile的人对target一定不陌生。fcitx这个target在那里定义的呢?就是在上面的add_executable那里定义的。类似add_executable的还有add_library,用于构建库而不是可执行文件。
至此针对一个简单的C/C++的工程来说,这些就已经足够了。
Feature Plan:
XKB Integration. (Done)
DBus based input method interface, make it possible to write input method with other programming language and other high level library, like glib or qt. (WIP) (Not one will actually eat this dog food, and inter-process communication is not fcitx style, all the module doing easy in-memory interaction is fcitx’s style).
Context event system, addons can provide context change notification. (Done, basic idea is implemented, need some “real usage”, fcitx-libpinyin already use some, fcitx-xkb will be another use-case).
Demo Mobile support for N9 via Maliit. (Not plan to make it full functional in 4.2, since it’s not so important) (WIP) (Postpone, since not important)
Anthy support. (Done)
Hangul support. (Done)
M17N support. (Done)
If possible, libchewing support. (Done)
Something already implemented, you can grab it from git (Be careful !):
fcitx-chewing, fcitx-libpinyin and fcitx-table-extra is on github.
Provides fallback user interface function, make kimpanel can automatically detect whether kimpanel is started or not, so kimpanel will be the default user interface if kimpanel is available, including Unity and GNOME-Shell. (Video)
Lazy input method loading.
Separate word construct code in fcitx-table, making phrase construction in Zhengma (郑码) works correctly, so we can introduce Zhengma in next release.
Dynamic input method change for fcitx-config-gtk (Already implemented in kcm-fcitx with 4.1.2 release), gtk3 support for fcitx-config-gtk, though no UI improvement.
New Monochrome icon set for kimpanel under KDE.
Some other updates:
It’s possible to translate fcitx on transifex.
我也是学过画画的,在小学的时候。
虽然是微不足道的水彩画和签字笔画的也不知道叫什么的画而已。如果重新看过曾经的画过的画,没有大叫一声“鬼啊”已经算是很好的评价了。
我也妄图写过小说,在中学的时候。
虽然最后高考的语文也没有及格。如果回头去看的话,一定会大叫着“bull shit”然后扔到一边吧。
我早已认识到我没有这方面的天赋。所谓的努力然后成为天才这种故事,是不能适用于这种情况的。
因为我还有更喜欢的东西。那里才是真实的心像世界的投影。
对于这样的情况,没有后悔过。
不过依然曾经做着一个貌似帅气的梦。
制作一个从脚本到美工到程序都是自己完成的One-Man-Game。然后自己玩到感动流泪。
在空无一人的机房里面,偶尔回想起的白日之梦。如果我的人生能重复三次大概能完成的事情吧?