diff options
| author | ruki <[email protected]> | 2021-02-21 16:49:45 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2021-02-21 16:49:45 +0800 |
| commit | 01d5ccfc69f1475826fa01a0269cb9a7419d2c73 (patch) | |
| tree | 4642961e6aaee70e9b9c931450b474919377b143 /xmake/modules/lib/detect/pkg_config.lua | |
| parent | 923489f49a9a83a5f1325ef84b48bb6e15d9972f (diff) | |
rename prefix: pkg-config to pkgconfig
Diffstat (limited to 'xmake/modules/lib/detect/pkg_config.lua')
| -rw-r--r-- | xmake/modules/lib/detect/pkg_config.lua | 187 |
1 files changed, 0 insertions, 187 deletions
diff --git a/xmake/modules/lib/detect/pkg_config.lua b/xmake/modules/lib/detect/pkg_config.lua deleted file mode 100644 index f9e1e9aeb..000000000 --- a/xmake/modules/lib/detect/pkg_config.lua +++ /dev/null @@ -1,187 +0,0 @@ ---!A cross-platform build utility based on Lua --- --- Licensed under the Apache License, Version 2.0 (the "License"); --- you may not use this file except in compliance with the License. --- You may obtain a copy of the License at --- --- http://www.apache.org/licenses/LICENSE-2.0 --- --- Unless required by applicable law or agreed to in writing, software --- distributed under the License is distributed on an "AS IS" BASIS, --- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. --- See the License for the specific language governing permissions and --- limitations under the License. --- --- Copyright (C) 2015-present, TBOOX Open Source Group. --- --- @author ruki --- @file pkg_config.lua --- - --- imports -import("core.base.global") -import("core.project.target") -import("core.project.config") -import("lib.detect.find_file") -import("lib.detect.find_library") -import("detect.tools.find_pkg_config") - --- get version --- --- @param name the package name --- @param opt the argument options, {configdirs = {"/xxxx/pkgconfig/"}} --- -function version(name, opt) - - -- attempt to add search paths from pkg-config - local pkg_config = find_pkg_config() - if not pkg_config then - return - end - - -- init options - opt = opt or {} - - -- init PKG_CONFIG_PATH - local configdirs_old = os.getenv("PKG_CONFIG_PATH") - local configdirs = table.wrap(opt.configdirs) - if #configdirs > 0 then - os.setenv("PKG_CONFIG_PATH", unpack(configdirs)) - end - - -- get version - local version = try { function() return os.iorunv(pkg_config, {"--modversion", name}) end } - if version then - version = version:trim() - end - - -- restore PKG_CONFIG_PATH - if configdirs_old then - os.setenv("PKG_CONFIG_PATH", configdirs_old) - end - - -- ok? - return version -end - --- get variables --- --- @param name the package name --- @param variables the variables --- @param opt the argument options, {configdirs = {"/xxxx/pkgconfig/"}} --- -function variables(name, variables, opt) - - -- attempt to add search paths from pkg-config - local pkg_config = find_pkg_config() - if not pkg_config then - return - end - - -- init options - opt = opt or {} - - -- init PKG_CONFIG_PATH - local configdirs_old = os.getenv("PKG_CONFIG_PATH") - local configdirs = table.wrap(opt.configdirs) - if #configdirs > 0 then - os.setenv("PKG_CONFIG_PATH", unpack(configdirs)) - end - - -- get variable value - local result = nil - if variables then - for _, variable in ipairs(table.wrap(variables)) do - local value = try { function () return os.iorunv(pkg_config, {"--variable=" .. variable, name}) end } - if value ~= nil then - result = result or {} - result[variable] = value:trim() - end - end - end - - -- restore PKG_CONFIG_PATH - if configdirs_old then - os.setenv("PKG_CONFIG_PATH", configdirs_old) - end - - -- ok? - return result -end - --- get library info --- --- @param name the package name --- @param opt the argument options, {version = true, variables = "includedir", configdirs = {"/xxxx/pkgconfig/"}} --- --- @return {links = {"ssl", "crypto", "z"}, linkdirs = {""}, includedirs = {""}, version = ""} --- --- @code --- --- local libinfo = pkg_config.libinfo("openssl") --- --- @endcode --- -function libinfo(name, opt) - - -- attempt to add search paths from pkg-config - local pkg_config = find_pkg_config() - if not pkg_config then - return - end - - -- init options - opt = opt or {} - - -- init PKG_CONFIG_PATH - local configdirs_old = os.getenv("PKG_CONFIG_PATH") - local configdirs = table.wrap(opt.configdirs) - if #configdirs > 0 then - os.setenv("PKG_CONFIG_PATH", unpack(configdirs)) - end - - -- get libs and cflags - local result = nil - local flags = try { function () return os.iorunv(pkg_config, {"--libs", "--cflags", name}) end } - if flags then - - -- init result - result = {} - for _, flag in ipairs(os.argv(flags)) do - if flag:startswith("-L") and #flag > 2 then - -- get linkdirs - local linkdir = flag:sub(3) - if linkdir and os.isdir(linkdir) then - result.linkdirs = result.linkdirs or {} - table.insert(result.linkdirs, linkdir) - end - elseif flag:startswith("-I") and #flag > 2 then - -- get includedirs - local includedir = flag:sub(3) - if includedir and os.isdir(includedir) then - result.includedirs = result.includedirs or {} - table.insert(result.includedirs, includedir) - end - elseif flag:startswith("-l") and #flag > 2 then - -- get links - local link = flag:sub(3) - result.links = result.links or {} - table.insert(result.links, link) - end - end - end - - -- get version - local version = try { function() return os.iorunv(pkg_config, {"--modversion", name}) end } - if version then - result = result or {} - result.version = version:trim() - end - - -- restore PKG_CONFIG_PATH - if configdirs_old then - os.setenv("PKG_CONFIG_PATH", configdirs_old) - end - return result -end - |
