My CMake Tutorial 1

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++的工程来说,这些就已经足够了。

Posted in cmake | Tagged | 4 Comments

Fcitx 4.2 Plan

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.

Posted in fcitx development | 8 Comments

曾经的白日之梦

我也是学过画画的,在小学的时候。

虽然是微不足道的水彩画和签字笔画的也不知道叫什么的画而已。如果重新看过曾经的画过的画,没有大叫一声“鬼啊”已经算是很好的评价了。

我也妄图写过小说,在中学的时候。

虽然最后高考的语文也没有及格。如果回头去看的话,一定会大叫着“bull shit”然后扔到一边吧。

我早已认识到我没有这方面的天赋。所谓的努力然后成为天才这种故事,是不能适用于这种情况的。

因为我还有更喜欢的东西。那里才是真实的心像世界的投影。

对于这样的情况,没有后悔过。

不过依然曾经做着一个貌似帅气的梦。

制作一个从脚本到美工到程序都是自己完成的One-Man-Game。然后自己玩到感动流泪。

在空无一人的机房里面,偶尔回想起的白日之梦。如果我的人生能重复三次大概能完成的事情吧?

Posted in 日志 | 5 Comments

My Dearest (歌词而已)

罪恶王冠 OP1

so everything that makes me whole
今(いま)君(きみ)に捧(ささ)げよう【现在都奉献给你】
I’m yours

ねぇ こんなに 笑えたことも 生まれて初めてだよ 【呐 像这样开心地笑 出生以来还是第一次】
きっと 私はね  【一定 我呐】
この日のために 间违いだだけの 道を歩いてきたんだ【为了这一天 而走上错误的道路】
ずっと 一人で 【一直 孤独一人】

远く远くの 近までまたで 君と二人 【既靠近又遥远的你我二人】
手を取って 永远に どこまでだって至るはず【只要永远牵着手 无论哪里一定都能到达】
もう一人じゃなって 君は そういいまだあるな【请不要让我再孤独一人 善良的你仍然在我身边】

守るべき大事なものが今あって 【现在拥有应该保护的重要的事物】
だけどなすすべおれんたち尽くす徒费は【然而不知所措的我们再尽力也是徒费功夫】
可能性は 失うで暗暗が意味を【也可能失落在黑暗中的意义】
お威吓し 绝望ある 饮み込むらされたは【就算被恐吓 就算绝望 只要感情被理解】

私が君を照らす光になるから【我如果成为照亮你的光芒】
まだこの世界の槛出って消せわしない【可能就能走出并消灭这个世界的牢笼】

so everything that makes me whole
今(いま)君(きみ)に捧(ささ)げよう【现在都奉献给你】
I’m yours

ねえ この世界(せかい)にはたくさんの幸(しあわ)せがあるんだね【呐 这个世界上有很多种的幸福】
いつか ふたりなら【总有一天 如果是两个人的话】

Whoeverが君(きみ)のこと嘘(うそ)つきと呼(よ)んで【不管是谁称你为骗子】
心无(こころな)い言叶(ことば)で伤(きず)つけようとしても【戓是用无情的语言伤害你】
世界(せかい)が君(きみ)のことを信(しん)じようとせずに【不管世界是否相信你】
茨(いばら)の冠(かんむり)を冠(かぶ)せようとしても 【即使戴上荆棘做的皇冠】

私(わたし)は君(きみ)だけの味方(みかた)になれるよ【我会一直站在你这边】
この孤独(こどく)痛(いた)みを私は知っている【因为我知道这孤独的疼痛】

so everything that makes me whole
今(いま)君(きみ)に捧(ささ)げよう【现在都奉献给你】
I’m yours

顺便追番感想:

展开略慢……不过最新一话终于开始触及世界的真实了,让人想追下去了。能够看见他人内心的黑暗,还是要用主角光环光芒去照亮才好啊。

来源:

http://tieba.baidu.com/p/1315130869

Posted in 歌词 | Leave a comment

难以评论

每当我对某个程序的有意见的时候,我总是禁不住想,嗨,是不是因为我是个Geek所以我才这么想的?

某些东西到底该怎么做?难以评论某些事情到底是撞墙了,还是走对了。

Linux怪圈就是,只有Geek在用 => 变得更加 Geek => 还是只有 Geek 在用。

Posted in Linux | 6 Comments