File: CMakeLists.txt

package info (click to toggle)
qgis 2.18.28%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 1,007,948 kB
  • sloc: cpp: 671,774; python: 158,539; xml: 35,690; ansic: 8,346; sh: 1,766; perl: 1,669; sql: 999; yacc: 836; lex: 461; makefile: 292
file content (87 lines) | stat: -rw-r--r-- 3,039 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# See ../CMakeLists.txt for info on staged-plugins* and clean-staged-plugins targets

SET (QGIS_PYTHON_DIR ${QGIS_DATA_DIR}/python)
SET (PYTHON_OUTPUT_DIRECTORY ${QGIS_OUTPUT_DIRECTORY}/python)

SET (WITH_PYSPATIALITE FALSE CACHE BOOL "Determines whether PYSPATIALITE should be built")
IF (WITH_PYSPATIALITE)
  ADD_SUBDIRECTORY(pyspatialite)
ENDIF (WITH_PYSPATIALITE)

MACRO(EXT_PYLIB lib)
  STRING(TOUPPER ${lib} ulib)
  SET (WITH_INTERNAL_${ulib} TRUE CACHE BOOL "Determines whether python ${lib} should be included")
  IF(WITH_INTERNAL_${ulib})
    INSTALL(DIRECTORY ${lib} DESTINATION "${QGIS_PYTHON_DIR}")

    ADD_CUSTOM_TARGET(py${lib})

    FILE(GLOB_RECURSE files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${lib}/*)
    ADD_CUSTOM_COMMAND(TARGET py${lib}
      POST_BUILD
      COMMAND ${CMAKE_COMMAND} -E copy_directory ${lib} "${PYTHON_OUTPUT_DIRECTORY}/${lib}"
      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
      DEPENDS ${files}
    )
    PY_COMPILE(py${lib} "${PYTHON_OUTPUT_DIRECTORY}/${lib}")

    ADD_DEPENDENCIES(staged-plugins py${lib})
    ADD_CUSTOM_COMMAND(TARGET clean-staged-plugins
      COMMAND ${CMAKE_COMMAND} -E remove_directory "${PYTHON_OUTPUT_DIRECTORY}/${lib}"
    )

  ENDIF(WITH_INTERNAL_${ulib})
ENDMACRO(EXT_PYLIB lib)

FOREACH(pkg markupsafe owslib dateutil pytz yaml nose2)
  EXT_PYLIB(${pkg})
ENDFOREACH(pkg)

IF(NOT ENABLE_PYTHON3)
  SET (WITH_INTERNAL_FUTURE TRUE CACHE BOOL "Determines whether python future should be included")
  IF(WITH_INTERNAL_FUTURE)
    ADD_CUSTOM_TARGET(pyfuture)

    FILE(GLOB items RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/future future/*)

    FOREACH(item ${items})
      INSTALL(DIRECTORY future/${item} DESTINATION "${QGIS_PYTHON_DIR}")
      FILE(GLOB_RECURSE files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/future future/*)
      ADD_CUSTOM_COMMAND(TARGET pyfuture
        POST_BUILD
        COMMAND ${CMAKE_COMMAND} -E copy_directory ${item} "${PYTHON_OUTPUT_DIRECTORY}/${item}"
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/future
        DEPENDS ${files}
      )
      PY_COMPILE(pyfuture "${PYTHON_OUTPUT_DIRECTORY}/${item}")

      ADD_CUSTOM_COMMAND(TARGET clean-staged-plugins
        COMMAND ${CMAKE_COMMAND} -E remove_directory "${PYTHON_OUTPUT_DIRECTORY}/${item}"
      )
    ENDFOREACH(item ${items})

    ADD_DEPENDENCIES(staged-plugins pyfuture)
  ENDIF(WITH_INTERNAL_FUTURE)
ENDIF(NOT ENABLE_PYTHON3)

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

  ADD_CUSTOM_TARGET(pysix)

  ADD_CUSTOM_COMMAND(TARGET pysix
    POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy six.py "${PYTHON_OUTPUT_DIRECTORY}"
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
    DEPENDS six.py
  )
  PY_COMPILE(pysix "${PYTHON_OUTPUT_DIRECTORY}/six.py")

  ADD_DEPENDENCIES(staged-plugins pysix)
  ADD_CUSTOM_COMMAND(TARGET clean-staged-plugins
    COMMAND ${CMAKE_COMMAND} -E remove "${PYTHON_OUTPUT_DIRECTORY}/six.py"
  )

ENDIF(WITH_INTERNAL_SIX)