Skip to content

Commit

Permalink
Python MapScript annotations
Browse files Browse the repository at this point in the history
  • Loading branch information
geographika committed Mar 15, 2022
1 parent 672de62 commit 8a7e27f
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 14 deletions.
8 changes: 2 additions & 6 deletions CMakeLists.txt
Expand Up @@ -182,8 +182,7 @@ option(BUILD_STATIC "Also build a static version of mapserver" OFF)
option(LINK_STATIC_LIBMAPSERVER "Link to static version of libmapserver (also for mapscripts)" OFF)
option(WITH_APACHE_MODULE "include (experimental) support for apache module" OFF)
option(WITH_GENERIC_NINT "generic rounding" OFF)
# the following requires a customized SWIG build - see https://github.com/swig/swig/pull/1951
option(WITH_MAPSCRIPT_PROPERTYANNOTATIONS "Add annotations to Python mapscript class properties" OFF)
option(WITH_PYMAPSCRIPT_ANNOTATIONS "Add annotations to Python mapscript output" OFF)

option(FUZZER "Build fuzzers using libFuzzer" OFF)
mark_as_advanced(FUZZER)
Expand Down Expand Up @@ -805,9 +804,6 @@ endif(WITH_EXEMPI)
if(WITH_PYTHON)
add_subdirectory("mapscript/python")
set(USE_PYTHON_MAPSCRIPT 1)
if(WITH_MAPSCRIPT_PROPERTYANNOTATIONS)
set(MAPSCRIPT_PROPERTYANNOTATIONS 1)
endif(WITH_MAPSCRIPT_PROPERTYANNOTATIONS)
endif(WITH_PYTHON)

if(WITH_V8)
Expand Down Expand Up @@ -976,7 +972,7 @@ status_optional_feature("JAVA" "${USE_JAVA_MAPSCRIPT}")
status_optional_feature("C#" "${USE_CSHARP_MAPSCRIPT}")
status_optional_feature("V8 Javascript" "${USE_V8_MAPSCRIPT}")
status_optional_feature("Apache Module (Experimental)" "${USE_APACHE_MODULE}")
status_optional_feature("Python MapScript Property Annotations" "${MAPSCRIPT_PROPERTYANNOTATIONS}")
status_optional_feature("Python MapScript Annotations" "${WITH_PYMAPSCRIPT_ANNOTATIONS}")

message(STATUS "")
message(STATUS "PROJECT_BINARY_DIR is set to ${PROJECT_BINARY_DIR}")
Expand Down
2 changes: 1 addition & 1 deletion appveyor.yml
Expand Up @@ -84,7 +84,7 @@ build_script:
- cd build
- set PATH=%BUILD_FOLDER%/build/Release;%SDK_BIN%;%PATH%
- set "PROJECT_BINARY_DIR=%BUILD_FOLDER%/build"
- cmake -G "%VS_FULL%" -A %VS_ARCH% .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=%SDK_PREFIX% -DPNG_LIBRARY=%SDK_LIB%/libpng16_static.lib -DHARFBUZZ_INCLUDE_DIR=%SDK_INC%/harfbuzz -DICONV_DLL=%SDK_BIN%/iconv.dll -DFRIBIDI_INCLUDE_DIR=%SDK_INC%/fribidi -DMS_EXTERNAL_LIBS=%SDK_LIB%/harfbuzz.lib;%SDK_LIB%/uriparser.lib -DSVG_LIBRARY=%SDK_LIB%/libsvg.lib -DSVGCAIRO_LIBRARY=%SDK_LIB%/libsvg-cairo.lib -DREGEX_DIR=%REGEX_DIR% -DSWIG_EXECUTABLE=%SWIG_EXECUTABLE% -DPROTOBUFC_COMPILER=%SDK_BIN%/protoc.exe -DPROTOBUFC_LIBRARY=%SDK_LIB%/protobuf-c.lib -DPROTOBUFC_INCLUDE_DIR=%SDK_INC%/protobuf-c -DWITH_CURL=1 -DWITH_KML=1 -DWITH_SVGCAIRO=1 -DWITH_THREAD_SAFETY=1 -DWITH_SOS=1 -DWITH_CLIENT_WFS=1 -DWITH_CLIENT_WMS=1-DWITH_CSHARP=1 -DWITH_PROTOBUFC=1 -DWITH_POSTGIS=0 -DWITH_PERL=0 -DWITH_MSSQL2008=1 -DWITH_PYTHON=1 -DWITH_PHPNG=0 -DWITH_HARFBUZZ=1 -DMAPSCRIPT_PROPERTYANNOTATIONS=1 -DPROJ_INCLUDE_DIR=%SDK_INC%/proj7
- cmake -G "%VS_FULL%" -A %VS_ARCH% .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=%SDK_PREFIX% -DPNG_LIBRARY=%SDK_LIB%/libpng16_static.lib -DHARFBUZZ_INCLUDE_DIR=%SDK_INC%/harfbuzz -DICONV_DLL=%SDK_BIN%/iconv.dll -DFRIBIDI_INCLUDE_DIR=%SDK_INC%/fribidi -DMS_EXTERNAL_LIBS=%SDK_LIB%/harfbuzz.lib;%SDK_LIB%/uriparser.lib -DSVG_LIBRARY=%SDK_LIB%/libsvg.lib -DSVGCAIRO_LIBRARY=%SDK_LIB%/libsvg-cairo.lib -DREGEX_DIR=%REGEX_DIR% -DSWIG_EXECUTABLE=%SWIG_EXECUTABLE% -DPROTOBUFC_COMPILER=%SDK_BIN%/protoc.exe -DPROTOBUFC_LIBRARY=%SDK_LIB%/protobuf-c.lib -DPROTOBUFC_INCLUDE_DIR=%SDK_INC%/protobuf-c -DWITH_CURL=1 -DWITH_KML=1 -DWITH_SVGCAIRO=1 -DWITH_THREAD_SAFETY=1 -DWITH_SOS=1 -DWITH_CLIENT_WFS=1 -DWITH_CLIENT_WMS=1-DWITH_CSHARP=1 -DWITH_PROTOBUFC=1 -DWITH_POSTGIS=0 -DWITH_PERL=0 -DWITH_MSSQL2008=1 -DWITH_PYTHON=1 -DWITH_PHPNG=0 -DWITH_HARFBUZZ=1 -DWITH_PYMAPSCRIPT_ANNOTATIONS=1 -DPROJ_INCLUDE_DIR=%SDK_INC%/proj7
- cmake --build . --config Release
- cd %BUILD_FOLDER%/build
# set the MapScript custom environment variable for py 3.8
Expand Down
14 changes: 7 additions & 7 deletions mapscript/python/CMakeLists.txt
Expand Up @@ -10,13 +10,13 @@ include_directories(${PROJECT_SOURCE_DIR}/mapscript/python)

set(SwigFile ${PROJECT_SOURCE_DIR}/mapscript/mapscript.i)

if (${Python_VERSION_MAJOR} GREATER_EQUAL 3)
set_property(SOURCE ${SwigFile} APPEND PROPERTY SWIG_FLAGS "-py3")
if(WITH_MAPSCRIPT_PROPERTYANNOTATIONS)
# if the custom PROPERTYANNOTATIONS flag is set we can add annotations to object properties
# see https://github.com/swig/swig/pull/1951
set_property(SOURCE ${SwigFile} APPEND PROPERTY SWIG_FLAGS "-propertyannotations")
endif()
# add annotations to py file output - requires >= SWIG 4.1
if (WITH_PYMAPSCRIPT_ANNOTATIONS AND ${Python_VERSION_MAJOR} GREATER_EQUAL 3)
if (${Python_VERSION_MINOR} GREATER_EQUAL 6)
set_property(SOURCE ${SwigFile} APPEND PROPERTY SWIG_FLAGS -features python:annotations=c)
else ()
set_property(SOURCE ${SwigFile} APPEND PROPERTY SWIG_FLAGS -features python:annotations=c,python:annotations:novar)
endif ()
endif ()

if (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} VERSION_GREATER 3.7)
Expand Down

0 comments on commit 8a7e27f

Please sign in to comment.