Oi,
Quero usar os arquivos .h
e .c.
criados pelo webservice em meu projeto, mas não quero armazenar cada arquivo de linha de ~ 10k em meu repo.
Existe uma maneira de incluir isso e "construir" via CMAKE e ter os arquivos necessários gerados (semelhante ao GLFW)?
Obrigado pelo seu projeto
Sim é possivel. Crie um subdiretório em seu projeto e adicione CMakeLists.txt
nele junto com os arquivos:
cmake_minimum_required(VERSION 3.0)
project(Glad)
add_library(glad include/glad/glad.h src/glad.c)
target_include_directories(glad PUBLIC include/)
Em seguida, em seu arquivo principal CMakeLists.txt
coloque:
add_subdirectory(glad/)
target_link_libraries(<your target> PRIVATE glad)
Ou algo assim. Existem várias maneiras de se conseguir isso.
@Shimmen obrigado pela explicação!
Você também pode consultar o problema https://github.com/Dav1dde/glad/issues/174, onde algumas pessoas incríveis adicionaram outras maneiras de fazer isso.
Pessoalmente, eu incluiria os arquivos gerados, os símbolos devem ser classificados de forma que se você atualizar os arquivos gerados em um ponto, você obterá diferenças mínimas, também significa que você não tem uma dependência de recursos externos e Python.
Acabei de perceber que não respondi à pergunta original! Pessoalmente, gosto de manter as coisas boas fora do meu diretório de código-fonte e fora da etapa de construção do meu executável principal, então é isso que meu exemplo faz.
Presumo que já tenha respondido, se não, sinta-se à vontade para reabrir.
Eu entendo que é comum colocar os arquivos gerados em seu diretório de inclusão, mas existe uma maneira de gerar isso ao construir o CMake?
Não acho que exigir Python seja tão grande assim, é um lugar muito comum. Ter a opção é pelo menos legal.
@DerekCresswell sim, você pode executar o gerador em um build, há um CMakeLists.txt
na raiz deste repositório que deve permitir que você faça isso (iirc através de add_subdirectory
).
Também tenho trabalhado em glad2, que tem um novo CMakeLists.txt
com um exemplo aqui .
Comentários muito úteis
Sim é possivel. Crie um subdiretório em seu projeto e adicione
CMakeLists.txt
nele junto com os arquivos:Em seguida, em seu arquivo principal
CMakeLists.txt
coloque:Ou algo assim. Existem várias maneiras de se conseguir isso.