ใน CMake ฉันต้องการสร้างไดเรกทอรีหากยังไม่มีอยู่ ฉันจะทำสิ่งนี้ได้อย่างไร
ใน CMake ฉันต้องการสร้างไดเรกทอรีหากยังไม่มีอยู่ ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
คุณต้องการสร้างไดเรกทอรีเมื่อใด
เพื่อสร้างไดเรกทอรีเมื่อ 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})
เพื่อสร้างไดเรกทอรีในเวลาติดตั้ง
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})
นอกจากการตอบกลับของ Chin Huang คุณยังสามารถทำสิ่งนี้ได้ในเวลาต่อไปนี้ด้วยadd_custom_command
:
add_custom_command(TARGET ${target_name} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E make_directory ${directory})
นอกจากนี้คุณยังสามารถเปลี่ยนช่วงเวลาเมื่อสร้างไดเรกทอรีของคุณด้วยPRE_BUILD
| PRE_LINK
| POST_BUILD
พารามิเตอร์