CMake में डायरेक्टरी बनाना


143

सीएमके में, मैं एक निर्देशिका बनाना चाहता हूं यदि यह पहले से मौजूद नहीं है। मैं यह कैसे कर सकता हूँ?

जवाबों:


250

आप निर्देशिका कब बनाना चाहते हैं?

सिस्टम जनरेशन पर

एक निर्देशिका बनाने के लिए जब CMake बिल्ड सिस्टम उत्पन्न करता है,

file(MAKE_DIRECTORY ${directory})

निर्माण समय पर

में add_custom_command()आदेश (जो उत्पन्न निर्माण प्रणाली के लिए एक कस्टम निर्माण नियम कहते हैं), और add_custom_target()आदेश (जो कोई उत्पादन के साथ एक लक्ष्य कहते हैं तो वह हमेशा का निर्माण किया जाएगा), तो आप का निर्माण समय में निष्पादित करने के लिए आदेशों निर्दिष्ट करें। कमांड निष्पादित करके एक निर्देशिका बनाएं ${CMAKE_COMMAND} -E make_directory। उदाहरण के लिए:

add_custom_target(build-time-make-directory ALL
    COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})

स्थापित समय पर

स्थापित समय पर एक निर्देशिका बनाने के लिए,

install(DIRECTORY DESTINATION ${directory})

सक्सेस और क्विक। एकदम से निशाना लगाता है! धन्यवाद।
truthadjustr

25

स्थापित समय पर एक निर्देशिका बनाने के लिए,

install(DIRECTORY DESTINATION ${directory})

ये दोनों कॉन्फ़िगर समय पर चलेंगे:

file(MAKE_DIRECTORY ${directory})
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})

निर्माण के दौरान बनाने के लिए, कस्टम लक्ष्य का उपयोग करें:

add_custom_target(mytargetname ALL COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})

10

चिन हुआंग के जवाब के अलावा, आप इसके साथ निर्माण समय पर भी कर सकते हैं add_custom_command:

add_custom_command(TARGET ${target_name} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})

आप उस क्षण को भी बदल सकते हैं, जब आपकी निर्देशिका बनाई जाती है PRE_BUILD| PRE_LINK| POST_BUILDमापदंडों।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.