2015-03-03 10 views
12

Widziałem że CUpewnij umieścić pliki pośrednie, jak .obj w katalogu, takich jak to:Ustaw katalog dla plików Pośredniczące (jak .obj) w CMake

project.dir/sort/of/copy/of/source/directory 

Czy istnieje sposób, aby mieć coś tak:

project.dir/Debug/ myfiles.obj |--> for my debug 

i

project.dir/Release/ myfiles.obj |--> for my release 

do chwili, użyłem 2 osobny katalog wygenerować za każdym razem moje biblioteki lub plik wykonywalny dla debugowania i wydania. A potem mam również platformę ...

Czy jest coś podobnego do CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE lub CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ...

dla pośredniego files.obj?

mam spróbować też z /Fo ale kiedy użyłem tej flagi, CUpewnij nadpisanie jego konfiguracji:

warning D9025 : overriding '/Fo;../x64/Debug/' with '/FoCMakeFiles\project.dir\src\project\main.cpp.obj'

Proszę, czy ktoś ma rozwiązanie?

+0

Korzystanie dwa katalogi kompilacji wydaje się być najbardziej naturalny sposób do mnie. – usr1234567

Odpowiedz

1

Nie można - przynajmniej na chwilę, zobaczyć 0014999: Changing Intermediate Directory of Visual Studio 2012 żądania funkcji - zmień pośrednie katalogi w CMake i generatorów Makefile - podobnie jak w przypadku NMake - można mieć tylko jeden build configuration type za binarnego katalogu wyjściowego kompilacji.

Tak, jak skomentował @ usr1234567, dobrym pomysłem jest użycie dwóch katalogów kompilacji.

Lub - jeśli jest to opcja - użyj generatora wielu konfiguracji programu Visual Studio. Robi dokładnie użyć pośrednie katalogi sugerują:

project.dir/Debug/... 
project.dir/Release/... 

nUpewnij vs Visual Studio rozwiązania w wierszu poleceń

Różnice można dostrzec także w skryptach otoki I zwykle używają budować mój Systemy oparte na CMake.

Więc NMake będzie wyglądać mniej więcej tak:

@ECHO off 
"\Program Files (x86)\Microsoft Visual Studio 14.0\vc\vcvarsall.bat" x64 
IF NOT EXIST "x64\Debug\Makefile" (
    cmake -H"." -B"x64/Debug" -DCMAKE_BUILD_TYPE=Debug -G"NMake Makefiles" 
) 
cmake --build "x64/Debug" --target "project" 
IF NOT EXIST "x64\Release\Makefile" (
    cmake -H"." -B"x64/Release" -DCMAKE_BUILD_TYPE=Release -G"NMake Makefiles" 
) 
cmake --build "x64/Release" --target "project" 

i mój preferowany Visual Studio wariantowych coś takiego:

@ECHO off 
IF NOT EXIST "x64\*.sln" (
    cmake -H"." -B"x64" -G"Visual Studio 14 2015 Win64" 
) 
cmake --build "x64" --target "project" --config "Debug" 
cmake --build "x64" --target "project" --config "Release" 

Dodatkowe informacje

Powiązane problemy