summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2018-09-13 23:18:58 +0800
committerruki <[email protected]>2018-09-13 13:53:52 +0800
commitdac1984d3b770acab596703d1bed5e9a0aa38334 (patch)
tree0de02e12ac22176c662245c189b532ca3bb523e4
parent6a40b32309c23e7b56403686bd10af87a2bb353a (diff)
add find_cmake
-rw-r--r--xmake/actions/require/action/install.lua4
-rw-r--r--xmake/modules/detect/tools/find_cmake.lua58
-rw-r--r--xmake/repository/packages/c/cmake/xmake.lua5
3 files changed, 63 insertions, 4 deletions
diff --git a/xmake/actions/require/action/install.lua b/xmake/actions/require/action/install.lua
index 123521004..5d263d07f 100644
--- a/xmake/actions/require/action/install.lua
+++ b/xmake/actions/require/action/install.lua
@@ -181,7 +181,9 @@ function main(package)
end
-- make package from the install directory
- _make_package(package)
+ if package:kind() ~= "binary" then
+ _make_package(package)
+ end
-- test it
test(package)
diff --git a/xmake/modules/detect/tools/find_cmake.lua b/xmake/modules/detect/tools/find_cmake.lua
new file mode 100644
index 000000000..bb6281a07
--- /dev/null
+++ b/xmake/modules/detect/tools/find_cmake.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 - 2018, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file find_cmake.lua
+--
+
+-- imports
+import("lib.detect.find_program")
+import("lib.detect.find_programver")
+
+-- find cmake
+--
+-- @param opt the argument options, .e.g {version = true}
+--
+-- @return program, version
+--
+-- @code
+--
+-- local git = find_cmake()
+-- local git, version = find_cmake({version = true})
+--
+-- @endcode
+--
+function main(opt)
+
+ -- init options
+ opt = opt or {}
+
+ -- find program
+ local program = find_program(opt.program or "cmake", opt)
+
+ -- find program version
+ local version = nil
+ if opt and opt.version then
+ version = find_programver(program, opt)
+ end
+
+ -- ok?
+ return program, version
+end
diff --git a/xmake/repository/packages/c/cmake/xmake.lua b/xmake/repository/packages/c/cmake/xmake.lua
index c78f590fd..2e3ab2c0e 100644
--- a/xmake/repository/packages/c/cmake/xmake.lua
+++ b/xmake/repository/packages/c/cmake/xmake.lua
@@ -3,13 +3,12 @@ package("cmake")
set_kind("binary")
set_homepage("https://cmake.org")
set_description("A cross-platform family of tool designed to build, test and package software")
- add_imports("package.manager.install")
on_build(function (package)
end)
- on_install(function (package)
- install("cmake")
+ on_install("macosx", "linux", function (package)
+ import("package.manager.install")("cmake")
end)
on_install("windows", function (package)