blob: 57f872855e0f1443a16bfb9527b4109b2b8ebb33 (
plain)
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
|
include_guard(GLOBAL)
function(z_vcpkg_get_gobject_introspection_python out_var)
if(VCPKG_CROSSCOMPILING)
message(STATUS
"Cross build with gobject-introspection. "
"Building and using ${PORT} will fail if the host cannot execute target binaries."
)
endif()
set(target_python "${CURRENT_INSTALLED_DIR}/tools/python3/python3${VCPKG_TARGET_EXECUTABLE_SUFFIX}")
if(VCPKG_TARGET_IS_WINDOWS)
set(target_python "${CURRENT_INSTALLED_DIR}/tools/python3/python.exe")
endif()
# Varation of x_vcpkg_get_python_packages, but
# - providing the interpreter for the target
# - using venv also for windows
message(STATUS "Setting up ${TARGET_TRIPLET} python venv which provides setuptools...")
set(venv_path "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-gir-venv")
file(REMOVE_RECURSE "${venv_path}")
file(MAKE_DIRECTORY "${venv_path}")
set(python_sub_path /bin)
set(python_venv_options --symlinks)
if(VCPKG_TARGET_IS_WINDOWS)
set(python_sub_path /Scripts)
set(python_venv_options --copies)
endif()
set(ENV{PYTHONNOUSERSITE} "1")
vcpkg_execute_required_process(
COMMAND "${target_python}" -I -m venv ${python_venv_options} "${venv_path}"
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}"
LOGNAME "venv-init-${TARGET_TRIPLET}"
)
set(gobject_introspection_python "${venv_path}${python_sub_path}/python${VCPKG_TARGET_EXECUTABLE_SUFFIX}")
set(ENV{VIRTUAL_ENV} "${venv_path}")
unset(ENV{PYTHONHOME})
unset(ENV{PYTHONPATH})
vcpkg_execute_required_process(
COMMAND "${gobject_introspection_python}" -I -m pip install setuptools
WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}"
LOGNAME "venv-install-setuptools-${TARGET_TRIPLET}"
)
message(STATUS "Finished (with ${out_var} at ${gobject_introspection_python})")
set("${out_var}" "${gobject_introspection_python}" PARENT_SCOPE)
endfunction()
function(vcpkg_get_gobject_introspection_programs)
if("PYTHON3" IN_LIST ARGN)
z_vcpkg_get_gobject_introspection_python(PYTHON3)
set(PYTHON3 "${PYTHON3}" PARENT_SCOPE)
list(REMOVE_ITEM ARGN "PYTHON3")
endif()
if("GIR_COMPILER" IN_LIST ARGN)
set(GIR_COMPILER "${CURRENT_INSTALLED_DIR}/tools/gobject-introspection/g-ir-compiler${VCPKG_TARGET_EXECUTABLE_SUFFIX}" PARENT_SCOPE)
list(REMOVE_ITEM ARGN "GIR_COMPILER")
endif()
if("GIR_SCANNER" IN_LIST ARGN)
set(GIR_SCANNER "${CURRENT_INSTALLED_DIR}/tools/gobject-introspection/g-ir-scanner" PARENT_SCOPE)
list(REMOVE_ITEM ARGN "GIR_SCANNER")
endif()
if(NOT ARGN STREQUAL "")
message(FATAL_ERROR "Unsupported arguments: ${ARGN}")
endif()
endfunction()
|