使用 GLOB_RECURSE 和 add_jar

Using GLOB_RECURSE with add_jar

如何正确使用 GLOB_RECURSEadd_jar 来指定通配符? (Class 名字是 DestroyTesting) 我正在尝试使用 CMake 生成一个 jar。

我的CmakeLists.txt

project(helloJavaNativeHeaders Java CXX)

cmake_minimum_required (VERSION 3.15)
# set(CMAKE_VERBOSE_MAKEFILE 1)

include (CTest)
# set(TARGET_CREATE_JAR CreateJarPackage)
find_package(Java COMPONENTS Development)
include (UseJava)

file(GLOB_RECURSE javasources
    ${CMAKE_CURRENT_SOURCE_DIR}/testingthis/mytest/*.java
)

add_jar(DestroyTesting javasources)

但这给了我以下错误:

...
[build] [1/1 100% :: 0.121] cmd.exe /C "cd /D D:\git\cmake\Tests\JavaNativeHeaders\out\build\Droid-x86-Debug\CMakeFiles\DestroyTesting.dir && "C:\Program Files\Android\jdk\microsoft_dist_openjdk_1.8.0.25\bin\jar.exe" -cf D:/git/cmake/Tests/JavaNativeHeaders/out/build/Droid-x86-Debug/DestroyTesting.jar @java_class_filelist && "C:\Program Files\CMake\bin\cmake.exe" -
...
[build] 'c' flag requires manifest or input files to be specified!

我的java_class_filelist确实是空的

有效的是直接使用:

add_jar(DestroyTesting ${CMAKE_CURRENT_SOURCE_DIR}/testingthis/mytest/DestroyTesting.java)

file(GLOB_RECURSE)命令

file(GLOB_RECURSE javasources
    ${CMAKE_CURRENT_SOURCE_DIR}/testingthis/mytest/*.java
)

创建一个包含 Java 文件列表的变量 javasources。要访问该变量的 contents,您必须使用 ${} variable reference 语法:

add_jar(DestroyTesting ${javasources})