diff options
Diffstat (limited to 'vcpkg/ports/gobject-introspection/vcpkg-port-config.cmake')
| -rw-r--r-- | vcpkg/ports/gobject-introspection/vcpkg-port-config.cmake | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/vcpkg/ports/gobject-introspection/vcpkg-port-config.cmake b/vcpkg/ports/gobject-introspection/vcpkg-port-config.cmake new file mode 100644 index 0000000..57f8728 --- /dev/null +++ b/vcpkg/ports/gobject-introspection/vcpkg-port-config.cmake @@ -0,0 +1,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() |