CMake结合SWIG生成Java代码缺失包名问题求助
解决CMake 3.16 + SWIG 4生成Java文件缺少包名的问题
针对你的场景,有两种直接的方式在CMake中传递-package参数给SWIG:
方法1:在swig_add_library中直接通过OPTIONS参数传递
修改你的CMake配置,添加OPTIONS字段指定包名参数:
swig_add_library(myLIbrary TYPE SHARED LANGUAGE java OUTPUT_DIR ./generated OUTFILE_DIR ./generated/Wrapper OPTIONS "-package com.myfoo.bar.baz" SOURCES ./mainswig.i ${SRC} )
如果需要传递多个SWIG命令行参数,可以将它们用空格分隔放在同一个字符串里,或者写成多个OPTIONS条目,比如:
OPTIONS "-package com.myfoo.bar.baz" "-warn-all"
方法2:通过set_target_properties设置SWIG_FLAGS属性
在swig_add_library定义之后,给目标设置SWIG_FLAGS属性来添加包名参数:
swig_add_library(myLIbrary TYPE SHARED LANGUAGE java OUTPUT_DIR ./generated OUTFILE_DIR ./generated/Wrapper SOURCES ./mainswig.i ${SRC} ) set_target_properties(myLIbrary PROPERTIES SWIG_FLAGS "-package com.myfoo.bar.baz" )
两种方式都能让SWIG在生成Java文件时自动添加package com.myfoo.bar.baz;语句到文件开头。
内容的提问来源于stack exchange,提问作者Alessandro L.
相关产品推荐
相关产品推荐

