2017-06-06 41 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)