summaryrefslogtreecommitdiff
path: root/cmake/Modules/GrSwig.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/Modules/GrSwig.cmake')
-rw-r--r--cmake/Modules/GrSwig.cmake13
1 files changed, 8 insertions, 5 deletions
diff --git a/cmake/Modules/GrSwig.cmake b/cmake/Modules/GrSwig.cmake
index de8be5cc19..8e45c546cd 100644
--- a/cmake/Modules/GrSwig.cmake
+++ b/cmake/Modules/GrSwig.cmake
@@ -76,7 +76,7 @@ function(GR_SWIG_MAKE_DOCS output_file)
add_custom_command(
OUTPUT ${output_file}
DEPENDS ${input_files} ${stamp-file} ${OUTPUT_DIRECTORY}/xml/index.xml
- COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
+ COMMAND ${PYTHON_EXECUTABLE} -B
${CMAKE_SOURCE_DIR}/docs/doxygen/swig_doc.py
${OUTPUT_DIRECTORY}/xml
${output_file}
@@ -146,7 +146,6 @@ macro(GR_SWIG_MAKE name)
endif()
#append additional include directories
- find_package(PythonLibs 2)
list(APPEND GR_SWIG_INCLUDE_DIRS ${PYTHON_INCLUDE_PATH}) #deprecated name (now dirs)
list(APPEND GR_SWIG_INCLUDE_DIRS ${PYTHON_INCLUDE_DIRS})
@@ -178,8 +177,12 @@ macro(GR_SWIG_MAKE name)
include_directories(${GR_SWIG_INCLUDE_DIRS})
list(APPEND SWIG_MODULE_${name}_EXTRA_DEPS ${tag_file})
+ if (PYTHON3)
+ set(py3 "-py3")
+ endif (PYTHON3)
+
#setup the swig flags with flags and include directories
- set(CMAKE_SWIG_FLAGS -fvirtual -modern -keyword -w511 -w314 -module ${name} ${GR_SWIG_FLAGS})
+ set(CMAKE_SWIG_FLAGS -fvirtual -modern -keyword -w511 -w314 -relativeimport ${py3} -module ${name} ${GR_SWIG_FLAGS})
#set the C++ property on the swig .i file so it builds
set_source_files_properties(${ifiles} PROPERTIES CPLUSPLUS ON)
@@ -238,7 +241,7 @@ endmacro(GR_SWIG_INSTALL)
########################################################################
file(WRITE ${CMAKE_BINARY_DIR}/get_swig_deps.py "
-import os, sys, re
+import os, sys, re, io
i_include_matcher = re.compile('%(include|import)\\s*[<|\"](.*)[>|\"]')
h_include_matcher = re.compile('#(include)\\s*[<|\"](.*)[>|\"]')
@@ -247,7 +250,7 @@ include_dirs = sys.argv[2].split(';')
def get_swig_incs(file_path):
if file_path.endswith('.i'): matcher = i_include_matcher
else: matcher = h_include_matcher
- file_contents = open(file_path, 'r').read()
+ file_contents = io.open(file_path, 'r', encoding='utf-8').read()
return matcher.findall(file_contents, re.MULTILINE)
def get_swig_deps(file_path, level):