如何使用cmake在自定义目标中输入参数

问题描述 投票:1回答:1

我有一个自定义目标:

 add_custom_target(
      create-po
      COMMAND ${MSGINIT} --no-translator -i "${PROJECT_SOURCE_DIR}/data/${PACKAGE}.pot" - "${PROJECT_SOURCE_DIR}/po/es.po" -l es_MX.utf8
 )

所以,这样调用:

 # make create-po

我的想法是将其更改为如下所示:

 # make create-po "es"

因此,任何用户都可以创建自定义的本地化po文件。我不确切地知道这个词,但是我想在目标名称中添加一个参数。用cmake可以吗?谢谢

makefile cmake command-line-arguments
1个回答
0
投票

在很长一段时间后,由于相同的原因,我发现了这个问题:如果想添加新的翻译,可以使用CMake初始化.po文件吗?我希望我的项目偶尔使用它一次,因此使构建系统对我来说似乎比每次查找所有必需的选项和路径都更舒适。

我得到了以下CMake片段:

set(INIT_LANG CACHE STRING "give a locale here to create a target which initializes a related .po file")
IF(INIT_LANG)
  add_custom_target(
    create-po-${INIT_LANG}
    ... # integrate INIT_LANG in your command
  )
ENDIF(INIT_LANG)

然后,如果要初始化新的翻译文件,请调用(假设您的构建目录位于项目根目录下:]

# cmake -DINIT_LANG=es_MX.utf8 ..

...,您应该获得一个相应的make目标:

# make create-po-es_MX.utf8

是的,它不如OP的想法/期望(以及我的想法)那么简单,但是用户可以自己创建新的.po文件(当然,这将在项目中为他们正确记录;)) 。

© www.soinside.com 2019 - 2024. All rights reserved.