के साथ सीएमके का उपयोग करना एक प्रोजेक्ट के लिए मैं सी लाइब्रेरी बनाता हूं और सीएमके के साथ पायथन बाइंडिंग (गोब्जेक्ट इंट्रोस्पेक्शन के माध्यम से) को निहित करता हूं। मैं distutils का उपयोग कर कुछ पायथन सहायक मॉड्यूल भी वितरित करना चाहता हूँ। मैं इस CMakeLists.txt
setup.py
find_program(PYTHON "python")
if (PYTHON)
set(SETUP_PY_IN "${CMAKE_CURRENT_SOURCE_DIR}/setup.py.in")
set(SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py")
set(DEPS "${CMAKE_CURRENT_SOURCE_DIR}/module/__init__.py")
set(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/build")
configure_file(${SETUP_PY_IN} ${SETUP_PY})
add_custom_command(OUTPUT ${OUTPUT}
COMMAND ${PYTHON}
ARGS setup.py build
DEPENDS ${DEPS})
add_custom_target(target ALL DEPENDS ${OUTPUT})
install(CODE "execute_process(COMMAND ${PYTHON} ${SETUP_PY} install)")
endif()
और निम्नलिखित setup.py.in
साथ मॉड्यूल का निर्माण और स्थापित करने में सक्षम हूँ:
from distutils.core import setup, Extension
if __name__ == '__main__':
setup(name='foo',
version='${PACKAGE_VERSION}',
package_dir={ '': '${CMAKE_CURRENT_SOURCE_DIR}' },
packages=['module'])
दुर्भाग्य से, निर्माण कदम हर बार मैं make
चलाने निष्पादित किया जाता है। मुझे लगता है, समस्या कस्टम कमांड के आउटपुट से संबंधित है जो फ़ाइल की बजाय निर्देशिका है। अब, क्या python setup.py build
चलाने के लिए सीएमके को बताने का कोई तरीका है जब setup.py.in
या स्रोतों में से एक बदल गया?
बिल्कुल वही जो मैं खोज रहा था। धन्यवाद। – matthias