我有使用cmake的C++项目。我想基于git commits进行版本控制(即提供唯一的./myapp --version
输出)。手动就像
gcc ... -DVERSION=$(git rev-list|wc -l)
CMakeLists.txt
(为了简单起见,请使用echo)?我应该如何逃脱呢?add_definitions(-DVERSION="$(echo 1)")
最佳答案
在cmake 2.8.8中,您可以:
add_definitions(demo -D`echo VERSION=\\`git rev-list HEAD|wc -l\\``)
int main(int argc, char *argv[]) {
printf("Version: %d", VERSION);
/usr/bin/gcc -std=c99 demo -D`echo VERSION=\`git rev-list HEAD|wc -l\`` -o CMakeFiles/demo.dir/src/demo.c.o -c /home/doug/projects/libar/src/demo.c
build$ ./demo
Version: 88
https://stackoverflow.com/questions/11090724/
相关文章:
reporting-services - SSRS XML数据源如何查询具有多个父子层次结构的XML
sharepoint-2010 - 基于 ADFS 声明的 SharePoint 2010 和嵌入式
jquery-mobile - orientationchange 事件不起作用
scala - 在Play中定义全局变量的最佳方法! 2.0应用
nservicebus - 同一台机器上的分发者和 worker 端点队列
ruby-on-rails - ActiveModel::MassAssignmentSecurit