Metahuman_DNA_Calibration/dnacalib/PyDNA/python3/CMakeLists.txt
2022-11-29 14:25:24 +01:00

47 lines
1.4 KiB
CMake

set(PYTHON3_EXACT_VERSION "" CACHE STRING "Specify exact python3 version against which the extension should be built")
if(PYTHON3_EXACT_VERSION)
set(find_python3_extra_args ${PYTHON3_EXACT_VERSION} EXACT)
endif()
find_package(Python3 ${find_python3_extra_args} COMPONENTS Development)
set_property(SOURCE DNA.i PROPERTY CPLUSPLUS ON)
set_property(SOURCE DNA.i PROPERTY SWIG_MODULE_NAME dna)
option(TYPEMAP_DEBUG "Debug deducing of typemaps" OFF)
if(TYPEMAP_DEBUG)
set_property(SOURCE DNA.i PROPERTY SWIG_FLAGS "-debug-tmsearch")
endif()
swig_add_library(py3dna
TYPE
SHARED
LANGUAGE
python
OUTPUT_DIR
${CMAKE_BINARY_DIR}/py3bin
SOURCES
DNA.i)
set_property(TARGET py3dna PROPERTY SWIG_USE_TARGET_INCLUDE_DIRECTORIES ON)
target_include_directories(py3dna PUBLIC ${CMAKE_CURRENT_LIST_DIR})
target_link_libraries(py3dna
PUBLIC
DNACalib::dnacalib
Spyus::spyus
PRIVATE
Python3::Python)
add_custom_target(py3dna-distribution ALL
DEPENDS
py3dna
COMMAND
${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_DIR}/py3bin
COMMAND
${CMAKE_COMMAND} -E copy $<TARGET_FILE:py3dna> ${CMAKE_BINARY_DIR}/py3bin
COMMAND
${CMAKE_COMMAND} -E copy $<TARGET_FILE:DNACalib::dnacalib> ${CMAKE_BINARY_DIR}/py3bin
COMMAND
${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_DIR}/examples/demo.py ${CMAKE_BINARY_DIR}/py3bin/dna_demo.py)