微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用xmake编译swift代码

xmake不仅可以支持 c/c++文件,同时也支持 objc/c++,甚至swift代码的编译。

我们先看一下如何创建Swift工程,首先执行--help,看下帮助文档:

xmake create --help

显示如下:

Usage: xmake create [options] [target]

Create a new project.

Options: 
    -n NAME,--name=NAME                   The project name.
    -f FILE,--file=FILE                   Create a given xmake.lua file. (default: xmake.lua)
    -P PROJECT,--project=PROJECT          Create from the given project directory.
                                           Search priority:
                                               1. The Given Command Argument
                                               2. The Envirnoment Variable: XMAKE_PROJECT_DIR
                                               3. The Current Directory
    -l LANGUAGE,--language=LANGUAGE       The project language (default: c)
                                               - c
                                               - c++
                                               - objc
                                               - objc++
                                               - swift
    -t TEMPLATE,--template=TEMPLATE       Select the project template id of the given language. (default: 1)
                                               - language: c
                                                 1. The Console Program
                                                 2. The Console Program (tBox)
                                                 3. The Shared Library
                                                 4. The Shared Library (tBox)
                                                 5. The Static Library
                                                 6. The Static Library (tBox)
                                               - language: c++
                                                 1. The Console Program
                                                 2. The Console Program (tBox)
                                                 3. The Shared Library
                                                 4. The Shared Library (tBox)
                                                 5. The Static Library
                                                 6. The Static Library (tBox)
                                               - language: objc
                                                 1. The Console Program
                                               - language: objc++
                                                 1. The Console Program
                                               - language: swift
                                                 1. The Console Program
                                           
    -v,--verbose                          Print lots of verbose information.
        --version                          Print the version number and exit.
    -h,--help                             Print this help message and exit.
                                           
    target                                 Create the given target.
                                           Uses the project name as target if not exists.

可以看到 只要指定 语言为swift,工程模板选择1,就能创建一个基于swift的控制台项目,具体操作如下:

xmake create -l swift -t 1 -P /tmp/test -n swift_test

执行完成后,就会在/tmp/test目录下自动生成一个名为swift_test的工程

我们看下生成好的xmake.lua

-- the debug mode
if modes("debug") then
    
    -- enable the debug symbols
    set_symbols("debug")

    -- disable optimization
    set_optimize("none")
end

-- the release mode
if modes("release") then

    -- set the symbols visibility: hidden
    set_symbols("hidden")

    -- enable fastest optimization
    set_optimize("fastest")

    -- strip all symbols
    set_strip("all")
end

-- add target
add_target("swift_test")

    -- set kind
    set_kind("binary")

    -- add files
    add_files("src/*.swift")

可以看到,和平常的xmake.lua描述没什么区别,唯一的改动就是:add_files("src/*.swift")

生成的main.swift代码,也很简单:

import Foundation

print("Hello World!")

现在我们进入/tmp/test目录编译下:

cd /tmp/test
xmake

编译完后,就可以运行了:

xmake r swift_test

显示效果

··· Hello World! ···

搞定。

原文地址:https://www.jb51.cc/swift/325190.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐