eutilizando makefile personalizado para biblioteca estática com cmake
Acho que essa seria uma pergunta genérica sobre a inclusão de bibliotecas com makefiles existentes no cmake; mas aqui está o meu contexto -
Estou tentando incluirscintilla
em outro projeto do CMake, e eu tenho o seguinte problema:
o Linux, o scintilla tem um makefile (digamos) no${CMAKE_CURRENT_SOURCE_DIR}/scintilla/gtk
diretório; se você executarmake
nesse diretório (como de costume), você obtém um${CMAKE_CURRENT_SOURCE_DIR}/scintilla/bin/scintilla.a
file - que (eu acho) é a biblioteca estátic
Agora, se eu tentasse usar o @ do cmaADD_LIBRARY
, Eu teria que especificar manualmente as fontes do scintilla no cmake - e prefiro não mexer com isso, já que já tenho um makefile. Então, eu prefiro chamar o scintilla habitualmake
- e depois instrua o CMAKE a se referir de alguma forma ao @ resultanscintilla.a
. Acho que isso serianã garantir compatibilidade entre plataformas - mas observe que atualmente as plataformas não são um problema para mim; Gostaria apenas de criar o scintilla como parte deste projeto que já usa o cmake, apenas no Linux)
Então, eu tentei um pouco com isso:
ADD_CUSTOM_COMMAND(
OUTPUT scintilla.a
COMMAND ${CMAKE_MAKE_PROGRAM}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/scintilla/gtk
COMMENT "Original scintilla makefile target" )
... mas, add_custom_command adiciona um " target sem saída "; portanto, estou tentando várias abordagens para desenvolver isso, todas as quais falham (erros dados como comentário):
ADD_CUSTOM_TARGET(scintilla STATIC DEPENDS scintilla.a) # Target "scintilla" of type UTILITY may not be linked into another target.
ADD_LIBRARY(scintilla STATIC DEPENDS scintilla.a) # Cannot find source file "DEPENDS".
ADD_LIBRARY(scintilla STATIC) # You have called ADD_LIBRARY for library scintilla without any source files.
ADD_DEPENDENCIES(scintilla scintilla.a)
Obviamente, cito um noob com o cmake - então, é possível tercmake
executar um makefile pré-existente e "capturar" seu arquivo da biblioteca de saída, para que outros componentes do projeto cmake possam ser vinculados a el
Many obrigado por todas as respostas,
Felicidades
EDIT: possível duplicado:Cake: como dependo da saída de um destino personalizado? - Estouro de pilha - no entanto, aqui a quebra parece ser devida à necessidade de ter umbibliotec que o resto do projeto cmake reconheceria ...
Outros relacionados:cmake - adicionando um comando personalizado com o nome do arquivo como destino - Stack Overflow; no entanto, ele cria especificamente um executável a partir dos arquivos de origem (que eu queria evitar) ..