Skip to content

Commit 0791930

Browse files
committed
stage python extension only for staged plugins
1 parent 3499a39 commit 0791930

File tree

4 files changed

+52
-26
lines changed

4 files changed

+52
-26
lines changed

debian/rules

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ CMAKE_OPTS := \
6060
-DWITH_INTERNAL_MARKUPSAFE=FALSE \
6161
-DWITH_INTERNAL_PYGMENTS=FALSE \
6262
-DWITH_INTERNAL_DATEUTIL=FALSE \
63-
-DWITH_INTERNAL_PYTZ=FALSE
63+
-DWITH_INTERNAL_PYTZ=FALSE \
64+
-DWITH_INTERNAL_SIX=FALSE
6465

6566
ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
6667
NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))

ms-windows/osgeo4w/package-nightly.cmd

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -162,11 +162,12 @@ cmake %CMAKE_OPT% ^
162162
-D CMAKE_INSTALL_PREFIX=%O4W_ROOT%/apps/%PACKAGENAME% ^
163163
-D FCGI_INCLUDE_DIR=%O4W_ROOT%/include ^
164164
-D FCGI_LIBRARY=%O4W_ROOT%/lib/libfcgi.lib ^
165-
-D WITH_INTERNAL_JINJA2=FALSE \
166-
-D WITH_INTERNAL_MARKUPSAFE=FALSE \
167-
-D WITH_INTERNAL_PYGMENTS=FALSE \
168-
-D WITH_INTERNAL_DATEUTIL=FALSE \
169-
-D WITH_INTERNAL_PYTZ=FALSE \
165+
-D WITH_INTERNAL_JINJA2=FALSE ^
166+
-D WITH_INTERNAL_MARKUPSAFE=FALSE ^
167+
-D WITH_INTERNAL_PYGMENTS=FALSE ^
168+
-D WITH_INTERNAL_DATEUTIL=FALSE ^
169+
-D WITH_INTERNAL_PYTZ=FALSE ^
170+
-D WITH_INTERNAL_SIX=FALSE ^
170171
%SRCDIR%
171172
if errorlevel 1 (echo cmake failed & goto error)
172173

python/CMakeLists.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
SET(PYTHON_OUTPUT_DIRECTORY ${QGIS_OUTPUT_DIRECTORY}/python)
22

3-
ADD_SUBDIRECTORY(plugins)
4-
ADD_SUBDIRECTORY(qsci_apis)
5-
ADD_SUBDIRECTORY(console)
6-
ADD_SUBDIRECTORY(pyplugin_installer)
7-
ADD_SUBDIRECTORY(ext-libs)
8-
93
IF (WITH_INTERNAL_SPATIALITE)
104
INCLUDE_DIRECTORIES(
115
../src/core/spatialite/headers
@@ -18,6 +12,12 @@ FILE (MAKE_DIRECTORY ${QGIS_PYTHON_OUTPUT_DIRECTORY})
1812
SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${QGIS_PYTHON_OUTPUT_DIRECTORY})
1913
SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${QGIS_PYTHON_OUTPUT_DIRECTORY})
2014

15+
ADD_SUBDIRECTORY(plugins)
16+
ADD_SUBDIRECTORY(qsci_apis)
17+
ADD_SUBDIRECTORY(console)
18+
ADD_SUBDIRECTORY(pyplugin_installer)
19+
ADD_SUBDIRECTORY(ext-libs)
20+
2121
INCLUDE_DIRECTORIES(
2222
${PYTHON_INCLUDE_PATH}
2323
${SIP_INCLUDE_DIR}

python/ext-libs/CMakeLists.txt

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,59 @@ ENDIF (WITH_PYSPATIALITE)
88

99
MACRO(EXT_PYLIB lib)
1010
STRING(TOUPPER ${lib} ulib)
11-
SET (WITH_INTERNAL_${ulib} TRUE CACHE BOOL "Determines whether ${ulib} should be included")
11+
SET (WITH_INTERNAL_${ulib} TRUE CACHE BOOL "Determines whether python ${lib} should be included")
1212
IF(WITH_INTERNAL_${ulib})
1313
INSTALL(DIRECTORY ${lib} DESTINATION "${QGIS_PYTHON_DIR}")
1414

15-
ADD_CUSTOM_TARGET(py${lib} ALL)
16-
FILE(GLOB_RECURSE files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${lib}/*)
17-
FOREACH(file ${files})
15+
IF(WITH_STAGED_PLUGINS)
16+
ADD_CUSTOM_TARGET(py${lib} ALL)
17+
18+
FILE(GLOB_RECURSE files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${lib}/*)
1819
ADD_CUSTOM_COMMAND(TARGET py${lib}
1920
POST_BUILD
20-
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${file} "${PYTHON_OUTPUT_DIRECTORY}/${file}"
21+
COMMAND ${CMAKE_COMMAND} -E copy_directory ${lib} "${PYTHON_OUTPUT_DIRECTORY}/${lib}"
2122
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
22-
COMMENT "Copy ${file} => ${PYTHON_OUTPUT_DIRECTORY}/${file}"
23-
DEPENDS ${file}
23+
DEPENDS ${files}
2424
)
25-
ENDFOREACH(file)
25+
26+
IF(WITH_PY_COMPILE)
27+
ADD_CUSTOM_TARGET(pycompile-py${lib} ALL
28+
COMMAND ${PYTHON_EXECUTABLE} -m compileall -q "${PYTHON_OUTPUT_DIRECTORY}/${lib}"
29+
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
30+
COMMENT "Byte-compiling staged extension ${lib}..."
31+
DEPENDS py${lib}
32+
)
33+
ENDIF(WITH_PY_COMPILE)
34+
ENDIF(WITH_STAGED_PLUGINS)
2635
ENDIF(WITH_INTERNAL_${ulib})
2736
ENDMACRO(EXT_PYLIB lib)
2837

2938
FOREACH(pkg httplib2 jinja2 markupsafe owslib pygments dateutil pytz)
3039
EXT_PYLIB(${pkg})
3140
ENDFOREACH(pkg)
3241

42+
SET (WITH_INTERNAL_SIX TRUE CACHE BOOL "Determines whether python six should be included")
3343
IF(WITH_INTERNAL_SIX)
3444
INSTALL(FILES six.py DESTINATION "${QGIS_PYTHON_DIR}")
3545

36-
ADD_CUSTOM_COMMAND(TARGET pyutils
37-
POST_BUILD
38-
COMMAND ${CMAKE_COMMAND} -E copy six.py "${PYTHON_OUTPUT_DIRECTORY}"
39-
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
40-
DEPENDS six.py
41-
)
46+
IF(WITH_STAGED_PLUGINS)
47+
ADD_CUSTOM_TARGET(pysix ALL)
48+
49+
ADD_CUSTOM_COMMAND(TARGET pysix
50+
POST_BUILD
51+
COMMAND ${CMAKE_COMMAND} -E copy six.py "${PYTHON_OUTPUT_DIRECTORY}"
52+
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
53+
DEPENDS six.py
54+
)
55+
56+
IF(WITH_PY_COMPILE)
57+
ADD_CUSTOM_TARGET(pycompile-pysix ALL
58+
COMMAND ${PYTHON_EXECUTABLE} -m compileall -q "${PYTHON_OUTPUT_DIRECTORY}/${lib}"
59+
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
60+
COMMENT "Byte-compiling staged extension ${lib}..."
61+
DEPENDS pysix
62+
)
63+
ENDIF(WITH_PY_COMPILE)
64+
ENDIF(WITH_STAGED_PLUGINS)
4265
ENDIF(WITH_INTERNAL_SIX)
66+

0 commit comments

Comments
 (0)