How to get aktuelle Konfiguration (Release/Debug) in CMake für Visual Studio

Bin ich auf Visual Studio 2013, CMake 3.5.1, Windows 10. Ich bin versucht zu kopieren einiger Dateien via CMake wie folgt:

file(COPY ${IMAGES} DESTINATION ${CMAKE_BINARY_DIR}/bin/Release)

Ist es möglich, Sie zu ersetzen "Release" mit einer variable, die für die Konfiguration wie:

file(COPY ${IMAGES} DESTINATION ${CMAKE_BINARY_DIR}/bin/${Variable})

Versuchte ich

file(COPY ${IMAGES} DESTINATION ${CMAKE_BINARY_DIR}/bin/${CMAKE_BUILD_TYPE})

aber CMAKE_BUILD_TYPE ist ein leerer string, wenn ich Nachricht drucken Sie es aus, auch habe ich versucht

file(COPY ${IMAGES} DESTINATION ${CMAKE_BINARY_DIR}/bin/$<CONFIGURATION>)

aber aus irgendeinem Grund Datei, Befehl kann nicht entziffern $<CONFIGURATION> in der Erwägung, dass Befehl wie

add_custom_target(run COMMAND ${CMAKE_BINARY_DIR}/bin/$<CONFIGURATION>/Test.exe)

können. Was ist der richtige Weg, zu extrahieren, ob visual studio ist derzeit gebaut im Release oder Debug in CMake?

  • Ich kann immer noch nicht verstehen: ich habe einen VS-Lösung durch den Aufruf cmake -G "Visual Studio 15 2017 Win64" .. und jetzt habe ich eine *.sln-Projekt mit CMAKE_CONFIGURATION_TYPES=Debug;Release;MinSizeRel;RelWithDebInfo (es ist ziemlich standard, denke ich). Ich bin in der Lage, ändern Sie die Konfiguration mithilfe von configuration manager (oder dropdown). Wie kann ich wieder an aktuell ausgewählte Konfiguration in CMakeLists.txt?
  • Sie weiß nicht, was ausgewählt ist, während CMake config-Zeit, d.h. vor der Generierung des sln-Datei. add_custom_target funktioniert, weil die custom target wird aufgerufen, nachdem die sln-Datei ist, die manuell oder programmgesteuert.
InformationsquelleAutor user3667089 | 2016-09-01
Schreibe einen Kommentar