File: PythonSwigVars.cmake

package info (click to toggle)
robotraconteur 1.2.7-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 101,380 kB
  • sloc: cpp: 1,149,268; cs: 87,653; java: 58,127; python: 26,897; ansic: 356; sh: 152; makefile: 90; xml: 51
file content (80 lines) | stat: -rw-r--r-- 3,757 bytes parent folder | download
1
2
3
4
5
6
7
8
9
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
# Fix for undefined symbols on OSX
# https://stackoverflow.com/questions/25421479/clang-and-undefined-symbols-when-building-a-library
if(APPLE)
    set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -undefined dynamic_lookup")
endif()

if(NOT USE_PREGENERATED_SOURCE)
    if(NOT SWIG_PYTHON_EXTRA_ARGS_OVERRIDE)
        check_type_size("long int" SIZEOF_LONG_INT BUILTIN_TYPES_ONLY)
        if("${SWIG_PYTHON_EXTRA_ARGS}" STREQUAL "" AND "${SIZEOF_LONG_INT}" EQUAL 8 AND CMAKE_COMPILER_IS_GNUCXX)
            set(SWIG_PYTHON_EXTRA_ARGS "-DSWIGWORDSIZE64" CACHE STRING "Swig extra args")
        else()
            set(SWIG_PYTHON_EXTRA_ARGS "" CACHE STRING "Swig extra args")
        endif()
    else()
        set(SWIG_PYTHON_EXTRA_ARGS ${SWIG_PYTHON_EXTRA_ARGS_OVERRIDE})
    endif()

    include_directories(${CMAKE_SOURCE_DIR}/SWIG)

    include(${CMAKE_SOURCE_DIR}/SWIG/RobotRaconteurSWIGSources.cmake)

    set(Python_SWIG_sources
        ${CMAKE_CURRENT_LIST_DIR}/ClientPython.i
        ${CMAKE_CURRENT_LIST_DIR}/DiscoveryPython.i
        ${CMAKE_CURRENT_LIST_DIR}/HardwareTransportPython.i
        ${CMAKE_CURRENT_LIST_DIR}/LocalTransportPython.i
        ${CMAKE_CURRENT_LIST_DIR}/MessagePython.i
        ${CMAKE_CURRENT_LIST_DIR}/NodeIDPython.i
        ${CMAKE_CURRENT_LIST_DIR}/PythonExceptionTypemaps.i
        ${CMAKE_CURRENT_LIST_DIR}/PythonTypemaps.i
        ${CMAKE_CURRENT_LIST_DIR}/PythonTypeSupport.i
        ${CMAKE_CURRENT_LIST_DIR}/RobotRaconteurNodePython.i
        ${CMAKE_CURRENT_LIST_DIR}/ServiceDefinitionPython.i
        ${CMAKE_CURRENT_LIST_DIR}/ServicePython.i
        ${CMAKE_CURRENT_LIST_DIR}/ServiceSecurityPython.i
        ${CMAKE_CURRENT_LIST_DIR}/TcpTransportPython.i
        ${CMAKE_CURRENT_LIST_DIR}/TimerPython.i
        ${CMAKE_CURRENT_LIST_DIR}/TimeSpecPython.i)
    set(Python_Py_sources
        ${CMAKE_CURRENT_LIST_DIR}/__init__.py
        ${CMAKE_CURRENT_LIST_DIR}/classproperty.py
        ${CMAKE_CURRENT_LIST_DIR}/Client.py
        ${CMAKE_CURRENT_LIST_DIR}/NamedClient.py
        ${CMAKE_CURRENT_LIST_DIR}/RobotRaconteurPythonDataTypes.py
        ${CMAKE_CURRENT_BINARY_DIR}/RobotRaconteurPythonError.py
        ${CMAKE_CURRENT_LIST_DIR}/RobotRaconteurPythonUtil.py)

    set(SWIG_DEPENDS ${RobotRaconteur_SWIG_sources} ${Python_SWIG_sources} ${Python_Py_sources})
    set(SWIG_CXX_EXTENSION cxx)

    if(EMSCRIPTEN)
        set(SWIG_PYTHON_EXTRA_ARGS2
            ${SWIG_PYTHON_EXTRA_ARGS} -DROBOTRACONTEUR_EMSCRIPTEN=1 -DROBOTRACONTEUR_NO_TCP_TRANSPORT=1
            -DROBOTRACONTEUR_NO_LOCAL_TRANSPORT=1 -DROBOTRACONTEUR_NO_HARDWARE_TRANSPORT=1
            -DROBOTRACONTEUR_NO_NODE_SETUP=1)
    else()
        set(SWIG_PYTHON_EXTRA_ARGS2 ${SWIG_PYTHON_EXTRA_ARGS} -threads)
    endif()

    set_property(SOURCE ${CMAKE_CURRENT_LIST_DIR}/RobotRaconteurPython.i PROPERTY CPLUSPLUS ON)
    set_property(SOURCE ${CMAKE_CURRENT_LIST_DIR}/RobotRaconteurPython.i PROPERTY SWIG_FLAGS ${SWIG_PYTHON_EXTRA_ARGS2}
                                                                                  -relativeimport)

endif()

if(NOT EMSCRIPTEN)
    set(RR_PY_SOURCES
        "${CMAKE_CURRENT_LIST_DIR}/__init__.py"
        "${CMAKE_CURRENT_LIST_DIR}/classproperty.py"
        "${CMAKE_CURRENT_LIST_DIR}/Client.py"
        "${CMAKE_CURRENT_LIST_DIR}/NamedClient.py"
        "${CMAKE_CURRENT_LIST_DIR}/RobotRaconteurPythonDataTypes.py"
        "${CMAKE_CURRENT_LIST_DIR}/RobotRaconteurPythonUtil.py")
else()
    set(RR_PY_SOURCES
        "${CMAKE_CURRENT_LIST_DIR}/__init__.py" "${CMAKE_CURRENT_LIST_DIR}/classproperty.py"
        "${CMAKE_CURRENT_LIST_DIR}/emscripten/Client.py" "${CMAKE_CURRENT_LIST_DIR}/RobotRaconteurPythonDataTypes.py"
        "${CMAKE_CURRENT_LIST_DIR}/RobotRaconteurPythonUtil.py")
endif()