2015-03-03 5 views
12

में मैंने देखा है कि CMake इस तरह की एक निर्देशिका में मध्यवर्ती फाइल शब्दों में कहें, .obj की तरह:(.obj की तरह) मध्यवर्ती फ़ाइलों के लिए निर्देशिका सेट CMake

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

वहाँ कुछ है करने के लिए एक रास्ता है इस तरह:

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

और

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

पल के लिए, मैं 2 अलग निर्देशिका का इस्तेमाल किया हर बार उत्पन्न करने के लिए मेरी पुस्तकालयों या डीबग और रिलीज के लिए निष्पादन योग्य। और मैं भी मंच है के बाद ...

वहाँ मध्यवर्ती files.obj के लिए CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE या CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE को कुछ इसी तरह ...

है?

मैं भी कोशिश /Fo है लेकिन जब मैं अपने विन्यास के साथ इस ध्वज, CMake ओवरराइड प्रयोग किया है:

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

कृपया, किसी एक समाधान है?

+0

दो निर्माण निर्देशिका का उपयोग करना मेरे लिए सबसे प्राकृतिक तरीका हो रहा है। – usr1234567

उत्तर

1

आप नहीं कर सकते हैं - कम से कम इस समय, 0014999: Changing Intermediate Directory of Visual Studio 2012 सुविधा का अनुरोध देखते हैं - अपने मामले NMake में तरह - - CMake में और makefile जनरेटर के लिए मध्यवर्ती निर्देशिका बदल आप केवल एक build configuration type द्विआधारी निर्माण उत्पादन प्रति निर्देशिका हो सकता है।

इसलिए @ usr1234567 ने टिप्पणी की है, दो निर्माण निर्देशिकाओं का उपयोग करना सही बात है।

या - यदि यह एक विकल्प है - विजुअल स्टूडियो बहु-कॉन्फ़िगरेशन जनरेटर का उपयोग करें। यह बिल्कुल मध्यवर्ती निर्देशिका का उपयोग करता है आप का सुझाव दिया है:

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

Nmake बनाम कमांड लाइन

पर दृश्य स्टूडियो समाधान मतभेद भी आवरण स्क्रिप्ट मैं सामान्य रूप से बनाने के लिए उपयोग में देखा जा सकता मेरी सीएमके आधारित सिस्टम।

तो NMake कुछ इस तरह दिखेगा:

@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" 

और इस तरह मेरी पसंदीदा दृश्य स्टूडियो समाधान संस्करण कुछ:

@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" 

अतिरिक्त संदर्भ

संबंधित मुद्दे