CMake में, आप का उपयोग करCMake: वर्तमान निर्देशिका के रूप में, निरपेक्ष पथ में बदलें निर्माण निर्देशिका के साथ रिश्तेदार पथ
get_filename_component(ABSOLUTE_PATH ${RELATIVE_PATH} ABSOLUTE)
हालांकि, इस तरह के रूप में ../../other_program/
रास्तों स्रोत निर्देशिका पर आधारित होते हैं निरपेक्ष पथ संबंधित पथ परिवर्तित कर सकते हैं (यानी निर्देशिका जहां CMakeLists.txt
फाइलें हैं), निर्देशिका निर्देशिका (यानी निर्देशिका cmake
कहा जाता है)। यदि आप एक कमांड लाइन विकल्प के रूप में एक सापेक्ष पथ देते हैं तो इससे कुछ भ्रम पैदा हो सकता है।
क्या get_filename_component
बताने का कोई तरीका है कि वर्तमान स्रोत डीआईआर के बजाय वर्तमान बाइनरी डीआईआर पर सापेक्ष पथ का आधार होना चाहिए?
हाँ, यह समाधान CMake संस्करणों 3.4 और उच्चतर के लिए आदर्श है। पुराने सीएमके संस्करणों के लिए (संस्करण 2.6 तक) mike.did का समाधान इसे संभालने का सबसे अच्छा तरीका है। –