Skip to content

Commit fc780d8

Browse files
committed
Add Python3 SWIG build flag, and new Python wheel target
1 parent 10ef05b commit fc780d8

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

mapscript/python/CMakeLists.txt

+17-2
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ include_directories(${PROJECT_SOURCE_DIR}/mapscript/swiginc)
2828
include_directories(${PROJECT_SOURCE_DIR}/mapscript/)
2929
include_directories(${PROJECT_SOURCE_DIR}/mapscript/python)
3030

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+
3135
if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.7)
3236
swig_add_library(pythonmapscript TYPE MODULE LANGUAGE python SOURCES ../mapscript.i)
3337
else (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 3.7)
@@ -50,13 +54,24 @@ file(READ ${SETUP_PY_TEMP} SETUP_CONTENT)
5054

5155
file(GENERATE OUTPUT $<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME}>/setup.py INPUT ${SETUP_PY_TEMP})
5256

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
5567
COMMAND ${CMAKE_COMMAND} -E copy_directory "${PROJECT_SOURCE_DIR}/mapscript/python/mapscript" $<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME}>/mapscript
5668
COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_BINARY_DIR}/mapscript.py" $<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME}>/mapscript/mapscript.py
5769
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}>"
5870
COMMAND ${CMAKE_COMMAND} -E copy "${PROJECT_SOURCE_DIR}/mapscript/python/README.rst" $<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME}>/README.rst
5971
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}/
6075
)
6176

6277
set(mapscript_files $<TARGET_FILE:${SWIG_MODULE_pythonmapscript_REAL_NAME}> $<TARGET_FILE_DIR:${SWIG_MODULE_pythonmapscript_REAL_NAME}>/mapscript/mapscript.py)

0 commit comments

Comments
 (0)