1 Star 0 Fork 0

kumo-pub/kmpkg

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
文件
Clone or Download
z_kmpkg_setup_pkgconfig_path.cmake 2.41 KB
Copy Edit Raw Blame History
李寅斌 authored 2024-08-26 00:24 +08:00 . init
function(z_kmpkg_setup_pkgconfig_path)
cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "CONFIG" "")
if("${arg_CONFIG}" STREQUAL "")
message(FATAL_ERROR "CONFIG is required.")
endif()
if(DEFINED arg_UNPARSED_ARGUMENTS)
message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}")
endif()
foreach(envvar IN ITEMS PKG_CONFIG PKG_CONFIG_PATH)
if(DEFINED ENV{${envvar}})
set("z_kmpkg_env_backup_${envvar}" "$ENV{${envvar}}" PARENT_SCOPE)
else()
unset("z_kmpkg_env_backup_${envvar}" PARENT_SCOPE)
endif()
endforeach()
kmpkg_find_acquire_program(PKGCONFIG)
get_filename_component(pkgconfig_path "${PKGCONFIG}" DIRECTORY)
cmake_path(CONVERT "$ENV{PATH}" TO_CMAKE_PATH_LIST path_list NORMALIZE)
cmake_path(CONVERT "${pkgconfig_path}" TO_CMAKE_PATH_LIST pkgconfig_path NORMALIZE)
if(NOT "${pkgconfig_path}" IN_LIST path_list)
kmpkg_add_to_path("${pkgconfig_path}")
endif()
unset(path_list)
unset(pkgconfig_path)
set(ENV{PKG_CONFIG} "${PKGCONFIG}")
foreach(prefix IN ITEMS "${CURRENT_INSTALLED_DIR}" "${CURRENT_PACKAGES_DIR}")
kmpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${prefix}/share/pkgconfig")
if(arg_CONFIG STREQUAL "RELEASE")
kmpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${prefix}/lib/pkgconfig")
# search order is lib, share, external
elseif(arg_CONFIG STREQUAL "DEBUG")
kmpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} "${prefix}/debug/lib/pkgconfig")
# search order is debug/lib, share, external
else()
message(FATAL_ERROR "CONFIG must be either RELEASE or DEBUG.")
endif()
endforeach()
# total search order is current packages dir, current installed dir, external
endfunction()
function(z_kmpkg_restore_pkgconfig_path)
cmake_parse_arguments(PARSE_ARGV 0 "arg" "" "" "")
if(DEFINED arg_UNPARSED_ARGUMENTS)
message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} was passed extra arguments: ${arg_UNPARSED_ARGUMENTS}")
endif()
foreach(envvar IN ITEMS PKG_CONFIG PKG_CONFIG_PATH)
if(DEFINED z_kmpkg_env_backup_${envvar})
set("ENV{${envvar}}" "${z_kmpkg_env_backup_${envvar}}")
else()
unset("ENV{${envvar}}")
endif()
endforeach()
endfunction()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/kumo-pub/kmpkg.git
git@gitee.com:kumo-pub/kmpkg.git
kumo-pub
kmpkg
kmpkg
master

Search