सरल तरीके से GNU Make का प्रयास
नमस्ते, मैं अक्षम हूँ।
जो मैं बना रहा हूँ, उसमें से एक है cuckooget, लेकिन pip के साथ इंस्टॉलेशन समर्थन जोड़ने के कारण और विकास के चरण में हर बार इंस्टॉलेशन प्रक्रिया करना थकाऊ होता है, इसलिए इस बार मैंने GNU Make का उपयोग करने की कोशिश की। दरअसल, मेरे पास ओ'रेली की GNU Make किताब थी और मैं उसे पढ़ रहा था, लेकिन मुझे लगा कि C/C++ के संदर्भ में होने के कारण मुझे इसे लागू करने का अवसर नहीं मिलेगा, लेकिन इस बार मुझे लगा कि इसे शामिल करने से यह अच्छा हो सकता है, इसलिए मैंने इसे शामिल कर लिया।
मेकफाइल
यह कुछ ऐसा दिखता है।
$ cat Makefile
.PHONY: all check-deps build install clean done
WHEEL_DIR = lib/target/wheels
EGG_INFO = cuckooget.egg-info src/cuckooget.egg-info
all: check-deps build
check-deps:
@command -v pyenv >/dev/null || (echo "Please install pyenv" ; exit 1;)
@command -v python3 >/dev/null || (echo "Please install Python3" ; exit 1;)
@command -v maturin >/dev/null || ( echo "Please install maturin (pip install maturin)"; exit 1; )
build:
@echo "Building with maturin..."
cd lib && maturin build
install:
pip install . --force-reinstall
pip install $(WHEEL_DIR)/*.whl --force-reinstall
@echo "Done! How to use \`ck -h\`"
clean:
rm -rf build lib/target $(EGG_INFO)
done:
@echo "All steps completed."
Rust को Python लाइब्रेरी के रूप में कॉल करने के लिए अलग से बनाया जा रहा है, लेकिन make केवल उस Rust बिल्ड को करता है।
make clean जोड़ने के कारण, अब मैं कचरे को तुरंत हटा सकता हूँ और यह काफी सुविधाजनक है।
और कुछ?
बाद में, मुझे लगता है कि इसे विभिन्न चीज़ों में लागू करना अच्छा हो सकता है, लेकिन अगर आप एक ही प्रोजेक्ट में बहुत कुछ कर रहे हैं, तो Makefile में सब कुछ एक साथ रखने से यह देखना आसान हो जाता है कि क्या चलाया जा सकता है, इसलिए मुझे लगता है कि यह अच्छा है, हालांकि, अगर आप केवल छोटी-मोटी चीजें कर रहे हैं, तो इसकी आवश्यकता नहीं है।
फिर मिलेंगे। धन्यवाद।