MacOS-এ CMake-এর সাহায্যে LiterRT রানটাইম কনফিগার এবং তৈরি করতে এই নির্দেশিকাটি ব্যবহার করুন। নির্দেশাবলীতে Android ক্রস-কম্পাইলেশন টার্গেট (হোস্ট মেশিন হিসেবে macOS এবং Linux ব্যবহার করা) এবং নেটিভ macOS এবং Linux বিল্ড উভয়ই অন্তর্ভুক্ত রয়েছে।
সাধারণ নির্মাণ পদক্ষেপ
CMake 4.0.1 ইনস্টল করুন https://github.com/kitware/cmake/releases থেকে
সমস্ত বিল্ড প্রিসেট আশা করে যে আপনি রিপোজিটরি রুট থেকে কাজ করবেন:
cd ./litert
উৎপন্ন বিল্ড ট্রিগুলি cmake_build* এর অধীনে থাকে। সমান্তরাল বিল্ডগুলি -j এর মাধ্যমে পছন্দসই কোর কাউন্ট সহ নিয়ন্ত্রণ করা যেতে পারে।
উপলব্ধ বিল্ড ফ্লেভার
LiterRT রিলিজ এবং ডিবাগ উভয় বিল্ড ফ্লেভার সমর্থন করে:
| প্রিসেট | প্ল্যাটফর্ম | বিল্ড টাইপ | আউটপুট ডিরেক্টরি |
|---|---|---|---|
default | ডেস্কটপ (ম্যাকোস/লিনাক্স) | মুক্তি | cmake_build |
default-debug | ডেস্কটপ (ম্যাকোস/লিনাক্স) | ডিবাগ | cmake_build_debug |
android-arm64 | অ্যান্ড্রয়েড আর্ম৬৪ | মুক্তি | cmake_build_android_arm64 |
android-arm64-debug | অ্যান্ড্রয়েড আর্ম৬৪ | ডিবাগ | cmake_build_android_arm64_debug |
রিলিজ বিল্ড অপ্টিমাইজড প্রোডাকশন বাইনারিগুলির জন্য -O3 -DNDEBUG ব্যবহার করে। ডিবাগ বিল্ডগুলি সম্পূর্ণ প্রতীক তথ্য সহ ডিবাগিংয়ের জন্য -O0 -g ব্যবহার করে।
অ্যান্ড্রয়েড (arm64) ক্রস-কম্পাইলেশন
অ্যান্ড্রয়েড এনডিকে ইনস্টল করুন এবং পাথটি এক্সপোর্ট করুন যাতে সিমেক এটি খুঁজে পেতে পারে:
export ANDROID_NDK_HOME=/absolute/path/to/android-ndk-r27হোস্ট-সাইড ফ্ল্যাটবাফার টুল কনফিগার করুন
cmake --preset android-arm64;প্রদত্ত প্রিসেট ব্যবহার করে LiterRT অ্যান্ড্রয়েড বিল্ড কনফিগার করুন এবং জেনারেট করা FlatBuffers টুলগুলিতে নির্দেশ করুন:
# For Release build: cmake --preset android-arm64 \ -DTFLITE_HOST_TOOLS_DIR="$(cd ../host_flatc_build/_deps/flatbuffers-build && pwd)" # For Debug build: cmake --preset android-arm64-debug \ -DTFLITE_HOST_TOOLS_DIR="$(cd ../host_flatc_build/_deps/flatbuffers-build && pwd)"অ্যান্ড্রয়েডের জন্য LiterRT তৈরি করুন:
# For Release build: cmake --build cmake_build_android_arm64 -j # For Debug build: cmake --build cmake_build_android_arm64_debug -j
স্ট্যাটিক লাইব্রেরির মতো আর্টিফ্যাক্টগুলি সংশ্লিষ্ট বিল্ড ডিরেক্টরির ( cmake_build_android_arm64 অথবা cmake_build_android_arm64_debug ) অধীনে নির্গত হবে।
ম্যাকওএস এবং লিনাক্স থেকে ডেস্কটপ বিল্ড
ডেস্কটপ বিল্ডের জন্য ডিফল্ট প্রিসেট কনফিগার করুন:
# For Release build: cmake --preset default # For Debug build: cmake --preset default-debugLiterRT তৈরি করুন:
# For Release build: cmake --build cmake_build -j # For Debug build: cmake --build cmake_build_debug -j
আপনার বিল্ড টার্গেট কাস্টমাইজ করুন
সিমেক বিল্ড কাস্টমাইজ করা
আপনার টার্গেটে কোন টুলচেইন এবং বৈশিষ্ট্যগুলি কম্পাইল করা হবে তা নিয়ন্ত্রণ করতে CMake বিকল্পগুলি ব্যবহার করুন। যেমন:
cmake -S . -B build-release \
-DCMAKE_BUILD_TYPE=Release \
-DLITERT_AUTO_BUILD_TFLITE=ON \
-DLITERT_ENABLE_GPU=OFF \
-DLITERT_ENABLE_NPU=OFF \
-DLITERT_DISABLE_KLEIDIAI=ON \
-DLITERT_HOST_C_COMPILER=/usr/bin/clang \
-DLITERT_HOST_CXX_COMPILER=/usr/bin/clang++
cmake --build build-release --target dispatch_api_Qualcomm_so -j8
-
LITERT_HOST_C_COMPILER/LITERT_HOST_CXX_COMPILERআপনাকেCMakeLists.txtসম্পাদনা না করে যেকোনো Clang/GCC ইনস্টলেশনে সহায়ক হোস্ট টুলগুলি নির্দেশ করতে দেয়। -
LITERT_DISABLE_KLEIDIAIKleidiAI বাদ দিয়ে x86 ডেস্কটপ বিল্ডগুলিকে পুনরুৎপাদনযোগ্য রাখে; যখনই আপনি ডেলিগেট বান্ডেল করতে চান তখন এটিOFFএ সেট করুন। - যখন আপনার অপ্টিমাইজ করা আর্টিফ্যাক্টের প্রয়োজন হবে তখন সর্বদা
-DCMAKE_BUILD_TYPE=Release(অথবা সমতুল্য প্রিসেট) পাস করুন। এর ফলে CMake আপনার জন্য-O3 -DNDEBUGব্যবহার করবে।
ন্যূনতম আকারের বিক্রেতা লাইব্রেরি তৈরি করা
লিঙ্কের সময় ডেড-স্ট্রিপিং সক্ষম করুন যাতে ডিসপ্যাচ লাইব্রেরিগুলি ব্যাজেলের আকারের সাথে মেলে:
- macOS:
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,-dead_strip -dead_strip_dylibs"যোগ করুন (এবং যদি আপনি এক্সিকিউটেবলগুলি স্ট্রিপ করতে চান তবেCMAKE_EXE_LINKER_FLAGS_RELEASEএর জন্যও একই)। তৈরি করার পরে,strip -x path/to/libLiteRtDispatch_Qualcomm.dylibচালান। - লিনাক্স:
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,--gc-sections"যোগ করুন এবংstrip --strip-unneeded path/to/libLiteRtDispatch_Qualcomm.soচালান (অথবা এটিকে একটিPOST_BUILDকমান্ড করুন)।
এই ফ্ল্যাগগুলি সরাসরি CMakePresets.json এর cmake --preset … এন্ট্রিতে থাকতে পারে যাতে আপনার দলের প্রতিটি ডেভেলপার একই কনফিগারেশন পায়।
সমস্যা সমাধানের টিপস
- টুলচেইন বা প্রধান কনফিগারেশন বিকল্প পরিবর্তন করলে সংশ্লিষ্ট
cmake_build*ডিরেক্টরিটি মুছে ফেলুন, তারপর কনফিগার ধাপটি পুনরায় চালান। - সমাধান করা নির্ভরতা পাথের জন্য প্রতিটি বিল্ড ট্রির ভিতরে
CMakeCache.txtপরীক্ষা করুন।