Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

A gradle plugin that integrates xmake seamlessly

License

NotificationsYou must be signed in to change notification settings

xmake-io/xmake-gradle

Repository files navigation

xmake-gradle

Github All Releaseslicense
RedditGitterTelegramQQDonate

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. Availablehere.

Apply the plugin

plugins DSL

plugins {  id 'org.tboox.gradle-xmake-plugin' version '1.2.2'}

Legacy plugin application

buildscript {  repositories {    maven {      url "https://plugins.gradle.org/m2/"    }  }  dependencies {    classpath 'org.tboox:gradle-xmake-plugin:1.2.2'  }  repositories {    mavenCentral()  }}apply plugin: "org.tboox.gradle-xmake-plugin"

Configuation

Simplest Example

We addxmake.lua toprojectdir/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"                // 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        }    }}

Build

Build JNI and generate apk

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

Force to rebuild JNI

$./gradlew nativelib:xmakeRebuild

Development

Build Plugins

$./gradlew gradle-xmake-plugin:assemble

Publish Plugins

seehttps://guides.gradle.org/publishing-plugins-to-gradle-plugin-portal/

$./gradlew gradle-xmake-plugin:publishPlugins

Contacts

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]


[8]ページ先頭

©2009-2025 Movatter.jp