personalizadas para fuentes font ejemplo descargar dafont agregar cmake

cmake - font - fuentes html para web



Cómo incluir fuentes seleccionadas del proyecto de un tercero en CMake (1)

CMake intentará ver si existen archivos fuente para una biblioteca durante el paso de configuración, pero como experimentó, el paso de descarga del proyecto externo no se realiza durante la configuración.

Puede decirle a CMake que no se preocupe por los archivos que no existen, configurando la propiedad GENERATED en ellos:

set_source_files_properties(${FREERTOS_SOURCES} PROPERTIES GENERATED TRUE)

Debería seguir agregando el proyecto externo como una dependencia de su biblioteca para asegurarse de que se descargue y extraiga primero, pero en su ejemplo el comando era incorrecto; debería ser:

add_dependencies(freertos freertos_download)

entonces el objetivo que depende de algo es el primer parámetro y sus dependencias se enumeran a continuación.

Tengo un proyecto basado en CMake que depende de fuentes externas que necesito descargar y extraer. Decidí usar ExternalProject_Add para hacer parte de esto. La pregunta es cómo hacer que una regla add_library dependa de algunos de los archivos extraídos.

Esto es lo que tengo hasta ahora:

# This line is needed for the ExternalProject command to work. # It references the the Module in the cmake distro include(ExternalProject) # Download and extract the FreeRTOS core sources set(FREERTOS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/FreeRTOS") set(FREERTOS_URL "http://downloads.sourceforge.net/project/freertos/FreeRTOS/V6.0.2/FreeRTOSV6.0.2.zip") set(FREERTOS_CORE_DIR ${FREERTOS_DIR}/Source) set(FREERTOS_SOURCES "${FREERTOS_CORE_DIR}/croutine.c" ${FREERTOS_CORE_DIR}/list.c ${FREERTOS_CORE_DIR}/queue.c ${FREERTOS_CORE_DIR}/tasks.c ${FREERTOS_CORE_DIR}/portable/MemMang/heap_3.c) include_directories(${FREERTOS_CORE_DIR}/include) add_library(freertos STATIC ${FREERTOS_SOURCES}) ExternalProject_Add(freertos_download DOWNLOAD_DIR ${CMAKE_CURRENT_SOURCE_DIR} SOURCE_DIR ${FREERTOS_DIR} URL ${FREERTOS_URL} CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "")

NOTA: deshabilité los pasos de configuración, compilación e instalación en el proyecto externo.

Como esperaba, porque no he especificado las dependencias, obtengo el siguiente error

-- Configuring done CMake Error at third-party/CMakeLists.txt:20 (add_library): Cannot find source file: /home/dushara/prj/sw/djetk-demo/djetk/third-party/FreeRTOS/Source/croutine.c Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp .hxx .in .txx

Intenté usar

add_dependencies(freertos_download freertos)

Pero eso no funcionaría.

Idealmente, me gustaría que todos los elementos en FREERTOS_SOURCES dependan de la fase de extracción del proyecto externo. ¿Alguna idea sobre cómo puedo lograr esto?