内容简介:xmake-gradle is a gradle plugin that integrates xmake seamlessly.If you want to know more, please refer to:XMake installed on the system. Available
xmake-gradle
A gradle plugin that integrates xmake seamlessly
Introduction ( 中文 )
xmake-gradle is a gradle plugin that integrates xmake seamlessly.
If you want to know more, please refer to:
Prerequisites
XMake installed on the system. Available here .
Apply the plugin
plugins DSL
plugins { id 'org.tboox.gradle-xmake-plugin' version '1.0.7' }
Legacy plugin application
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath 'org.tboox:gradle-xmake-plugin:1.0.7' } repositories { mavenCentral() } } apply plugin: "org.tboox.gradle-xmake-plugin"
Configuation
Simplest Example
We add xmake.lua
to projectdir/jni/xmake.lua
and enable xmake in build.gradle.
build.gradle
android { externalNativeBuild { xmake { path "jni/xmake.lua" } } }
JNI
The JNI project structure:
projectdir - src - main - java - jni - xmake.lua - *.cpp
xmake.lua:
add_rules("mode.debug", "mode.release") target("nativelib") set_kind("shared") add_files("nativelib.cc")
More Gradle Configuations
android { defaultConfig { externalNativeBuild { xmake { // append the global cflags (optional) cFlags "-DTEST" // append the global cppflags (optional) cppFlags "-DTEST", "-DTEST2" // switch the build mode to `debug` for `xmake f -m debug` (optional) buildMode "debug" // set abi filters (optional), e.g. armeabi, armeabi-v7a, arm64-v8a, x86, x86_64 // we can also get abiFilters from defaultConfig.ndk.abiFilters abiFilters "armeabi-v7a", "arm64-v8a" } } } externalNativeBuild { xmake { // enable xmake and set xmake.lua project file path path "jni/xmake.lua" // enable verbose output (optional), e.g. verbose, warning, normal logLevel "verbose" // set c++stl (optional), e.g. c++_static/c++_shared, gnustl_static/gnustl_shared, stlport_static/stlport_shared stl "c++_shared" // set the given xmake program path (optional) // program /usr/local/bin/xmake // disable stdc++ library (optional) // stdcxx false // set the given ndk directory path (optional) // ndk "/Users/ruki/files/android-ndk-r20b/" // set sdk version of ndk (optional) // sdkver 21 } } }
Build
Build JNI and generate apk
The xmakeBuild
will be injected to assemble
task automatically if the gradle-xmake-plugin has been applied.
$ ./gradlew app:assembleDebug > Task :nativelib:xmakeConfigureForArm64 > Task :nativelib:xmakeBuildForArm64 >> xmake build [ 50%]: ccache compiling.debug nativelib.cc [ 75%]: linking.debug libnativelib.so [100%]: build ok! >> install artifacts to /Users/ruki/projects/personal/xmake-gradle/nativelib/libs/arm64-v8a > Task :nativelib:xmakeConfigureForArmv7 > Task :nativelib:xmakeBuildForArmv7 >> xmake build [ 50%]: ccache compiling.debug nativelib.cc [ 75%]: linking.debug libnativelib.so [100%]: build ok! >> install artifacts to /Users/ruki/projects/personal/xmake-gradle/nativelib/libs/armeabi-v7a > Task :nativelib:preBuild > Task :nativelib:assemble > Task :app:assembleDebug
Force to rebuild JNI
$ ./gradlew nativelib:xmakeRebuild
Development
Build Plugins
$ ./gradlew gradle-xmake-plugin:assemble
Publish Plugins
see https://guides.gradle.org/publishing-plugins-to-gradle-plugin-portal/
$ ./gradlew gradle-xmake-plugin:publishPlugins
Contacts
- Email: waruqi@gmail.com
- Homepage: tboox.org
- Community: /r/tboox on reddit
- ChatRoom: Char on telegram , Chat on gitter
- QQ Group: 343118190(full), 662147501
- Wechat Public: tboox-os
Backers
Thank you to all our backers!
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [ Become a sponsor ]
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数字时代的营销战略
曹虎、王赛、乔林、【美】艾拉·考夫曼 / 机械工业出版社 / 2017-1 / 99.00元
菲利普•科特勒说,市场比市场营销变得更快(Market changes faster than Marketing),在这个变革的时代,从硅谷、波士顿到北京、上海、深圳,我们正在重新定义公司,重新定义组织,重新定义战略;同样地,营销亦需要重新定义。 从本质上讲,营销战略只有两个时代:实体时代与比特时代,也可称为工业时代与数字时代。从5年前开始,第二个时代正在向未来20年展开画卷,数字创新型企......一起来看看 《数字时代的营销战略》 这本书的介绍吧!