CMake: navegando em vários compiladores para um único idioma
CMake segue o princípio de atribuir um único CMAKE_CXX_COMPILER para todos os arquivos de origem C em um Arquivo CMakeLists.txt. Essa abordagem apresenta desafios ao tentar combinar host e compilação cruzada em um único arquivo CMakeLists.txt.
O dilema: vários compiladores para o mesmo idioma
Conforme a questão original, o cerne da questão está em encontrar uma solução para utilizar vários compiladores para a mesma linguagem, especificamente C .
O Compromisso: Limitado Opções
Infelizmente, o design do CMake não atende prontamente a esse requisito. O CMake mantém um único conjunto de propriedades do compilador que se aplicam a todos os destinos em um arquivo CMakeLists.txt. Conseqüentemente, para empregar vários compiladores, é necessário executar o CMake duas vezes.
Alternativas: comandos personalizados ou arquivos separados
Uma solução alternativa envolve o uso de comandos personalizados, essencialmente criando scripts de shell glorificados. No entanto, esta abordagem se desvia do objetivo desejado.
Uma solução mais limpa envolve separar os processos de compilação em arquivos CMakeLists.txt distintos. Embora evite a ligação entre diferentes arquiteturas, elimina a necessidade de código redundante. Para manter a consistência, seções comuns dos scripts CMake podem ser extraídas em arquivos separados e incluídas por meio da função include(). A desvantagem dessa abordagem é a perda da compilação de comando único. Para atenuar isso, um script wrapper pode ser criado em uma linguagem de script preferida para invocar os comandos CMake necessários.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3