如何在CMAKEList中执行外部批处理文件

时间:2019-01-07 19:24:53

标签: cmake

假设-我有一个Generator.bat文件,它将生成.cpp / .hpp文件

我需要写一个CMakeList.txt

1。我有几个Java文件说(A.java和B.Java) 2.如果任何Java文件发生更改,那么我们需要执行Generator.bat并重新生成A.cpp和B.cpp以及A.hpp和B.hpp文件

  1. 我需要从生成的A.cpp和B.cpp和C.cpp(由用户定义)和D.cpp(由用户定义)生成目标DLL

  2. 我们需要生成目标DLL A)如果有任何用户定义的.cpp文件,请说D.cpp     B)如果任何.java文件更改。然后执行步骤2并重新生成.DLL

1 个答案:

答案 0 :(得分:2)

您可以使用add_custom_command来教CMake如何生成文件:

add_custom_command(OUTPUT A.cpp A.hpp B.cpp B.hpp
                   DEPENDS A.java B.java
                   COMMAND generator.bat)

add_library(target SHARED A.cpp B.cpp C.cpp D.cpp)

您也可以使该库也依赖于A.hpp和B.hpp,但是您说generator.bat仍然会重新生成它们,因此不需要...