CMakeLists использует переменные для определения местоположения источника / включения - PullRequest
0 голосов
/ 03 января 2019

У меня есть проект AndroidStudio с файлами 'C'. Я могу скомпилировать и запустить как есть.

Мои нативные файлы находятся в

  • SRC / главная / JNI / АЕС
  • SRC / главная / JNI / libjpeg
  • SRC / Главный / JNI / smuglib

Я пытаюсь переместить источник в местоположение, внешнее по отношению к проекту студии Android, чтобы я мог использовать его из нескольких мест / проектов, чтобы избежать цикла копирования / вставки / ошибки.

Я определил путь включения в 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', чтобы я мог использовать ее как в списке включений, так и в списке источников?

я пробовал вариации на set (aes_src, src / main / jni / aes)

, но использование его как $ {aes_src} либо в операторе include path, либо в списке источников дает мне всевозможные тайные ошибки, которые я затрудняюсь понять.

Я сгенерирую некоторые из них и включу их, если люди думают, что это поможет, но я, вероятно, лаю не тот котелок рыбы при таком подходе.

Есть ли лучший подход?

1 Ответ

0 голосов
/ 03 января 2019

Это set(VAR_NAME item1 item2 item3). Запятые не нужны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...