@@ -28,6 +28,10 @@ include_directories(${PROJECT_SOURCE_DIR}/mapscript/swiginc)
28
28
include_directories (${PROJECT_SOURCE_DIR} /mapscript/)
29
29
include_directories (${PROJECT_SOURCE_DIR} /mapscript/python)
30
30
31
+ if (${PYTHON_VERSION_MAJOR} GREATER 2)
32
+ set_property (SOURCE ../mapscript.i PROPERTY SWIG_FLAGS "-py3" )
33
+ endif (${PYTHON_VERSION_MAJOR} GREATER 2)
34
+
31
35
if (${CMAKE_MAJOR_VERSION} .${CMAKE_MINOR_VERSION} GREATER 3.7)
32
36
swig_add_library(pythonmapscript TYPE MODULE LANGUAGE python SOURCES ../mapscript.i)
33
37
else (${CMAKE_MAJOR_VERSION} .${CMAKE_MINOR_VERSION} GREATER 3.7)
@@ -50,13 +54,24 @@ file(READ ${SETUP_PY_TEMP} SETUP_CONTENT)
50
54
51
55
file (GENERATE OUTPUT $<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME} >/setup.py INPUT ${SETUP_PY_TEMP} )
52
56
53
- # copy all Python files to the output folder following build
54
- add_custom_command (TARGET ${SWIG_MODULE_pythonmapscript_REAL_NAME} POST_BUILD
57
+ set (BUILD_TIMESTAMP "${CMAKE_CURRENT_BINARY_DIR} /build/timestamp" )
58
+ set (TESTS_FOLDER ${PROJECT_SOURCE_DIR} /mapscript/python/tests/cases)
59
+
60
+ add_custom_target (pythonmapscript-wheel DEPENDS ${SWIG_MODULE_pythonmapscript_REAL_NAME} )
61
+
62
+ # copy all Python files to the output folder following build, and create a wheel
63
+ add_custom_command (
64
+ TARGET pythonmapscript-wheel POST_BUILD
65
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /${CMAKE_BUILD_TYPE}
66
+ COMMAND ${PYTHON_EXECUTABLE} -m pip install -r ${PROJECT_SOURCE_DIR} /mapscript/python/requirements-dev.txt
55
67
COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR} /mapscript/python/mapscript" $<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME} >/mapscript
56
68
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_BINARY_DIR} /mapscript.py" $<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME} >/mapscript/mapscript.py
57
69
COMMAND ${CMAKE_COMMAND} -E copy "$<TARGET_FILE:${SWIG_MODULE_pythonmapscript_REAL_NAME} >" "$<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME} >/mapscript/$<TARGET_FILE_NAME:${SWIG_MODULE_pythonmapscript_REAL_NAME} >"
58
70
COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR} /mapscript/python/README.rst" $<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME} >/README.rst
59
71
COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR} /mapscript/python/examples" $<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME} >/mapscript/examples
72
+ COMMAND ${PYTHON_EXECUTABLE} setup.py bdist_wheel
73
+ #COMMAND ${PYTHON_EXECUTABLE} -m pip install --no-index --find-links=${CMAKE_CURRENT_BINARY_DIR}/dist mapscript
74
+ #COMMAND ${PYTHON_EXECUTABLE} -m pytest --ignore=${TESTS_FOLDER}/fonttest.py --ignore=${TESTS_FOLDER}/hashtest.py --ignore=${TESTS_FOLDER}/pgtest.py --ignore=${TESTS_FOLDER}/threadtest.py ${TESTS_FOLDER}/
60
75
)
61
76
62
77
set (mapscript_files $<TARGET_FILE:${SWIG_MODULE_pythonmapscript_REAL_NAME} > $<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME} >/mapscript/mapscript.py)
0 commit comments