summaryrefslogtreecommitdiff
path: root/xmake/modules
diff options
context:
space:
mode:
authorruki <[email protected]>2020-02-18 22:35:50 +0800
committerruki <[email protected]>2020-02-18 09:35:01 +0800
commit753309f3eca9445904c2e70d99fcdc49a67e5add (patch)
tree141d7d83ff6cbe8782c9ab85f981d993f573cfb8 /xmake/modules
parent0835cadcfe5f48870790cce20d6a3968d7b1ccf7 (diff)
move trybuild config
Diffstat (limited to 'xmake/modules')
-rw-r--r--xmake/modules/private/action/trybuild/autotools.lua47
-rw-r--r--xmake/modules/private/action/trybuild/cmake.lua54
-rw-r--r--xmake/modules/private/action/trybuild/make.lua37
-rw-r--r--xmake/modules/private/action/trybuild/msbuild.lua38
-rw-r--r--xmake/modules/private/action/trybuild/xcodebuild.lua38
5 files changed, 214 insertions, 0 deletions
diff --git a/xmake/modules/private/action/trybuild/autotools.lua b/xmake/modules/private/action/trybuild/autotools.lua
new file mode 100644
index 000000000..c2bda369e
--- /dev/null
+++ b/xmake/modules/private/action/trybuild/autotools.lua
@@ -0,0 +1,47 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file autotools.lua
+--
+
+-- imports
+import("core.base.option")
+import("lib.detect.find_file")
+
+-- detect build-system and configuration file
+function detect()
+ return find_file("configure", os.curdir()) or find_file("configure.ac", os.curdir())
+end
+
+-- do build
+function build()
+ if not os.isfile("configure") then
+ if os.isfile("autogen.sh") then
+ os.execv("sh", {"./autogen.sh"})
+ elseif os.isfile("configure.ac") then
+ os.exec("autoreconf --install --symlink")
+ end
+ end
+ os.mkdir("build/install")
+ os.exec("./configure --prefix=%s", path.absolute("build/install"))
+ os.exec("make -j4")
+ os.exec("make install")
+ cprint("installed to ${bright}%s", path.absolute("build/install"))
+ cprint("${bright}build ok!")
+end
+
+
diff --git a/xmake/modules/private/action/trybuild/cmake.lua b/xmake/modules/private/action/trybuild/cmake.lua
new file mode 100644
index 000000000..09ad6750c
--- /dev/null
+++ b/xmake/modules/private/action/trybuild/cmake.lua
@@ -0,0 +1,54 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file cmake.lua
+--
+
+-- imports
+import("core.base.option")
+import("lib.detect.find_file")
+
+-- detect build-system and configuration file
+function detect()
+ return find_file("CMakeLists.txt", os.curdir())
+end
+
+-- do build
+function build()
+ os.mkdir("build")
+ os.cd("build")
+ if is_host("windows") and os.arch() == "x64" then
+ os.exec("cmake -A x64 -DCMAKE_INSTALL_PREFIX=\"%s\" ..", path.absolute("build/install"))
+ else
+ os.exec("cmake -DCMAKE_INSTALL_PREFIX=\"%s\" ..", path.absolute("build/install"))
+ end
+ if is_host("windows") then
+
+ local slnfile = assert(find_file("*.sln", os.curdir()), "*.sln file not found!")
+ os.exec("msbuild \"%s\" -nologo -t:Rebuild -p:Configuration=Release -p:Platform=%s", slnfile, os.arch() == "x64" and "x64" or "Win32")
+
+ local projfile = os.isfile("INSTALL.vcxproj") and "INSTALL.vcxproj" or "INSTALL.vcproj"
+ os.exec("msbuild \"%s\" /property:configuration=Release", projfile)
+ else
+ os.exec("make -j4")
+ os.exec("make install")
+ end
+ cprint("installed to ${bright}%s", path.absolute("build/install"))
+ cprint("${bright}build ok!")
+end
+
+
diff --git a/xmake/modules/private/action/trybuild/make.lua b/xmake/modules/private/action/trybuild/make.lua
new file mode 100644
index 000000000..4572e4e73
--- /dev/null
+++ b/xmake/modules/private/action/trybuild/make.lua
@@ -0,0 +1,37 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file make.lua
+--
+
+-- imports
+import("core.base.option")
+import("lib.detect.find_file")
+
+-- detect build-system and configuration file
+function detect()
+ return find_file("[mM]akefile", os.curdir())
+end
+
+-- do build
+function build()
+ os.exec("make clean")
+ os.exec("make -j" .. option.get("jobs"))
+ cprint("${bright}build ok!")
+end
+
+
diff --git a/xmake/modules/private/action/trybuild/msbuild.lua b/xmake/modules/private/action/trybuild/msbuild.lua
new file mode 100644
index 000000000..18005c70e
--- /dev/null
+++ b/xmake/modules/private/action/trybuild/msbuild.lua
@@ -0,0 +1,38 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file msbuild.lua
+--
+
+-- imports
+import("core.base.option")
+import("lib.detect.find_file")
+
+-- detect build-system and configuration file
+function detect()
+ if is_host("windows") then
+ return find_file("*.sln", os.curdir())
+ end
+end
+
+-- do build
+function build()
+ os.exec("msbuild \"%s\" -nologo -t:Rebuild -p:Configuration=Release -p:Platform=%s", buildfile, os.arch() == "x64" and "x64" or "Win32")
+ cprint("${bright}build ok!")
+end
+
+
diff --git a/xmake/modules/private/action/trybuild/xcodebuild.lua b/xmake/modules/private/action/trybuild/xcodebuild.lua
new file mode 100644
index 000000000..81a15018c
--- /dev/null
+++ b/xmake/modules/private/action/trybuild/xcodebuild.lua
@@ -0,0 +1,38 @@
+--!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-2020, TBOOX Open Source Group.
+--
+-- @author ruki
+-- @file xcodebuild.lua
+--
+
+-- imports
+import("core.base.option")
+import("lib.detect.find_directory")
+
+-- detect build-system and configuration file
+function detect()
+ if is_host("macosx") then
+ return find_directory("*.xcworkspace", os.curdir()) or find_directory("*.xcodeproj", os.curdir())
+ end
+end
+
+-- do build
+function build()
+ os.exec("xcodebuild clean build CODE_SIGN_IDENTITY=\"\" CODE_SIGNING_REQUIRED=NO")
+ cprint("${bright}build ok!")
+end
+
+