विकी से:
CMAKE_CURRENT_SOURCE_DIR यह वह निर्देशिका है जहां वर्तमान में संसाधित CMakeLists.txt स्थित है
CMAKE_CURRENT_LIST_DIR (2.8.3 के बाद से) यह वर्तमान में संसाधित की जा रही सूची सूची की निर्देशिका है।
डॉक्स से:
CMAKE_CURRENT_SOURCE_DIR: वर्तमान में संसाधित की जा रही स्रोत निर्देशिका का पथ। स्रोत निर्देशिका के लिए यह पूर्ण पथ जो वर्तमान में cmake द्वारा संसाधित किया जा रहा है।
CMAKE_CURRENT_LIST_DIR: वर्तमान में संसाधित की जा रही सूची की पूर्ण निर्देशिका। जैसा कि CMake आपके प्रोजेक्ट में listfiles को संसाधित करता है, यह चर हमेशा उस निर्देशिका में सेट किया जाएगा जहां listfile को वर्तमान में संसाधित किया जा रहा है (CMAKE_CURRENT_LIST_FILE) स्थित है। मान में डायनेमिक स्कोप है। जब CMake एक सोर्स फ़ाइल में कमांड प्रॉसेस करना शुरू करता है तो यह इस वेरिएबल को उस डायरेक्टरी में सेट करता है जहाँ यह फाइल स्थित है। जब CMake फाइल से प्रोसेसिंग कमांड को पूरा करता है तो यह पिछले मूल्य को पुनर्स्थापित करता है। इसलिए किसी मैक्रो या फंक्शन के अंदर वेरिएबल का वैल्यू कॉल स्टैक पर सबसे नीचे एंट्री करने वाली फाइल की डायरेक्टरी है, न कि मैक्रो या फंक्शन डेफिनिशन वाली फाइल की डायरेक्टरी।
किन परिस्थितियों में ये चर अलग-अलग मूल्य धारण करेंगे?
./
?