2017-06-06 106 views
0

我试图在我的CMake中添加一个pre_build命令。显然add_jar不支持这个选项。有什么办法可以做类似的事吗?将pre_build命令添加到add_jar cmake

+0

根据[文件](https://cmake.org/cmake/help/v3.7/command/add_custom_command.html),* PRE_BUILD *为'选项add_custom_command'仅在Visual Studio中受支持,其他情况等于* PRE_LINK *。但* PRE_LINK *不能用于自定义目标(非库和非可执行),如'add_jar'创建。 “有什么办法可以做类似的事情吗?” - “类似的东西”太模糊了......你能提供一个你需要这个功能的例子吗? – Tsyvarev

+0

感谢您的评论!我想先生成一些java文件,然后将其添加到我的jar文件中。我能解决这个问题。 – loz

+0

所以你的问题文章描述了[XY问题](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem):* PRE_BUILD *不用于生成源文件,你的回答描述正确的方式来做到这一点。 – Tsyvarev

回答

0

我解决了这个问题,我不得不在add_custom_command上使用输出参数。基本上我想生成一些java文件,并将其添加到我的jar。这里的步骤,我做了什么:

add_library(MyLib ${SRC}) 

add_custom_command(
    OUTPUT "${PATH}/${file}.java" 
    COMMAND ${ANDROID_HOME}/build-tools/22.0.1/aidl "${PATH}/${file}.aidl" "${PATH}/${file}.java" 
) 

add_jar(MyLib_java 
     SOURCES ${JAVA_SRC} "${PATH}/${file}.java" 
     OUTPUT_DIR ${CMAKE_BINARY_DIR}/lib 
     ) 

add_dependencies(MyLib_java MyLib)