首页 > 解决方案 > CMake SWIG 生成的文件安装和创建 jar

问题描述

我在做两件事时遇到了麻烦,希望有任何帮助:

1. 获取 SWIG 生成的文件列表(在本例中为 java 文件)。

我可以访问/更改输出目录是什么。但我需要一个 java 文件的列表。我看到人们这样做的唯一方法是在构建时间之后使用一些自定义命令。我希望有一种更现代的 cmake 方法。

我试图使用该属性SWIG_SUPPORT_FILES,但由于某种原因它缺少一个 java 文件。

2. 将共享库(javaExample 目标)放入 jar 中。

CMakeLists.txt:

find_package(SWIG REQUIRED)
include(${SWIG_USE_FILE})

find_package(Java REQUIRED)
find_package(JNI REQUIRED)
include(UseJava)

set_property(SOURCE java.i PROPERTY CPLUSPLUS ON)

swig_add_library(javaExample
  TYPE SHARED
    LANGUAGE java
    SOURCES java.i)

set_property(TARGET javaExample PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES TRUE)
target_include_directories(javaExample PRIVATE ${JNI_INCLUDE_DIRS})
target_link_libraries(javaExample PRIVATE api)

add_jar(SDK
  #Swig generated java files
)

install_jar(SDK .)
install(TARGETS javaExample) # Would like to put this into the jar

标签: c++ccmakejava-native-interfaceswig

解决方案


推荐阅读