나는 이와 같은 간단한 테스트 예를 가지고 :파이썬 테스트로 테스트 할 수있는 도달 가능한 위치에 swig 래퍼를 두는 방법은 무엇입니까?
을 그리고 내 CMakeLists.txt은 다음과 같습니다 : 나는거야 래퍼를 ST 파일을 생성하고 구축 후
cmake_minimum_required(VERSION 3.7)
FIND_PACKAGE(SWIG REQUIRED)
INCLUDE(${SWIG_USE_FILE})
FIND_PACKAGE(PythonLibs)
INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
SET(CMAKE_SWIG_FLAGS "")
SET_SOURCE_FILES_PROPERTIES(example.i PROPERTIES CPLUSPLUS ON)
set(SWIG_MODULE_example_EXTRA_DEPS example.cxx example.h)
SWIG_ADD_MODULE(example python example.i example.cxx)
SWIG_LINK_LIBRARIES(example ${PYTHON_LIBRARIES})
빌드 디렉토리에이 출력 :
문제는 여기에 내 테스트 runme.py
해당 라이브러리를로드 할 수 없습니다. 그래서, 내 질문은 어떻게 example.py
과 example.pyd
(그 중 하나만) 제대로 테스트 할 수있는 장소에 있어야합니까? 나는 CMakeLists.txt set(CMAKE_SWIG_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/..)
이 줄을 추가 시도했는데 결과는 평 혼자 생성 된 래퍼를 배치했다 :
그리고 빌드 폴더에 남아으로 .pyd :
그래서 파이썬 테스트 파일로 테스트 할 수있는 래퍼를 어떻게 연결할 수 있습니까?
물론, 알고 있습니다.어쨌든, CMake를 호출 할 때 __init__ 파일을 생성하는 방법을 알고 있습니까? 나는 CMake 밖에서 어떤 커스텀 커맨드 (touch __init__.py)도 타이핑하는 것을 피하고 싶다 : CMake만으로 완벽하게 구동되는 프로세스 – BPL
미리 빌드 폴더가 없다는 것을 알지 못해 죄송합니다. 나는 내 대답을 편집하여 runme.py 파일에서 가져 오기를해야하는 파일을 생성 했으므로 CMake 나 외부에서 개입하지 않아도된다. –