จาก Wiki:
CMAKE_CURRENT_SOURCE_DIR นี่คือไดเร็กทอรีที่มีการประมวลผล CMakeLists.txt ในปัจจุบัน
CMAKE_CURRENT_LIST_DIR (ตั้งแต่ 2.8.3) นี่คือไดเร็กทอรีของ listfile ที่กำลังดำเนินการอยู่
จากเอกสาร:
CMAKE_CURRENT_SOURCE_DIR:พา ธ ไปยังไดเร็กทอรีต้นทางที่กำลังประมวลผล นี่คือเส้นทางแบบเต็มไปยังไดเร็กทอรีต้นทางที่กำลังประมวลผลโดย cmake
CMAKE_CURRENT_LIST_DIR:ไดเร็กทอรีแบบเต็มของ listfile ที่กำลังดำเนินการ เมื่อ CMake ดำเนินการกับ listfiles ในโปรเจ็กต์ของคุณตัวแปรนี้จะถูกตั้งค่าเป็นไดเร็กทอรีที่มี listfile ที่กำลังประมวลผลอยู่ (CMAKE_CURRENT_LIST_FILE) อยู่เสมอ ค่ามีขอบเขตแบบไดนามิก เมื่อ CMake เริ่มประมวลผลคำสั่งในไฟล์ต้นฉบับมันจะตั้งค่าตัวแปรนี้เป็นไดเร็กทอรีที่ไฟล์นี้อยู่ เมื่อ CMake เสร็จสิ้นการประมวลผลคำสั่งจากไฟล์ระบบจะคืนค่าก่อนหน้านี้ ดังนั้นค่าของตัวแปรภายในแมโครหรือฟังก์ชันจึงเป็นไดเร็กทอรีของไฟล์ที่เรียกใช้รายการด้านล่างสุดบน call stack ไม่ใช่ไดเร็กทอรีของไฟล์ที่มีมาโครหรือนิยามฟังก์ชัน
ตัวแปรเหล่านี้จะมีค่าต่างกันภายใต้สถานการณ์ใด
./
อย่างไร?