visual tamaño studio letra fuente code cambiar c++ visual-studio-2010 cmake

c++ - tamaño - En CMake, ¿cómo trabajo con los directorios de depuración y lanzamiento que Visual Studio 2010 intenta agregar?



cambiar fuente visual studio code (2)

Depende un poco de lo que desee con precisión, pero le recomendaría echar un vistazo a las propiedades de destino disponibles, similar a esta pregunta .

Depende un poco de lo que quieras exactamente. Para cada destino, puede establecer manualmente las propiedades library_output_directory o runtime_output_directory .

if ( MSVC ) set_target_properties( ${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY ${youroutputdirectory} ) set_target_properties( ${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_DEBUG ${youroutputdirectory} ) set_target_properties( ${targetname} PROPERTIES LIBRARY_OUTPUT_DIRECTORY_RELEASE ${youroutputdirectory} ) # etc for the other available configuration types (MinSizeRel, RelWithDebInfo) endif ( MSVC )

También puedes hacer esto globalmente para todos los subproyectos, usando algo como esto:

# First for the generic no-config case (e.g. with mingw) set( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${youroutputdirectory} ) set( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${youroutputdirectory} ) set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${youroutputdirectory} ) # Second, for multi-config builds (e.g. msvc) foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} ) string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG ) set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${youroutputdirectory} ) set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${youroutputdirectory} ) set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${youroutputdirectory} ) endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )

Estoy tratando de construir uno de mis proyectos basados ​​en CMake de hace un par de años con Visual Studio 2010 y tengo problemas con el directorio de salida de un proyecto. Visual Studio siempre ha tenido mucho interés en agregar los subdirectorios Debug / y Release / al generar binarios, y por varias razones siempre he estado muy interesado en eliminarlos, ahora que estoy usando una nueva versión de CMake y una nueva versión de Visual Studio, la vieja solución en CMake ya no parece funcionar, y estoy buscando encontrar la "nueva" forma de hacerlo.

Con una versión anterior de CMake (2.6) y una versión anterior de Visual Studio (2008), usé lo siguiente:

IF(MSVC_IDE) # A hack to get around the "Debug" and "Release" directories Visual Studio tries to add SET_TARGET_PROPERTIES(${targetname} PROPERTIES PREFIX "../") SET_TARGET_PROPERTIES(${targetname} PROPERTIES IMPORT_PREFIX "../") ENDIF(MSVC_IDE)

Esto funcionó bien, pero ya no parece hacer el truco. ¿Alguien sabe de una solución similar pero más actualizada que funcione con CMake 2.8.6 y Visual Studio 2010?


En las versiones actuales de CMake, puede utilizar una expresión generadora para LIBRARY_OUTPUT_DIRECTORY para evitar el sufijo específico de la configuración.

Acabo de agregar $<$<CONFIG:Debug>:> , que siempre se expande a nada, a la mía. Esto parece un poco extraño, pero funciona, y no es tan raro que no puedas explicarlo con un breve comentario:

# Use a generator expression so that the specified folder is used directly, without any # configuration-dependent suffix. # # See https://cmake.org/cmake/help/v3.8/prop_tgt/LIBRARY_OUTPUT_DIRECTORY.html set_target_properties(library PROPERTIES LIBRARY_OUTPUT_DIRECTORY my/folder/$<$<CONFIG:Debug>:>)