CMakeLists使用变量定义源/包含位置

时间:2019-01-03 14:07:57

标签: cmake

我有一个包含“ C”文件的AndroidStudio项目。我可以按原样编译和运行。

我的本​​机文件位于

  • src / main / jni / aes
  • src / main / jni / libjpeg
  • src / main / jni / smuglib

我正在尝试将源移动到Android Studio项目外部,以便可以在多个位置/项目中使用它,以避免复制/粘贴/错误循环。

我已经在CMakeLists.txt中定义了包含路径

include_directories(src/main/jni/aes src/main/jni/libjpeg src/main/jni/smuglib)

并在add_library命令中指定了文件

add_library( # Sets the name of the library.
         native-lib

         # Sets the library as a shared library.
         SHARED

         # Provides a relative path to your source file(s).
            src/main/jni/aes/aes.c
            src/main/jni/smuglib/smuglib.c
.... etc

如何设置变量以引用这些路径,例如'src / main / jni / aes',以便可以在包含列表和源列表中使用它? < / p>

我尝试了     设置(aes_src,src / main / jni / aes)

但是在include path语句或源列表中将其用作$ {aes_src}会给我带来各种令人难以理解的奥秘错误。

如果人们认为这会有所帮助,我将生成其中的一些并将其包括在内,但是我很可能会用这种方法吠叫错鱼。

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

它是set(VAR_NAME item1 item2 item3)。不需要逗号。