Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork8
A gradle plugin that integrates xmake seamlessly
License
xmake-io/xmake-gradle
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Introduction (中文)
xmake-gradle is a gradle plugin that integrates xmake seamlessly.
If you want to know more, please refer to:
XMake installed on the system. Availablehere.
plugins { id 'org.tboox.gradle-xmake-plugin' version '1.2.3'}
buildscript { repositories { maven { url "https://plugins.gradle.org/m2/" } } dependencies { classpath 'org.tboox:gradle-xmake-plugin:1.2.3' } repositories { mavenCentral() }}apply plugin: "org.tboox.gradle-xmake-plugin"
We addxmake.lua
toprojectdir/jni/xmake.lua
and enable xmake in build.gradle.
android { externalNativeBuild { xmake { path "jni/xmake.lua" } }}
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")
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" // set the built targets //targets "xxx", "yyy" } } } externalNativeBuild { xmake { // enable xmake and set xmake.lua project file path path "jni/xmake.lua" // enable verbose output (optional), e.g. verbose, 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 } }}
ThexmakeBuild
will be injected toassemble
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
$./gradlew nativelib:xmakeRebuild
$./gradlew gradle-xmake-plugin:assemble
seehttps://guides.gradle.org/publishing-plugins-to-gradle-plugin-portal/
$./gradlew gradle-xmake-plugin:publishPlugins
- Email:waruqi@gmail.com
- Homepage:xmake.io
- Community
- Chat on Reddit
- Chat on Telegram
- Chat on Discord
- Chat on QQ Group: 343118190, 662147501
- Source Code:GitHub,Gitee
- WeChat Public: tboox-os
Thank you to all our backers! 🙏 [Become a backer]
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]
About
A gradle plugin that integrates xmake seamlessly
Topics
Resources
License
Code of conduct
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.
Packages0
Contributors5
Uh oh!
There was an error while loading.Please reload this page.