বেশ কয়েকটি প্রকল্প সমেত একটি সিএমকে (সি ++) সংগ্রহস্থলের ডিরেক্টরি সংস্থা


12

আমি কোনও একক (গিট) ভাণ্ডারে সংরক্ষিত সম্পর্কিত কিন্তু স্বতন্ত্র সি ++ প্রকল্পের সেটগুলির সংস্থার বিষয়ে কিছু পরামর্শ চাই। প্রকল্পগুলি সিএমকে ব্যবহার করে।

সরলীকৃত উদাহরণের জন্য আমরা বি এবং 2 এর উপর নির্ভর করে 2 টি প্রকল্প এ এবং বি, এ কল্পনা করি যা এ বিকাশকারী বেশিরভাগ লোকেরা প্যাকেজিং সিস্টেমের মাধ্যমে বি পাবেন। সুতরাং তারা কেবলমাত্র এ। সংকলন করবে তবে যাইহোক, আমাদের বিকাশকারীদের পৃথক বা একসাথে দুটি এবং এ উভয়ই সংকলন করার (এবং এটি ইনস্টল) করা উচিত।

এখানে একটি প্রস্তাব দেওয়া হল:

└── Repo1
    ├── CMakeLists.txt (1)
    ├── A
       ├── CMakeLists.txt (2)
       ├── include
          ├── aaa.h
          ├── aaaa.h
          └── CMakeLists.txt (3)
       └── src
           ├── aaa.cpp
           ├── aaaa.cpp
           └── CMakeLists.txt (4)
    ├── B
       ├── CMakeLists.txt (2)
       ├── include
          ├── bbb.h
          ├── bbbb.h
          └── CMakeLists.txt (3)
       └── src
           ├── bbb.cpp
           ├── bbbb.cpp
           └── CMakeLists.txt (4)
    └── test
        ├── CMakeLists.txt (5)
        └── testaaaa.cpp

(1) সমস্ত প্রকল্পের জন্য সাধারণ cmake ভেরিয়েবলগুলি সংজ্ঞায়িত করুন (যদি থাকে) এবং সাব-ডিরেক্টরিগুলি অন্তর্ভুক্ত করে। (২) প্রকল্পটি নিজেই এবং প্রকল্পের প্রয়োজনীয় চাকা ভেরিয়েবলগুলি সংজ্ঞায়িত করে। (3) ইনস্টল করতে শিরোনাম এবং সংকলনের জন্য প্রয়োজনীয়গুলি সংজ্ঞায়িত করে। (4) গ্রন্থাগার এবং বাইনারিগুলি কনফিগার করে। (5) পরীক্ষা এক্সিকিউটেবল এবং টেস্ট-কেসগুলি কনফিগার করে।

আমি এটি বুঝতে পেরেছি, প্রতিটি প্রকল্পের একটি XXXConfig.cmake ফাইল তৈরি করা উচিত এবং এটি / usr / লোকাল / শেয়ার / cmake এ ইনস্টল করা উচিত। সিএমকের ডকুমেন্টেশন পড়ার সময় এই ফাইলগুলি লেখা বেশ জটিল মনে হয়।

আপনি কি মনে করেন ? কাঠামোটি কি কোনও অর্থবোধ করে?

আপনি কি এই জাতীয় প্রকল্পের একটি কাজের উদাহরণ আছে?


আমি মনে করি আপনি সম্ভবত এখানে ওভারশুট করছেন - আমরা কেবলমাত্র একটি নির্ভরযোগ্য গ্রন্থাগার প্রকল্পের সাথে একটি অ্যাপ্লিকেশনের জন্য চটকে প্রবর্তন করেছি এবং এখন পর্যন্ত CMakeLists.txtপ্রতিটি প্রকল্পের জন্য একটি ফাইল নিয়ে খুশি : A/CMakeLists.txt(অ্যাপ B/CMakeLists.txt) ব্যবহার করে (গ্রন্থাগার) অন্তর্ভুক্ত রয়েছে add_subdirectory(...)
এসএসসি

উত্তর:


12

বেশ কিছু পাঠ এবং পরীক্ষার পরে, আমি সিএমকেক, সিস্টেস্ট + বুস্ট.স্টেস্ট, সিপ্যাক এবং ডক্সিজেনের ব্যবহার এবং আমার প্রশ্নে আমি যে সংস্থাটি উল্লেখ করেছি আরও কম-বেশি ব্যবহার করে একটি বুনিয়াদি ডেমো সি ++ প্রকল্প তৈরি করেছি।

প্রকল্পটি দেখায় যে কীভাবে সাবপ্রজেক্ট নির্ভরতা তৈরি করতে হয়, কীভাবে পুরো রেপো বা কেবল একটি সাবপ্রজেক্ট কম্পাইল করা যায়, কীভাবে প্যাকেজ করা যায়, কীভাবে পরীক্ষা করা যায় এবং কীভাবে ডকুমেন্টেশন তৈরি করা যায়।

এখানে দেখুন: https://github.com/Barthelemy/CppProjectTemplate

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.