smart - C++ CMake(agregar archivos no construidos)
solidity español (2)
Hola he creado este tipo de función:
cmake_minimum_required(VERSION 3.5) # cmake_parse_arguments needs cmake 3.5 ## # This function always adds sources to target, but when "WHEN" condition is not meet # source is excluded from build process. # This doesn''t break build, but source is always visible for the project, what is # very handy when working with muti-platform project with sources needed # only for specific platform # # Usage: # target_optional_sources(WHEN <condition> # TARGET <target> # <INTERFACE|PUBLIC|PRIVATE> [items2...] # [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...]) ## function(target_optional_sources) set(options OPTIONAL "") set(oneValueArgs WHEN TARGET) set(multiValueArgs PUBLIC PRIVATE INTERFACE) cmake_parse_arguments(target_optional_sources "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) target_sources(${target_optional_sources_TARGET} PUBLIC ${target_optional_sources_PUBLIC} PRIVATE ${target_optional_sources_PRIVATE} INTERFACE ${target_optional_sources_INTERFACE}) if (NOT ${target_optional_sources_WHEN}) set_source_files_properties(${target_optional_sources_PUBLIC} PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties(${target_optional_sources_PRIVATE} PROPERTIES HEADER_FILE_ONLY TRUE) set_source_files_properties(${target_optional_sources_INTERFACE} PROPERTIES HEADER_FILE_ONLY TRUE) endif(NOT ${target_optional_sources_WHEN}) endfunction(target_optional_sources)
Por un lado funciona como se desea, Por otro lado, se informa de algún error , por lo que todavía estoy trabajando en eso. . Resulta ser un problema cómo usé la función, no cómo está escrita. Ahora funciona perfectamente.
Estoy usando cmake para configurar mi proyecto. Visualizo los archivos del proyecto usando qtcreator que lee el CMakeLists.txt. Tengo algunos archivos de texto (no-código: archivos de configuración, registro, ...) y me gustaría agregarlos a mi proyecto cmake sin (por supuesto) compilarlos / enlazarlos. Es posible ? El objetivo principal es abrirlos automáticamente en el árbol de mi proyecto con qtcreator y editarlos ... Gracias por la ayuda.
Debería poder simplemente agregarlos a su lista de fuentes en cualquier llamada add_executable
o add_library
sea apropiada y aparecerán en el IDE.
Creo que CMake usa las extensiones de los archivos para determinar si son archivos de origen reales, por lo que si los suyos tienen extensiones como ".txt" o ".log", no se compilarán.