cmake - add_jar cmake 的依赖
问题描述
我实际上是通过代码生成器动态生成 java 源文件。我想创建包含通过此代码生成器创建的 java 文件的 jar 文件。
add_custom_target(lang ALL)
add_custom_command(
TARGET lang
COMMAND ${Protobuf_PROTOC_EXECUTABLE} ${CMD_PRG_LNG} --proto_path=${PROTO_FILES} ${COMMONS}/*.proto")
如果我在没有 add_jar 命令的情况下运行我的 cmake,它会成功运行并在相应的文件夹中生成 java 文件。但是,如果我添加 add_jar
add_jar(${JAR_NAME} ${JAVA_SOURCES})
上述指令失败并显示以下错误消息。
Scanning dependencies of target ProtoJava
make[2]: *** No rule to make target '../protoJava/Data.java', needed by 'CMakeFiles/ProtoJava.dir/java_compiled_ProtoJava'. Stop.
CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/ProtoJava.dir/all' failed
make[1]: *** [CMakeFiles/ProtoJava.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
如何获取创建的jar文件?我尝试将 add_jar 放入 add_custom_command 中,与创建 java 文件的目标相同。
add_custom_command(
TARGET lang_java
COMMAND add_jar(${JAR_NAME} ${JAVA_SOURCES}))
但它与消息错误
/bin/sh: 1: Syntax error: word unexpected (expecting ")")
CMakeFiles/lang_java.dir/build.make:57: recipe for target 'lang_java' failed
make[2]: *** [lang_java] Error 2
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/lang_java.dir/all' failed
make[1]: *** [CMakeFiles/lang_java.dir/all] Error 2
Makefile:83: recipe for target 'all' failed
make: *** [all] Error 2
如何解决这个问题?
解决方案
推荐阅读
- c# - SQL 查询 - C# 中的执行时间慢,Toad 中的执行速度快
- php - 通过唯一链接 PHP 跟踪用户注册
- node.js - 正确地将 global.d.ts 导出到 npm 包中
- c# - 从和到字节数组的元帅类实例
- python - 为什么 YOLO 训练损失没有显着减少且平均 IoU 没有增加?
- firebase - Firebase 实时数据库:良好实践(过滤、排序等)
- python - ImportError:无法从“torch.nn.modules.loss”导入名称“_assert_no_grad”
- primefaces - 从 JSF2.0 迁移到 JSF 2.3 步骤
- python - 从多维 numpy 数组中删除 NAN 元素
- batch-file - 批处理文件重命名器