2012-03-19 15 views
7

में एकाधिक परियोजनाओं के साथ काम करना मैं वर्तमान में सीएमके पर एक दृश्य सी ++ प्रोजेक्ट (जिसमें इसके अंदर एकाधिक सबप्रोजेक्ट्स) में संक्रमण पर काम कर रहा हूं।सीएमके

एक बात है जो मुझे यकीन नहीं है - मूल रूप से, शीर्ष स्तर के CMakeLists.txt फ़ाइल से उपप्रोजेक्ट्स को शामिल करने के लिए, मैं बस add_subdirectory कमांड का उपयोग करता हूं, और उन निर्देशिकाओं का संदर्भ देता हूं जो इन विभिन्न सबप्रोजेक्ट्स को संग्रहीत करते हैं।

हालांकि, मेरे पास एक परियोजना है जो में निर्देशिका में मेरे शीर्ष स्तर के CMakeLists.txt फ़ाइल के रूप में है, और इसलिए मुझे आश्चर्य है कि इस फ़ाइल को किसी भी तरह से शामिल करना अभी भी संभव है? CMake मुझे मौजूदा PROJECT_BINARY_DIR पर add_subdirectory कॉल करने के लिए (नीचे देखें) अनुमति नहीं देता:

add_subdirectory(${PROJECT_BINARY_DIR}) #not allowed in CMake 

मैं एक और तरीका नहीं सोच सकते हैं मुझे मेरे CMake निर्माण में इस subproject शामिल करने के लिए। कोई विचार?

उत्तर

12

सभी add_subdirectory इसमें एक CMDLists.txt फ़ाइल के साथ एक उपनिर्देशिका जोड़ता है, और इसलिए यह आपको वर्तमान निर्देशिका को जोड़ने की अनुमति देने के लिए समझ में नहीं आता है। आप सीधे अपनी परियोजना के उस हिस्से को CMakeLists.txt फ़ाइल में बनाने के लिए सीएमके तर्क जोड़ सकते हैं। आप तर्क अलग करने के लिए करना चाहते हैं, तो आप इसके build_project.cmake में डाल सकता है, और फिर शामिल उपयोग करते हैं,

include(build_project.cmake) 

आप जितने चाहें ही कई अन्य CMake फ़ाइलों को शामिल कर सकते हैं और CMake कोड का मूल्यांकन किया जाएगा कि जैसे कि यह इनलाइन चिपकाया गया था। तो सभी सामान्य add_executable और समान आदेश काम करेंगे।