আমি কোনও একক (গিট) ভাণ্ডারে সংরক্ষিত সম্পর্কিত কিন্তু স্বতন্ত্র সি ++ প্রকল্পের সেটগুলির সংস্থার বিষয়ে কিছু পরামর্শ চাই। প্রকল্পগুলি সিএমকে ব্যবহার করে।
সরলীকৃত উদাহরণের জন্য আমরা বি এবং 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(...)
।