2012-04-10 10 views
5

मुझे लगता है कि जाम मौजूदा परियोजनाओं का निर्माण करता है और सीएमके निर्माण के लिए परियोजनाएं उत्पन्न करता है। लेकिन, दिया गया है कि मैं प्रोजेक्ट जेनरेट करना चाहता हूं, मैं उन आईडीई में जाम को एकीकृत करने की कोशिश करने के बजाय विभिन्न आईडीई में उपयोग कर सकता हूं, क्या किसी के पास किसी भी अनुभव/सफलता को एक Jamakeile को CMakeLists.txt फ़ाइल में बदलना है?जाम से सीएमके में माइग्रेट करें

उत्तर

0

तो मैंने अंततः निर्णय लिया कि सीएमकेई परियोजना शुरू करने के लिए सबसे अच्छी चीज थी। हमारी जाम परियोजना इतनी गड़बड़ी थी, मैं अपने स्पेगेटी बिल्ड के क्रुफ्ट को नहीं लेना चाहता था।

मैं इन संसाधनों पाया सबसे उपयोगी होने के लिए

http://www.cmake.org/Wiki/CMake_Useful_Variables http://www.cmake.org/cmake/help/v2.8.10/cmake.html

4

मैं अपने सभी लिनक्स परियोजनाओं के लिए जाम का उपयोग करता था क्योंकि यह नियमित मेकफ़ाइल से आसान था। तब मैंने सीएमके की खोज की और वापस नहीं गए। यह CMakeLists.txt फ़ाइलों को लिखना जितना आसान है, क्योंकि यह जामफाइल लिखना है, और आपको मुफ्त में प्लेटफार्म-विशिष्ट आईडीई समर्थन मिलता है, हालांकि आईएमओ आईडीई परियोजनाएं हाथ से उत्पन्न कुछ के रूप में साफ नहीं हैं।

जो मैंने देखा है, उससे बहुत कम लोग इन दिनों कई दिनों के दौरान जाम का उपयोग करते हैं। यह विभिन्न प्लेटफार्मों पर निर्माण करने में सक्षम होने का दावा करता है, लेकिन साथ ही, यह सक्रिय विकास का आनंद ले रहा प्रतीत नहीं होता है, इसलिए मैं इसके बहु-प्रारूप दावों पर भरोसा करता हूं।

जहां तक ​​मुझे पता है, स्वचालित रूप से जामफाइल के पदानुक्रम को सीएमकेलिस्ट.txt फ़ाइलों के पदानुक्रम में बदलने के लिए कोई उपकरण नहीं है, हालांकि ऐसा उपकरण निश्चित रूप से एक व्यवहार्य परियोजना होगी। हालांकि, जाम की अलोकप्रियता और थोड़ी सी सीमा तक, सीएमके, जब तक आपको या मुझे कुछ खाली समय नहीं मिलता है, ऐसा उपकरण क्षितिज पर नहीं है। :(

, अपनी परियोजना बहुत जटिल नहीं है, तो कुछ सरल खोज और संचालन की जगह एक CMakeLists.txt फ़ाइल में एक Jamfile बदलना चाहिए। यदि आपका परियोजना जटिल है, तो उन्हें हाथ से परिवर्तित शायद आपका सर्वश्रेष्ठ दांव है।

कुछ सरल परिवर्तनों:

  • HDRS += a.h b.h c.h ; हो जाता है include_directories(a.h b.h c.h)
  • Main HelloWorld : main.cpp utils.cpp ; हो जाता है add_executable(HelloWorld main.cpp utils.cpp utils.h)
  • Library helper : helper.cpp हो जाता है add_library(helper STATIC helper.cpp helper.h)
  • SubDir foo ;add_subdirectory(foo)
  • LinkLibraries HelloWorld : libhelper ;target_link_libraries(HelloWorld helper)

आईडीई परियोजनाओं CMake उत्पन्न करता है कि इसलिए मैं स्पष्ट रूप से ऊपर के उदाहरण में महत्वपूर्ण होते शामिल नहीं स्वचालित रूप से संबंधित हेडर फाइल में शामिल करते हैं, हो जाता हो जाता है। here का एक अच्छा उदाहरण है, यदि आपने इसे पहले से नहीं देखा है।

1

जाम से सीएमके रूपांतरण के लिए, यह जाम पार्सर कार्यान्वयन के लिए vcproj2cmake को विस्तारित करने का प्रयास करने के लिए उपयोगी हो सकता है (सीएमके सिंटैक्स टेक्स्ट स्ट्रीम के लिए जनरेटर भाग अब काफी सक्षम है)।

संबंधित मुद्दे