diff options
| author | ruki <[email protected]> | 2020-04-08 23:42:19 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2020-04-08 16:13:55 +0800 |
| commit | ef120036428f173d235b1822a242173b12c7a6b8 (patch) | |
| tree | 9e4729fdd9475dffae2175bfdb1da9b3831b4738 /xmake/rules/xcode/application/build_file.lua | |
| parent | 4c12e160c53b2566f9c80a86d9f7350aee4f62b3 (diff) | |
seperate storyboard and xcassets rules
Diffstat (limited to 'xmake/rules/xcode/application/build_file.lua')
| -rw-r--r-- | xmake/rules/xcode/application/build_file.lua | 167 |
1 files changed, 0 insertions, 167 deletions
diff --git a/xmake/rules/xcode/application/build_file.lua b/xmake/rules/xcode/application/build_file.lua deleted file mode 100644 index 999dc8035..000000000 --- a/xmake/rules/xcode/application/build_file.lua +++ /dev/null @@ -1,167 +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-2020, TBOOX Open Source Group. --- --- @author ruki --- @file build_file.lua --- - --- imports -import("core.base.option") -import("core.theme.theme") -import("core.project.depend") - --- build *.xcassets file -function _build_xcassets_file(target, sourcefile, opt) - - -- get xcode sdk directory - local xcode_sdkdir = assert(get_config("xcode"), "xcode not found!") - local xcode_usrdir = path.join(xcode_sdkdir, "Contents", "Developer", "usr") - - -- get app resources directory - local resourcesdir = target:data("xcode.app.resourcesdir") - - -- need re-compile it? - local dependfile = target:dependfile(sourcefile) - local dependinfo = option.get("rebuild") and {} or (depend.load(dependfile) or {}) - if not depend.is_changed(dependinfo, {lastmtime = os.mtime(dependfile)}) then - return - end - - -- trace progress info - cprintf("${color.build.progress}" .. theme.get("text.build.progress_format") .. ":${clear} ", opt.progress) - if option.get("verbose") then - cprint("${dim color.build.object}compiling.xcode.xcassets %s", sourcefile) - else - cprint("${color.build.object}compiling.xcode.xcassets %s", sourcefile) - end - - -- do compile - local argv = {"--warnings", "--notices", "--output-format", "human-readable-text"} - if is_plat("macosx") then - table.insert(argv, "--target-device") - table.insert(argv, "mac") - table.insert(argv, "--platform") - table.insert(argv, "macosx") - elseif is_plat("iphoneos") then - table.insert(argv, "--target-device") - table.insert(argv, "iphone") - table.insert(argv, "--target-device") - table.insert(argv, "ipad") - table.insert(argv, "--platform") - table.insert(argv, "iphoneos") - else - assert("unknown device!") - end - table.insert(argv, "--minimum-deployment-target") - table.insert(argv, get_config("target_minver")) - table.insert(argv, "--app-icon") - table.insert(argv, "AppIcon") - if is_plat("iphoneos") then - table.insert(argv, "--enable-on-demand-resources") - table.insert(argv, "YES") - table.insert(argv, "--compress-pngs") - else - table.insert(argv, "--enable-on-demand-resources") - table.insert(argv, "NO") - end - table.insert(argv, "--development-region") - table.insert(argv, "en") - table.insert(argv, "--product-type") - table.insert(argv, "com.apple.product-type.application") - table.insert(argv, "--compile") - table.insert(argv, resourcesdir) - table.insert(argv, sourcefile) - os.vrunv(path.join(xcode_usrdir, "bin", "actool"), argv) - - -- update files and values to the dependent file - dependinfo.files = {sourcefile} - depend.save(dependinfo, dependfile) -end - --- build *.storyboard file -function _build_storyboard_file(target, sourcefile, opt) - - -- get xcode sdk directory - local xcode_sdkdir = assert(get_config("xcode"), "xcode not found!") - local xcode_usrdir = path.join(xcode_sdkdir, "Contents", "Developer", "usr") - - -- get base.lproj - local base_lproj = path.join(target:autogendir(), "rules", "xcode", "storyboard", "Base.lproj") - - -- get app resources directory - local resourcesdir = target:data("xcode.app.resourcesdir") - - -- need re-compile it? - local dependfile = target:dependfile(sourcefile) - local dependinfo = option.get("rebuild") and {} or (depend.load(dependfile) or {}) - if not depend.is_changed(dependinfo, {lastmtime = os.mtime(dependfile)}) then - return - end - - -- trace progress info - cprintf("${color.build.progress}" .. theme.get("text.build.progress_format") .. ":${clear} ", opt.progress) - if option.get("verbose") then - cprint("${dim color.build.object}compiling.xcode.storyboard %s", sourcefile) - else - cprint("${color.build.object}compiling.xcode.storyboard %s", sourcefile) - end - - -- do compile - local argv = {"--errors", "--warnings", "--notices", "--auto-activate-custom-fonts", "--output-format", "human-readable-text"} - if is_plat("macosx") then - table.insert(argv, "--target-device") - table.insert(argv, "mac") - elseif is_plat("iphoneos") then - table.insert(argv, "--target-device") - table.insert(argv, "iphone") - table.insert(argv, "--target-device") - table.insert(argv, "ipad") - else - assert("unknown device!") - end - table.insert(argv, "--minimum-deployment-target") - table.insert(argv, get_config("target_minver")) - table.insert(argv, "--compilation-directory") - table.insert(argv, base_lproj) - table.insert(argv, sourcefile) - os.vrunv(path.join(xcode_usrdir, "bin", "ibtool"), argv, {envs = {XCODE_DEVELOPER_USR_PATH = xcode_usrdir}}) - - -- do link - argv = {"--errors", "--warnings", "--notices", "--auto-activate-custom-fonts", "--output-format", "human-readable-text"} - if is_plat("macosx") then - table.insert(argv, "--target-device") - table.insert(argv, "mac") - end - table.insert(argv, "--minimum-deployment-target") - table.insert(argv, get_config("target_minver")) - table.insert(argv, "--link") - table.insert(argv, resourcesdir) - table.insert(argv, path.join(base_lproj, path.filename(sourcefile) .. "c")) - os.vrunv(path.join(xcode_usrdir, "bin", "ibtool"), argv, {envs = {XCODE_DEVELOPER_USR_PATH = xcode_usrdir}}) - - -- update files and values to the dependent file - dependinfo.files = {sourcefile} - depend.save(dependinfo, dependfile) -end - --- main entry -function main (target, sourcefile, opt) - if sourcefile:endswith(".xcassets") then - _build_xcassets_file(target, sourcefile, opt) - elseif sourcefile:endswith(".storyboard") then - _build_storyboard_file(target, sourcefile, opt) - end -end |
