प्रलेखन से, मुझे दो चर के बीच अंतर नहीं मिलता है।
अंतर यह है कि CMAKE_PROJECT_NAME
, जड़ CMakeLists.txt से पिछले project
कॉल से नाम है, जबकि PROJECT_NAME
, परवाह किए बिना आदेश युक्त फ़ाइल का स्थान से पिछले project
कॉल से है।
अंतर निम्न परीक्षण से पहचानने योग्य है।
फ़ाइल संरचना:
|-CMakeLists.txt
\-test2
|-CMakeLists.txt
\-test3
\-CMakeLists.txt
CMakeLists.txt:
cmake_minimum_required(VERSION 3.0)
project(A)
message("< ${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
project(B)
message("< ${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
add_subdirectory(test2)
message("< ${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
project(C)
message("< ${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
test2/CMakeLists.txt:
project(D)
message("<< ${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
add_subdirectory(test3)
project(E)
message("<< ${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
test2/test3/CMakeLists.txt:
project(F)
message("<<< ${CMAKE_PROJECT_NAME}/${PROJECT_NAME}")
,210
प्रासंगिक उत्पादन होता है:
< A/A
< B/B
<< B/D
<<< B/F
<< B/E
< B/B
< C/C
उप-निर्देशिका में, हमेशा बी CMAKE_PROJECT_NAME
के लिए मूल्य है।