1
1
2
+ IF (WIN32 )
3
+ SET (BINDINGS_CORE_LIB ${CMAKE_CURRENT_BINARY_DIR} /core/core.pyd)
4
+ SET (BINDINGS_GUI_LIB ${CMAKE_CURRENT_BINARY_DIR} /gui/gui.pyd)
5
+ SET (QGIS_CORE_LIB ${CMAKE_BINARY_DIR} /src/core/libqgis_core.dll)
6
+ SET (QGIS_GUI_LIB ${CMAKE_BINARY_DIR} /src/gui/libqgis_gui.dll)
7
+ ELSE (WIN32 )
8
+ SET (BINDINGS_CORE_LIB ${CMAKE_CURRENT_BINARY_DIR} /core/core.so)
9
+ SET (BINDINGS_GUI_LIB ${CMAKE_CURRENT_BINARY_DIR} /gui/gui.so)
10
+ SET (QGIS_CORE_LIB ${CMAKE_BINARY_DIR} /src/core/libqgis_core.so)
11
+ SET (QGIS_GUI_LIB ${CMAKE_BINARY_DIR} /src/gui/libqgis_gui.so)
12
+ ENDIF (WIN32 )
13
+
14
+ SET (BINDINGS_LIBS ${BINDING_CORE_LIB} ${BINDINGS_GUI_LIB} )
15
+
16
+ SET (BINDINGS_CORE_MAKEFILE ${CMAKE_CURRENT_BINARY_DIR} /core/Makefile)
17
+ SET (BINDINGS_GUI_MAKEFILE ${CMAKE_CURRENT_BINARY_DIR} /gui/Makefile)
2
18
3
- ADD_CUSTOM_TARGET (python ALL DEPENDS run_sip compile_python_core compile_python_gui)
4
19
20
+ # 'python' target will force to build bindings libs for core and gui
21
+ ADD_CUSTOM_TARGET (python ALL DEPENDS ${BINDINGS_CORE_LIB} ${BINDINGS_GUI_LIB} )
22
+
23
+ # don't run python before the libs are built
5
24
ADD_DEPENDENCIES (python qgis_core qgis_gui)
6
25
26
+
7
27
# Step 1: during configuration
8
28
# create file configure.py from configure.py.in
9
29
CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR} /configure.py.in
10
- ${CMAKE_CURRENT_SOURCE_DIR } /configure.py)
30
+ ${CMAKE_CURRENT_BINARY_DIR } /configure.py)
11
31
12
32
# Step 2: during make
13
33
# run python configure.py
14
- ADD_CUSTOM_COMMAND (OUTPUT run_sip PRE_BUILD
34
+ # it will run SIP utility to generate sources and will prepare makefiles
35
+ # should be run everytime core or gui library has been changed
36
+ ADD_CUSTOM_COMMAND (OUTPUT ${BINDINGS_CORE_MAKEFILE} ${BINDINGS_GUI_MAKEFILE} PRE_BUILD
15
37
COMMAND ${PYTHON_EXECUTABLE}
16
- ARGS ${CMAKE_CURRENT_SOURCE_DIR} /configure.py)
38
+ ARGS ${CMAKE_CURRENT_BINARY_DIR} /configure.py
39
+ DEPENDS ${QGIS_CORE_LIB} ${QGIS_GUI_LIB} )
17
40
18
41
# Step 3: run make in core and gui subdirs
19
- ADD_CUSTOM_COMMAND (OUTPUT compile_python_core PRE_LINK
42
+ ADD_CUSTOM_COMMAND (OUTPUT ${BINDINGS_CORE_LIB} PRE_LINK
20
43
COMMAND ${CMAKE_MAKE_PROGRAM}
21
44
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /core
22
- DEPENDS run_sip )
23
- ADD_CUSTOM_COMMAND (OUTPUT compile_python_gui PRE_LINK
45
+ DEPENDS ${BINDINGS_CORE_MAKEFILE} )
46
+ ADD_CUSTOM_COMMAND (OUTPUT ${BINDINGS_GUI_LIB} PRE_LINK
24
47
COMMAND ${CMAKE_MAKE_PROGRAM}
25
48
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /gui
26
- DEPENDS run_sip )
49
+ DEPENDS ${BINDINGS_GUI_MAKEFILE} )
27
50
28
51
29
52
# python's site-packages dir: bindings will be installed here
@@ -43,12 +66,5 @@ ENDIF (UNIX)
43
66
EXEC_PROGRAM (${PYTHON_EXECUTABLE} ARGS -c "\" ${CMD} \" " OUTPUT_VARIABLE SITE_PKG_PATH)
44
67
45
68
# Step 4: install built libs to python's site packages
46
- IF (WIN32 )
47
- SET (BINDINGS_LIBS ${CMAKE_CURRENT_BINARY_DIR} /core/core.pyd
48
- ${CMAKE_CURRENT_BINARY_DIR} /gui/gui.pyd)
49
- ELSE (WIN32 )
50
- SET (BINDINGS_LIBS ${CMAKE_CURRENT_BINARY_DIR} /core/core.so
51
- ${CMAKE_CURRENT_BINARY_DIR} /gui/gui.so)
52
- ENDIF (WIN32 )
69
+ INSTALL (FILES __init__.py ${CMAKE_CURRENT_BINARY_DIR} /qgisconfig.py ${BINDINGS_LIBS} DESTINATION ${SITE_PKG_PATH} /qgis)
53
70
54
- INSTALL (FILES __init__.py qgisconfig.py ${BINDINGS_LIBS} DESTINATION ${SITE_PKG_PATH} /qgis)
0 commit comments