CMake: como vincular uma biblioteca SEM a função de busca automática FIND_PACKAGE?

Gostaria de saber como encontrar / vincular uma biblioteca sem qualquer FIND_PACKAG

Suponha que tenhamos uma biblioteca "pessoal" chamada testlib:

/perso/testlib/include/testlib1.h
/perso/testlib/include/testlib2.h
/perso/testlib/lib/testlib1.a
/perso/testlib/lib/testlib2.a

Como vinculá-lo ao CMake?

1) Quais são as funções para vinculá-lo diretamente no código do CMakeLists.tx

2) Como permitir que o usuário selecione onde estão os arquivo

3) Tenho dificuldades para entender o que é interpretado e o que não é feito pelo CMake. Por exemplo, se você definir uma variável $ {MYVARIABLE_INCLUDE_DIR} ou $ {MYVARIABLE_LIBRARIES} for "INCLUDE_DIR" ou "BIBLIOTECAS", uma extensão interpretada por CMake ou não haverá diferença se eu chamar essa variável $ {MYVARIABLE_INCDIR}?

4) Como executar os mesmos procedimentos (incluindo uma biblioteca "pessoal") se você tiver uma biblioteca que contenha dez arquivos de biblioteca ou mais no diretório li

5) E, finalmente, quando você digitaTARGET_LINK_LIBRARIES(myexecutable gmp), como você sabe que o nome da biblioteca é "gmp". Por que não "Gmp" ou "GMP"? O nome da biblioteca para colocar nessa função é igual ao arquivo .a menos "lib" e ".a"? Por exemplo libgmp.a -> gmp? Se eu quiser vincular uma biblioteca chamada libtestlolexample.a, preciso digitarTARGET_LINK_LIBRARIES(myexecutable testlolexample) ?

Muito obrigado

questionAnswers(3)

yourAnswerToTheQuestion