तो, वहाँ CMake
क्रम (file(COPY ...)
, configure_file(...)
और add_custom_command()
सब काम *) पर फ़ाइलें (और निर्देशिका) कॉपी करने के लिए कई तरीके हैं, लेकिन मैं अभी तक बाहर नहीं मिला है कैसे बनाने के लिए स्रोत से निर्माण निर्देशिका में कॉपी की गई फ़ाइल या निर्देशिका CPACK द्वारा जेनरेट किए गए संग्रह में दिखाई देती है। मैं यह है कि this SO answer, इसे ठीक कर के रूप में यह वास्तव में एक लक्ष्य है जो फिर एक जो इससे जुड़े स्थापित करना होगा करने के लिए नकल लिंक:फ़ाइलों की प्रतिलिपि और उन्हें एक CPack संग्रह में शामिल हैं
install(TARGET mytarget DESTINATION bin)
जबकि मैं पहचाना कि file()
और configure_file()
आदेशों एक स्पष्ट की जरूरत नहीं है एक लक्ष्य में जोड़ने के लिए रास्ता। लेकिन, यह काम नहीं किया। इसलिए, एक सरल CMakeLists.txt दिया गया है, जैसे नीचे दिया गया है, मैं संग्रह में दिखाई देने वाली सभी फ़ाइलों (exmaple
निर्देशिका सहित) कैसे बना सकता हूं ?!
cmake_minimum_required(VERSION 2.6 FATAL_ERROR)
enable_language(FORTRAN)
add_executable(mytarget ${PROJECT_SOURCE_DIR}/myprog.for)
install(TARGETS mytarget DESTINATION bin)
add_custom_command(TARGET mytarget PREBUILD
COMMAND ${CMAKE_COMMAND} -E copy_directory
${PROJECT_SOURCE_DIR}/examplefiles ${PROJECT_BINARY_DIR}/examplefiles)
set(CPACK_GENERATOR "TGZ")
include(CPack)
* मैं अभी तक बाहर नहीं मिला है जो इन 3 तरीकों में से एक वास्तव में है (सबसे?) सही - तो भी बेहद सराहना की जाएगी
यह बाइनरी वितरण के बजाय * स्रोत पैकेज * के लिए कैसे काम करेगा? सीपीएसी स्रोत पैकेज जेनरेटर इसकी कॉन्फ़िगरेशन में सीमित है। – kynan