diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/ouroboros/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | include/ouroboros/wrap/CMakeLists.txt | 42 | ||||
| -rw-r--r-- | include/ouroboros/wrap/ouroboros.i | 44 | 
3 files changed, 88 insertions, 0 deletions
diff --git a/include/ouroboros/CMakeLists.txt b/include/ouroboros/CMakeLists.txt index eb5297d2..ae922b89 100644 --- a/include/ouroboros/CMakeLists.txt +++ b/include/ouroboros/CMakeLists.txt @@ -13,3 +13,5 @@ set(HEADER_FILES    qos.h)  install(FILES ${HEADER_FILES} DESTINATION usr/include/ouroboros) + +add_subdirectory(wrap) diff --git a/include/ouroboros/wrap/CMakeLists.txt b/include/ouroboros/wrap/CMakeLists.txt new file mode 100644 index 00000000..39737bbc --- /dev/null +++ b/include/ouroboros/wrap/CMakeLists.txt @@ -0,0 +1,42 @@ +find_package(SWIG) + +if (NOT SWIG_FOUND) +  message("-- SWIG not found: Bindings for other languages disabled.") +else () +  include(${SWIG_USE_FILE}) +  include_directories(${CMAKE_CURRENT_SOURCE_DIR}) +  set(CMAKE_SWIG_FLAGS "") + +  find_package(PythonLibs) +  if (NOT PYTHONLIBS_FOUND) +    message("-- Python not found: Python bindings will not be built.") +  else () +    include_directories(${PYTHON_INCLUDE_PATH}) + +    swig_add_module(ouroboros python ouroboros.i) +    swig_link_libraries(ouroboros ${PYTHON_LIBRARIES} ouroboros) + +    # Installation directives +    if (CMAKE_INSTALL_PREFIX STREQUAL "") +      execute_process( +        COMMAND python -c "from distutils import sysconfig; print(sysconfig.get_python_lib())" +        OUTPUT_VARIABLE PYTHON_MODULE_PATH +        OUTPUT_STRIP_TRAILING_WHITESPACE) +    else () +      execute_process( +        COMMAND python -c "from distutils import sysconfig; print(sysconfig.get_python_lib(plat_specific=True, prefix='${CMAKE_INSTALL_PREFIX}'))" +        OUTPUT_VARIABLE _ABS_PYTHON_MODULE_PATH +        OUTPUT_STRIP_TRAILING_WHITESPACE) +      get_filename_component(_ABS_PYTHON_MODULE_PATH +        ${_ABS_PYTHON_MODULE_PATH} ABSOLUTE) +      file(RELATIVE_PATH PYTHON_MODULE_PATH +        ${CMAKE_INSTALL_PREFIX} ${_ABS_PYTHON_MODULE_PATH}) +    endif () + +    install(FILES +      ${CMAKE_CURRENT_BINARY_DIR}/${SWIG_MODULE_ouroboros_REAL_NAME}.so +      DESTINATION ${PYTHON_MODULE_PATH}) +    install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ouroboros.py +      DESTINATION ${PYTHON_MODULE_PATH}) +  endif () +endif () diff --git a/include/ouroboros/wrap/ouroboros.i b/include/ouroboros/wrap/ouroboros.i new file mode 100644 index 00000000..386c21cc --- /dev/null +++ b/include/ouroboros/wrap/ouroboros.i @@ -0,0 +1,44 @@ +/* + * Ouroboros - Copyright (C) 2016 + * + * SWIG wrapper file + * + *    Sander Vrijders <sander.vrijders@intec.ugent.be> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +%module ouroboros +%{ +#include "ouroboros/cdap.h" +#include "ouroboros/dev.h" +#include "ouroboros/errno.h" +#include "ouroboros/flow.h" +#include "ouroboros/irm.h" +#include "ouroboros/irm_config.h" +#include "ouroboros/nsm.h" +#include "ouroboros/qos.h" +%} + +typedef int pid_t; + +%include "ouroboros/cdap.h" +%include "ouroboros/dev.h" +%include "ouroboros/errno.h" +%include "ouroboros/flow.h" +%include "ouroboros/irm.h" +%include "ouroboros/irm_config.h" +%include "ouroboros/nsm.h" +%include "ouroboros/qos.h"  | 
