Blame view

morfeusz/wrappers/python2/CMakeLists.txt 4.06 KB
Zbigniew Gawłowicz authored
1
2
3
4

# SWIG
#set(CMAKE_SWIG_OUTDIR swig)
#~ FIND_PACKAGE (SWIG REQUIRED)
Zbigniew Gawłowicz authored
5
FIND_PACKAGE (PythonLibs ${PY} EXACT)
Zbigniew Gawłowicz authored
6
7
8
#~ INCLUDE (${SWIG_USE_FILE})

set (PY2MORFEUSZ_VERSION "0.4.0")
Marcin Woliński authored
9
#set (PY2MORFEUSZ_VERSION "${Morfeusz_VERSION}")
Zbigniew Gawłowicz authored
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

# SWIG Java
INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH})
INCLUDE_DIRECTORIES (../..)


set (SWIG_PYTHON_OUTFILE_CXX "${CMAKE_CURRENT_BINARY_DIR}/swigPYTHON.cpp")
set (SWIG_PYTHON_OUTFILE_PY "${CMAKE_CURRENT_BINARY_DIR}/morfeusz2.py")
add_custom_command ( 
    OUTPUT "${SWIG_PYTHON_OUTFILE_CXX}" "${SWIG_PYTHON_OUTFILE_PY}"
    COMMAND swig -python -c++ -o "${SWIG_PYTHON_OUTFILE_CXX}" "${CMAKE_SOURCE_DIR}/morfeusz/wrappers/morfeuszpy2.i"
    DEPENDS libmorfeusz
)
add_custom_target (generate_python2_wrapper ALL
        DEPENDS "${SWIG_PYTHON_OUTFILE_CXX}" "${SWIG_PYTHON_OUTFILE_PY}")

set (SETUP_PY_IN "${CMAKE_CURRENT_SOURCE_DIR}/setup.py.in")
set (SETUP_PY_TMP    "${CMAKE_CURRENT_BINARY_DIR}/setupTmp.py")
set (SETUP_PY    "${CMAKE_CURRENT_BINARY_DIR}/setup.py")
set (DEPS        "${SWIG_PYTHON_OUTFILE_CXX}" "${SWIG_PYTHON_OUTFILE_PY}")
set (OUTPUT      "${CMAKE_CURRENT_BINARY_DIR}/build")

configure_file (${SETUP_PY_IN} ${SETUP_PY})

file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/morfeusz2-0.4.0-py2.7" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")

add_custom_target (generate_python2_setup_file
        DEPENDS ${SETUP_PY})

add_custom_command (OUTPUT ${OUTPUT}
                       COMMAND python2
                       ARGS ${SETUP_PY} build
                       DEPENDS generate_python2_wrapper generate_python2_setup_file libmorfeusz)

add_custom_target (build_python2_wrapper
        DEPENDS ${OUTPUT})

add_custom_target (py2morfeusz
        DEPENDS generate_python2_wrapper generate_python2_setup_file libmorfeusz build_python2_wrapper)

if (UNIX)
    add_custom_target (install-python2
        COMMAND python2 ${SETUP_PY} install --home=${CMAKE_INSTALL_PREFIX}
        DEPENDS py2morfeusz
    )
    add_custom_target (package-python2-bin
        COMMAND python2 ${SETUP_PY} bdist_egg -d "${TARGET_DIR}" --plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}"
        DEPENDS py2morfeusz
    )
    set (PACKAGE_DEPENDS "package-python2-bin")

    if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
Marcin Woliński authored
62
63
64
65
66
67
      if (BUILT_ON)
        add_custom_target (package-python2-deb-sdist
            COMMAND python2 ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --copyright-file "${PROJECT_SOURCE_DIR}/License.txt" --debian-version ${BUILT_ON}
            DEPENDS py2morfeusz
        )
      else ()
Zbigniew Gawłowicz authored
68
69
70
71
        add_custom_target (package-python2-deb-sdist
            COMMAND python2 ${SETUP_PY} --command-packages=stdeb.command sdist_dsc --depends "${CPACK_DEBIAN_PACKAGE_NAME}" --copyright-file "${PROJECT_SOURCE_DIR}/License.txt"
            DEPENDS py2morfeusz
        )
Marcin Woliński authored
72
      endif ()
Zbigniew Gawłowicz authored
73
74
        add_custom_target (package-python2-deb-build
            COMMAND debuild -us -uc
Marcin Woliński authored
75
#            WORKING_DIRECTORY deb_dist/morfeusz2-${Morfeusz_DEB_VERSION}
Zbigniew Gawłowicz authored
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
            WORKING_DIRECTORY deb_dist/morfeusz2-${PY2MORFEUSZ_VERSION}
            DEPENDS package-python2-deb-sdist
        )
        add_custom_target(package-python2-deb
            COMMAND mkdir -p "${TARGET_DIR}" && cp ${CMAKE_CURRENT_BINARY_DIR}/deb_dist/python-morfeusz2*.deb "${TARGET_DIR}"
            DEPENDS package-python2-deb-build
        )
        list (APPEND PACKAGE_DEPENDS package-python2-deb)
    endif ()
    add_custom_target (package-python2
        DEPENDS py2morfeusz ${PACKAGE_DEPENDS})
elseif (${CMAKE_SYSTEM_NAME} MATCHES "Windows" AND NOT CMAKE_CROSSCOMPILING)
    add_custom_target (package-python2-win-egg
        COMMAND python2 ${SETUP_PY} bdist_egg -d ${TARGET_DIR} --plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}"
        DEPENDS py2morfeusz
    )
    add_custom_target (package-python2-win-installer
        COMMAND python2 ${SETUP_PY} bdist_wininst -d ${TARGET_DIR} --plat-name "${CMAKE_SYSTEM_NAME}-${ARCHITECTURE}"
        DEPENDS py2morfeusz
    )
    list (APPEND PACKAGE_DEPENDS package-python2-win-installer)
    add_custom_target (package-python2
        DEPENDS py2morfeusz ${PACKAGE_DEPENDS})
endif ()