में परियोजना का नाम स्वचालित रूप से निर्देशिका का उपयोग करें, मैं अपने निर्माण प्रणाली को प्रबंधित करने के लिए सीएमके का उपयोग करने में काफी नया हूं, इसलिए यदि मैं बेवकूफ हूं और यह एक बुरा विचार है, तो कृपया मुझे बताएं।सीएमके
मैं अपने cmakelists.txt फ़ाइल स्थापित करने के लिए इतना है कि जब मैं
project(...)
करते निर्देशिका का नाम स्वचालित रूप से इस परियोजना का नाम हो जाता है सक्षम होने के लिए करना चाहते हैं। मैं ऐसा इसलिए करना चाहता हूं क्योंकि मुझे एक परियोजना की पूरी निर्देशिका को दूसरे के शुरुआती बिंदु के रूप में कॉपी करने में सक्षम होना सुविधाजनक लगता है। हालांकि, हालांकि मैं हमेशा कुछ अर्थपूर्ण निर्देशिका में निर्देशिका का नाम बदलता हूं, फिर भी मैं cmakelists.txt फ़ाइल की project(name)
लाइन को बदलना भूल जाता हूं, और फिर मैं अपने निर्माण वातावरण में एक ही नाम के साथ खुली कई परियोजनाओं के साथ समाप्त होता हूं, जो भ्रमित हो जाता है।
आदर्श रूप से, यदि निर्देशिका नाम में रिक्त स्थान हैं तो उन्हें अंडरस्कोर द्वारा प्रतिस्थापित किया जाएगा।
क्या सीएमके ऐसा कर सकता है? और क्या यह किसी कारण से बुरा विचार है जिसे मैं नहीं देख रहा हूं?
यदि आप किसी अन्य निर्देशिका के अंदर एक निर्देशिका है overwise आपको कोई त्रुटि मिलती $ {CMAKE_CURRENT_LIST_DIR} बजाय $ की {} CMAKE_SOURCE_DIR का उपयोग करना चाहिए लगता है। लिंक को देखें: http://stackoverflow.com/questions/15662497/in-cmake-what-is-the-difference-between-cmake-current-source-dir-and-cmake-curr – Maks
@ मैक्स - ए उचित बिंदु, हालांकि ['CMAKE_CURRENT_SOURCE_DIR'] (https://cmake.org/cmake/help/v3.4/variable/CMAKE_CURRENT_SOURCE_DIR.html) [' CMAKE_CURRENT_LIST_DIR'] से अधिक उपयुक्त है (https://cmake.org/ cmake/help/v3.4/variable/CMAKE_CURRENT_LIST_DIR.html) चूंकि यह वर्तमान प्रोजेक्ट के लिए संसाधित किए जाने वाले CMakeLists.txt वाली निर्देशिका को संदर्भित करता है, जबकि '... LIST_DIR'' include' कॉल के साथ बदल जाएगा। – Fraser
यह मेरे लिए उपयोगी है जब मेरे पास अलग-अलग काम करने वाले पेड़ों में 2-3 अलग-अलग शाखाएं चेक की गई हैं और QtCreator में उनके बीच स्विच करना चाहते हैं - उदाहरण के लिए, स्रोत/निष्पादन की तुलना/विपरीतता के लिए। इसके बाद मुझे प्रोजेक्ट नाम के आधार पर कार्यक्रमों के आधार पर अलग-अलग स्थानों में बिल्ड जमा करने की सुविधा मिलती है, भले ही उन सभी के पास एक ही प्रोजेक्ट नाम होना चाहिए। स्थानीय रूप से, मैं अपने निर्देशिका नाम के साथ आधिकारिक परियोजना नाम को जोड़ सकता हूं ... – sage