summaryrefslogtreecommitdiff
path: root/xmake/modules/detect
diff options
context:
space:
mode:
authorruki <[email protected]>2019-01-25 00:59:27 +0800
committerruki <[email protected]>2019-01-24 23:56:46 +0800
commite7627900b6acfeaefd69e65927178ee16ca0374e (patch)
tree824bc219d363ac4044972f2b504137d0b1280e61 /xmake/modules/detect
parentfc20a39a1a046630864ff21d8156dc1e1ca99fb3 (diff)
generate conanfile.txt
Diffstat (limited to 'xmake/modules/detect')
-rw-r--r--xmake/modules/detect/sdks/find_conandir.lua99
-rw-r--r--xmake/modules/detect/tools/find_conan.lua58
2 files changed, 58 insertions, 99 deletions
diff --git a/xmake/modules/detect/sdks/find_conandir.lua b/xmake/modules/detect/sdks/find_conandir.lua
deleted file mode 100644
index 7b2ec65ea..000000000
--- a/xmake/modules/detect/sdks/find_conandir.lua
+++ /dev/null
@@ -1,99 +0,0 @@
---!A cross-platform build utility based on Lua
---
--- Licensed to the Apache Software Foundation (ASF) under one
--- or more contributor license agreements. See the NOTICE file
--- distributed with this work for additional information
--- regarding copyright ownership. The ASF licenses this file
--- to you 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 - 2019, TBOOX Open Source Group.
---
--- @author ruki
--- @file find_conandir.lua
---
-
--- imports
-import("lib.detect.cache")
-import("lib.detect.find_file")
-import("core.base.option")
-import("core.base.global")
-import("core.project.config")
-
--- find conan directory
-function _find_conandir(sdkdir)
-
- -- init the search directories
- local pathes = {}
- if sdkdir then
- table.insert(pathes, sdkdir)
- end
- table.insert(pathes, path.translate("~/.conan"))
-
- -- attempt to find conan.conf
- local conan = find_file("conan.conf", pathes)
- if conan then
- return path.directory(conan)
- end
-end
-
--- find conan directory
---
--- @param sdkdir the conan directory
--- @param opt the argument options, .e.g {verbose = true, force = false}
---
--- @return the conan directory
---
--- @code
---
--- local conandir = find_conandir()
---
--- @endcode
---
-function main(sdkdir, opt)
-
- -- init arguments
- opt = opt or {}
-
- -- attempt to load cache first
- local key = "detect.sdks.find_conandir" .. (sdkdir or "")
- local cacheinfo = cache.load(key)
- if not opt.force and cacheinfo.conan ~= nil then
- return cacheinfo.conan
- end
-
- -- find conan
- local conan = _find_conandir(sdkdir or config.get("conan") or global.get("conan"))
- if conan then
-
- -- save to config
- config.set("conan", conan, {force = true, readonly = true})
-
- -- trace
- if opt.verbose or option.get("verbose") then
- cprint("checking for the conan directory ... ${color.success}%s", conan)
- end
- else
-
- -- trace
- if opt.verbose or option.get("verbose") then
- cprint("checking for the conan directory ... ${color.nothing}${text.nothing}")
- end
- end
-
- -- save to cache
- cacheinfo.conan = conan or false
- cache.save(key, cacheinfo)
-
- -- ok?
- return conan
-end
diff --git a/xmake/modules/detect/tools/find_conan.lua b/xmake/modules/detect/tools/find_conan.lua
new file mode 100644
index 000000000..4580d5779
--- /dev/null
+++ b/xmake/modules/detect/tools/find_conan.lua
@@ -0,0 +1,58 @@
+--!A cross-platform build utility based on Lua
+--
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements. See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership. The ASF licenses this file
+-- to you 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 - 2019, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file find_conan.lua
+--
+
+-- imports
+import("lib.detect.find_program")
+import("lib.detect.find_programver")
+
+-- find conan
+--
+-- @param opt the argument options, .e.g {version = true}
+--
+-- @return program, version
+--
+-- @code
+--
+-- local conan = find_conan()
+-- local conan, version = find_conan({version = true})
+--
+-- @endcode
+--
+function main(opt)
+
+ -- init options
+ opt = opt or {}
+
+ -- find program
+ local program = find_program(opt.program or "conan", opt)
+
+ -- find program version
+ local version = nil
+ if program and opt and opt.version then
+ version = find_programver(program, opt)
+ end
+
+ -- ok?
+ return program, version
+end