|
1
2
3
|
# SWIG
#set(CMAKE_SWIG_OUTDIR swig)
|
|
4
|
#~ FIND_PACKAGE (SWIG REQUIRED)
|
|
5
|
FIND_PACKAGE (PythonLibs)
|
|
6
|
#~ INCLUDE (${SWIG_USE_FILE})
|
|
7
8
|
set (PYMORFEUSZ_VERSION "0.1.0")
|
|
9
10
|
# SWIG Java
|
|
11
12
|
INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH})
INCLUDE_DIRECTORIES (..)
|
|
13
|
|
|
14
|
|
|
15
16
|
set (SWIG_PYTHON_OUTFILE_CXX "${CMAKE_CURRENT_BINARY_DIR}/swigPYTHON.cpp")
set (SWIG_PYTHON_OUTFILE_PY "${CMAKE_CURRENT_BINARY_DIR}/morfeusz2.py")
|
|
17
|
add_custom_command (
|
|
18
|
OUTPUT "${SWIG_PYTHON_OUTFILE_CXX}" "${SWIG_PYTHON_OUTFILE_PY}"
|
|
19
|
COMMAND swig -python -c++ -o "${SWIG_PYTHON_OUTFILE_CXX}" "${CMAKE_SOURCE_DIR}/morfeusz/morfeusz.i"
|
|
20
21
|
DEPENDS libmorfeusz
)
|
|
22
|
add_custom_target (generate_python_wrapper
|
|
23
|
DEPENDS "${SWIG_PYTHON_OUTFILE_CXX}" "${SWIG_PYTHON_OUTFILE_PY}")
|
|
24
|
|
|
25
|
set (SETUP_PY_IN "${CMAKE_CURRENT_SOURCE_DIR}/setup.py.in")
|
|
26
|
set (SETUP_PY_TMP "${CMAKE_CURRENT_BINARY_DIR}/setupTmp.py")
|
|
27
|
set (SETUP_PY "${CMAKE_CURRENT_BINARY_DIR}/setup.py")
|
|
28
|
set (DEPS "${SWIG_PYTHON_OUTFILE_CXX}" "${SWIG_PYTHON_OUTFILE_PY}")
|
|
29
|
set (OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/build")
|
|
30
|
|
|
31
|
configure_file (${SETUP_PY_IN} ${SETUP_PY})
|
|
32
|
|
|
33
|
add_custom_target (generate_python_setup_file
|
|
34
|
DEPENDS ${SETUP_PY})
|
|
35
|
|
|
36
37
38
|
add_custom_command (OUTPUT ${OUTPUT}
COMMAND python
ARGS ${SETUP_PY} build
|
|
39
|
DEPENDS generate_python_wrapper generate_python_setup_file libmorfeusz)
|
|
40
|
|
|
41
|
add_custom_target (build_python_wrapper
|
|
42
43
|
DEPENDS ${OUTPUT})
|
|
44
|
add_custom_target (pymorfeusz
|
|
45
|
DEPENDS generate_python_wrapper generate_python_setup_file libmorfeusz build_python_wrapper)
|
|
46
47
48
49
|
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
add_custom_target (install-python
COMMAND python ${SETUP_PY} install --home=${CMAKE_INSTALL_PREFIX}
|
|
50
|
DEPENDS pymorfeusz
|
|
51
52
|
)
add_custom_target (package-python-bin
|
|
53
|
COMMAND python ${SETUP_PY} bdist_egg -d "${TARGET_DIR}" --plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}"
|
|
54
55
|
DEPENDS pymorfeusz
)
|
|
56
|
set (PACKAGE_DEPENDS "package-python-bin")
|
|
57
|
|
|
58
|
add_custom_target (package-python-deb-sdist
|
|
59
|
COMMAND python ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --copyright-file "${PROJECT_SOURCE_DIR}/License.txt"
|
|
60
61
62
63
64
65
66
67
68
69
70
71
|
DEPENDS pymorfeusz
)
add_custom_target (package-python-deb-build
COMMAND debuild -us -uc
WORKING_DIRECTORY deb_dist/morfeusz2-${PYMORFEUSZ_VERSION}
DEPENDS package-python-deb-sdist
)
add_custom_target(package-python-deb
COMMAND mkdir -p "${TARGET_DIR}" && cp ${CMAKE_CURRENT_BINARY_DIR}/deb_dist/python-morfeusz2*.deb "${TARGET_DIR}"
DEPENDS package-python-deb-build
)
list (APPEND PACKAGE_DEPENDS package-python-deb)
|
|
72
73
74
|
message ("PACKAGE_DEPENDS=${PACKAGE_DEPENDS}")
add_custom_target (package-python
DEPENDS pymorfeusz ${PACKAGE_DEPENDS})
|
|
75
76
77
78
79
80
81
82
|
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND NOT CMAKE_CROSSCOMPILING)
add_custom_target (package-python-win-installer
COMMAND python ${SETUP_PY} bdist_wininst -d ${TARGET_DIR} --plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}"
DEPENDS pymorfeusz
)
list (APPEND PACKAGE_DEPENDS package-python-win-installer)
add_custom_target (package-python
DEPENDS pymorfeusz ${PACKAGE_DEPENDS})
|
|
83
|
endif ()
|