Articles

Em cmake, o que é um “projeto”?

um projeto logicamente agrupa um número de alvos (ou seja, bibliotecas, executáveis e passos personalizados de compilação) em uma coleção auto-contida que pode ser construída por conta própria.

Na prática, isso significa que, se você tiver um project comando em um CMakeLists.txt, você deve ser capaz de executar o CMake do arquivo e o gerador deve produzir algo que é maravilhoso. Na maioria dos codebases, você terá apenas um único projeto por construção.

Note No entanto que você pode nidificar vários projetos. Um projeto de nível superior pode incluir uma subdiretoria que é, por sua vez, outro projeto auto-contido. Neste caso, o comando project introduz escopo adicional para certos valores. Por exemplo, a variável PROJECT_BINARY_DIR irá sempre apontar para o diretório binário raiz do projeto atual. Compare isso com CMAKE_BINARY_DIR, que sempre aponta para o diretório binário do projeto de nível superior. Note também que certos geradores podem gerar arquivos adicionais para projetos. Por exemplo, os geradores de estúdio Visual criarão um arquivo de solução .sln para cada subprojeto.

utilize sub-projectos se a sua base de dados de código for muito complexa e se necessitar que os utilizadores sejam capazes de construir determinados componentes isoladamente. Isso lhe dá um mecanismo muito poderoso para estruturar o sistema de construção. Devido ao aumento da codificação e manutenção de sobrecarga necessária para fazer os vários sub-projetos verdadeiramente auto-contido, eu aconselharia apenas ir por essa estrada se você tem um caso de uso real para ele. Dividir a base de código em diferentes alvos deve ser sempre o mecanismo preferido para estruturar a construção, enquanto os sub-projetos devem ser reservados para os casos raros em que você realmente precisa fazer um subconjunto de alvos auto-contidos.

Deixe uma resposta

O seu endereço de email não será publicado.