Интересно, как найти/связать библиотеку без FIND_PACKAGE.
Предположим, что у нас есть "личная" библиотека, называемая testlib:
/perso/testlib/include/testlib1.h
/perso/testlib/include/testlib2.h
/perso/testlib/lib/testlib1.a
/perso/testlib/lib/testlib2.a
Как связать его с CMake?
1) Какие функции можно связать непосредственно в коде CMakeLists.txt?
2) Как разрешить пользователю выбирать, где находятся файлы?
3) Мне трудно понять, что интерпретируется и что это не CMake. Например, если вы определяете переменную ${MYVARIABLE_INCLUDE_DIR} или ${MYVARIABLE_LIBRARIES}, это "INCLUDE_DIR" или "LIBRARIES" расширение, интерпретируемое CMake или нет разницы, если я вызываю эту переменную ${MYVARIABLE_INCDIR}?
4) Как выполнять те же процедуры (включая "личную" библиотеку), если у вас есть библиотека, содержащая десять файлов библиотеки или больше в каталоге lib?
5) И, наконец, когда вы введете TARGET_LINK_LIBRARIES(myexecutable gmp)
, откуда вы знаете, что имя библиотеки "gmp". Почему бы не "Gmp" или "GMP"? Является ли имя библиотеки помещенным в эту функцию равным файлу .a минус "lib" и ".a"? Например libgmp.a → gmp? Если я хочу связать библиотеку libtestlolexample.a, мне нужно набрать TARGET_LINK_LIBRARIES(myexecutable testlolexample)
?
Большое спасибо.