Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
llama.cpp
Commits
4cc1a614
Commit
4cc1a614
authored
Nov 11, 2024
by
xuxzh1
🎱
Browse files
init
parents
Pipeline
#1891
canceled with stages
Changes
288
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
441 additions
and
0 deletions
+441
-0
examples/llama.android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
...oid/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
+0
-0
examples/llama.android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
....android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
+0
-0
examples/llama.android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
...id/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
+0
-0
examples/llama.android/app/src/main/res/values/colors.xml
examples/llama.android/app/src/main/res/values/colors.xml
+10
-0
examples/llama.android/app/src/main/res/values/strings.xml
examples/llama.android/app/src/main/res/values/strings.xml
+3
-0
examples/llama.android/app/src/main/res/values/themes.xml
examples/llama.android/app/src/main/res/values/themes.xml
+5
-0
examples/llama.android/app/src/main/res/xml/backup_rules.xml
examples/llama.android/app/src/main/res/xml/backup_rules.xml
+13
-0
examples/llama.android/app/src/main/res/xml/data_extraction_rules.xml
...ma.android/app/src/main/res/xml/data_extraction_rules.xml
+19
-0
examples/llama.android/build.gradle.kts
examples/llama.android/build.gradle.kts
+6
-0
examples/llama.android/gradle.properties
examples/llama.android/gradle.properties
+23
-0
examples/llama.android/gradle/wrapper/gradle-wrapper.jar
examples/llama.android/gradle/wrapper/gradle-wrapper.jar
+0
-0
examples/llama.android/gradle/wrapper/gradle-wrapper.properties
...es/llama.android/gradle/wrapper/gradle-wrapper.properties
+6
-0
examples/llama.android/gradlew
examples/llama.android/gradlew
+185
-0
examples/llama.android/llama/.gitignore
examples/llama.android/llama/.gitignore
+1
-0
examples/llama.android/llama/build.gradle.kts
examples/llama.android/llama/build.gradle.kts
+68
-0
examples/llama.android/llama/consumer-rules.pro
examples/llama.android/llama/consumer-rules.pro
+0
-0
examples/llama.android/llama/proguard-rules.pro
examples/llama.android/llama/proguard-rules.pro
+21
-0
examples/llama.android/llama/src/androidTest/java/android/llama/cpp/ExampleInstrumentedTest.kt
...oidTest/java/android/llama/cpp/ExampleInstrumentedTest.kt
+24
-0
examples/llama.android/llama/src/main/AndroidManifest.xml
examples/llama.android/llama/src/main/AndroidManifest.xml
+4
-0
examples/llama.android/llama/src/main/cpp/CMakeLists.txt
examples/llama.android/llama/src/main/cpp/CMakeLists.txt
+53
-0
No files found.
Too many changes to show.
To preserve performance only
288 of 288+
files are displayed.
Plain diff
Email patch
examples/llama.android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
0 → 100644
View file @
4cc1a614
5.78 KB
examples/llama.android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
0 → 100644
View file @
4cc1a614
3.75 KB
examples/llama.android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
0 → 100644
View file @
4cc1a614
7.6 KB
examples/llama.android/app/src/main/res/values/colors.xml
0 → 100644
View file @
4cc1a614
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color
name=
"purple_200"
>
#FFBB86FC
</color>
<color
name=
"purple_500"
>
#FF6200EE
</color>
<color
name=
"purple_700"
>
#FF3700B3
</color>
<color
name=
"teal_200"
>
#FF03DAC5
</color>
<color
name=
"teal_700"
>
#FF018786
</color>
<color
name=
"black"
>
#FF000000
</color>
<color
name=
"white"
>
#FFFFFFFF
</color>
</resources>
examples/llama.android/app/src/main/res/values/strings.xml
0 → 100644
View file @
4cc1a614
<resources>
<string
name=
"app_name"
>
LlamaAndroid
</string>
</resources>
examples/llama.android/app/src/main/res/values/themes.xml
0 → 100644
View file @
4cc1a614
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style
name=
"Theme.LlamaAndroid"
parent=
"android:Theme.Material.Light.NoActionBar"
/>
</resources>
examples/llama.android/app/src/main/res/xml/backup_rules.xml
0 → 100644
View file @
4cc1a614
<?xml version="1.0" encoding="utf-8"?>
<!--
Sample backup rules file; uncomment and customize as necessary.
See https://developer.android.com/guide/topics/data/autobackup
for details.
Note: This file is ignored for devices older that API 31
See https://developer.android.com/about/versions/12/backup-restore
-->
<full-backup-content>
<!--
<include domain="sharedpref" path="."/>
<exclude domain="sharedpref" path="device.xml"/>
-->
</full-backup-content>
examples/llama.android/app/src/main/res/xml/data_extraction_rules.xml
0 → 100644
View file @
4cc1a614
<?xml version="1.0" encoding="utf-8"?>
<!--
Sample data extraction rules file; uncomment and customize as necessary.
See https://developer.android.com/about/versions/12/backup-restore#xml-changes
for details.
-->
<data-extraction-rules>
<cloud-backup>
<!-- TODO: Use <include> and <exclude> to control what is backed up.
<include .../>
<exclude .../>
-->
</cloud-backup>
<!--
<device-transfer>
<include .../>
<exclude .../>
</device-transfer>
-->
</data-extraction-rules>
examples/llama.android/build.gradle.kts
0 → 100644
View file @
4cc1a614
// Top-level build file where you can add configuration options common to all sub-projects/modules.
plugins
{
id
(
"com.android.application"
)
version
"8.2.0"
apply
false
id
(
"org.jetbrains.kotlin.android"
)
version
"1.9.0"
apply
false
id
(
"com.android.library"
)
version
"8.2.0"
apply
false
}
examples/llama.android/gradle.properties
0 → 100644
View file @
4cc1a614
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs
=
-Xmx2048m -Dfile.encoding=UTF-8
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app's APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX
=
true
# Kotlin code style for this project: "official" or "obsolete":
kotlin.code.style
=
official
# Enables namespacing of each library's R class so that its R class includes only the
# resources declared in the library itself and none from the library's dependencies,
# thereby reducing the size of the R class for that library
android.nonTransitiveRClass
=
true
examples/llama.android/gradle/wrapper/gradle-wrapper.jar
0 → 100644
View file @
4cc1a614
File added
examples/llama.android/gradle/wrapper/gradle-wrapper.properties
0 → 100644
View file @
4cc1a614
#Thu Dec 21 14:31:09 AEDT 2023
distributionBase
=
GRADLE_USER_HOME
distributionPath
=
wrapper/dists
distributionUrl
=
https
\:
//services.gradle.org/distributions/gradle-8.2-bin.zip
zipStoreBase
=
GRADLE_USER_HOME
zipStorePath
=
wrapper/dists
examples/llama.android/gradlew
0 → 100644
View file @
4cc1a614
#!/usr/bin/env sh
#
# Copyright 2015 the original author or authors.
#
# 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
#
# https://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.
#
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG
=
"
$0
"
# Need this for relative symlinks.
while
[
-h
"
$PRG
"
]
;
do
ls
=
`
ls
-ld
"
$PRG
"
`
link
=
`
expr
"
$ls
"
:
'.*-> \(.*\)$'
`
if
expr
"
$link
"
:
'/.*'
>
/dev/null
;
then
PRG
=
"
$link
"
else
PRG
=
`
dirname
"
$PRG
"
`
"/
$link
"
fi
done
SAVED
=
"
`
pwd
`
"
cd
"
`
dirname
\"
$PRG
\"
`
/"
>
/dev/null
APP_HOME
=
"
`
pwd
-P
`
"
cd
"
$SAVED
"
>
/dev/null
APP_NAME
=
"Gradle"
APP_BASE_NAME
=
`
basename
"
$0
"
`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS
=
'"-Xmx64m" "-Xms64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD
=
"maximum"
warn
()
{
echo
"
$*
"
}
die
()
{
echo
echo
"
$*
"
echo
exit
1
}
# OS specific support (must be 'true' or 'false').
cygwin
=
false
msys
=
false
darwin
=
false
nonstop
=
false
case
"
`
uname
`
"
in
CYGWIN
*
)
cygwin
=
true
;;
Darwin
*
)
darwin
=
true
;;
MINGW
*
)
msys
=
true
;;
NONSTOP
*
)
nonstop
=
true
;;
esac
CLASSPATH
=
$APP_HOME
/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if
[
-n
"
$JAVA_HOME
"
]
;
then
if
[
-x
"
$JAVA_HOME
/jre/sh/java"
]
;
then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD
=
"
$JAVA_HOME
/jre/sh/java"
else
JAVACMD
=
"
$JAVA_HOME
/bin/java"
fi
if
[
!
-x
"
$JAVACMD
"
]
;
then
die
"ERROR: JAVA_HOME is set to an invalid directory:
$JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD
=
"java"
which java
>
/dev/null 2>&1
||
die
"ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if
[
"
$cygwin
"
=
"false"
-a
"
$darwin
"
=
"false"
-a
"
$nonstop
"
=
"false"
]
;
then
MAX_FD_LIMIT
=
`
ulimit
-H
-n
`
if
[
$?
-eq
0
]
;
then
if
[
"
$MAX_FD
"
=
"maximum"
-o
"
$MAX_FD
"
=
"max"
]
;
then
MAX_FD
=
"
$MAX_FD_LIMIT
"
fi
ulimit
-n
$MAX_FD
if
[
$?
-ne
0
]
;
then
warn
"Could not set maximum file descriptor limit:
$MAX_FD
"
fi
else
warn
"Could not query maximum file descriptor limit:
$MAX_FD_LIMIT
"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if
$darwin
;
then
GRADLE_OPTS
=
"
$GRADLE_OPTS
\"
-Xdock:name=
$APP_NAME
\"
\"
-Xdock:icon=
$APP_HOME
/media/gradle.icns
\"
"
fi
# For Cygwin or MSYS, switch paths to Windows format before running java
if
[
"
$cygwin
"
=
"true"
-o
"
$msys
"
=
"true"
]
;
then
APP_HOME
=
`
cygpath
--path
--mixed
"
$APP_HOME
"
`
CLASSPATH
=
`
cygpath
--path
--mixed
"
$CLASSPATH
"
`
JAVACMD
=
`
cygpath
--unix
"
$JAVACMD
"
`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW
=
`
find
-L
/
-maxdepth
1
-mindepth
1
-type
d 2>/dev/null
`
SEP
=
""
for
dir
in
$ROOTDIRSRAW
;
do
ROOTDIRS
=
"
$ROOTDIRS$SEP$dir
"
SEP
=
"|"
done
OURCYGPATTERN
=
"(^(
$ROOTDIRS
))"
# Add a user-defined pattern to the cygpath arguments
if
[
"
$GRADLE_CYGPATTERN
"
!=
""
]
;
then
OURCYGPATTERN
=
"
$OURCYGPATTERN
|(
$GRADLE_CYGPATTERN
)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i
=
0
for
arg
in
"
$@
"
;
do
CHECK
=
`
echo
"
$arg
"
|egrep
-c
"
$OURCYGPATTERN
"
-
`
CHECK2
=
`
echo
"
$arg
"
|egrep
-c
"^-"
`
### Determine if an option
if
[
$CHECK
-ne
0
]
&&
[
$CHECK2
-eq
0
]
;
then
### Added a condition
eval
`
echo
args
$i
`
=
`
cygpath
--path
--ignore
--mixed
"
$arg
"
`
else
eval
`
echo
args
$i
`
=
"
\"
$arg
\"
"
fi
i
=
`
expr
$i
+ 1
`
done
case
$i
in
0
)
set
--
;;
1
)
set
--
"
$args0
"
;;
2
)
set
--
"
$args0
"
"
$args1
"
;;
3
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
;;
4
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
;;
5
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
;;
6
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
;;
7
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
"
$args6
"
;;
8
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
"
$args6
"
"
$args7
"
;;
9
)
set
--
"
$args0
"
"
$args1
"
"
$args2
"
"
$args3
"
"
$args4
"
"
$args5
"
"
$args6
"
"
$args7
"
"
$args8
"
;;
esac
fi
# Escape application args
save
()
{
for
i
do
printf
%s
\\
n
"
$i
"
|
sed
"s/'/'
\\\\
''/g;1s/^/'/;
\$
s/
\$
/'
\\\\
/"
;
done
echo
" "
}
APP_ARGS
=
`
save
"
$@
"
`
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set
--
$DEFAULT_JVM_OPTS
$JAVA_OPTS
$GRADLE_OPTS
"
\"
-Dorg.gradle.appname=
$APP_BASE_NAME
\"
"
-classpath
"
\"
$CLASSPATH
\"
"
org.gradle.wrapper.GradleWrapperMain
"
$APP_ARGS
"
exec
"
$JAVACMD
"
"
$@
"
examples/llama.android/llama/.gitignore
0 → 100644
View file @
4cc1a614
/build
examples/llama.android/llama/build.gradle.kts
0 → 100644
View file @
4cc1a614
plugins
{
id
(
"com.android.library"
)
id
(
"org.jetbrains.kotlin.android"
)
}
android
{
namespace
=
"android.llama.cpp"
compileSdk
=
34
defaultConfig
{
minSdk
=
33
testInstrumentationRunner
=
"androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles
(
"consumer-rules.pro"
)
ndk
{
// Add NDK properties if wanted, e.g.
// abiFilters += listOf("arm64-v8a")
}
externalNativeBuild
{
cmake
{
arguments
+=
"-DCMAKE_BUILD_TYPE=Release"
cppFlags
+=
listOf
()
arguments
+=
listOf
()
cppFlags
(
""
)
}
}
}
buildTypes
{
release
{
isMinifyEnabled
=
false
proguardFiles
(
getDefaultProguardFile
(
"proguard-android-optimize.txt"
),
"proguard-rules.pro"
)
}
}
externalNativeBuild
{
cmake
{
path
(
"src/main/cpp/CMakeLists.txt"
)
version
=
"3.22.1"
}
}
compileOptions
{
sourceCompatibility
=
JavaVersion
.
VERSION_1_8
targetCompatibility
=
JavaVersion
.
VERSION_1_8
}
kotlinOptions
{
jvmTarget
=
"1.8"
}
packaging
{
resources
{
excludes
+=
"/META-INF/{AL2.0,LGPL2.1}"
}
}
}
dependencies
{
implementation
(
"androidx.core:core-ktx:1.12.0"
)
implementation
(
"androidx.appcompat:appcompat:1.6.1"
)
implementation
(
"com.google.android.material:material:1.11.0"
)
testImplementation
(
"junit:junit:4.13.2"
)
androidTestImplementation
(
"androidx.test.ext:junit:1.1.5"
)
androidTestImplementation
(
"androidx.test.espresso:espresso-core:3.5.1"
)
}
examples/llama.android/llama/consumer-rules.pro
0 → 100644
View file @
4cc1a614
examples/llama.android/llama/proguard-rules.pro
0 → 100644
View file @
4cc1a614
# Add project specific ProGuard rules here.
#
You
can
control
the
set
of
applied
configuration
files
using
the
#
proguardFiles
setting
in
build
.
gradle
.
#
#
For
more
details
,
see
#
http
://
developer
.
android
.
com
/
guide
/
developing
/
tools
/
proguard
.
html
#
If
your
project
uses
WebView
with
JS
,
uncomment
the
following
#
and
specify
the
fully
qualified
class
name
to
the
JavaScript
interface
#
class
:
#-
keepclassmembers
class
fqcn
.
of
.
javascript
.
interface
.
for
.
webview
{
#
public
*
;
#
}
#
Uncomment
this
to
preserve
the
line
number
information
for
#
debugging
stack
traces
.
#-
keepattributes
SourceFile
,
LineNumberTable
#
If
you
keep
the
line
number
information
,
uncomment
this
to
#
hide
the
original
source
file
name
.
#-
renamesourcefileattribute
SourceFile
examples/llama.android/llama/src/androidTest/java/android/llama/cpp/ExampleInstrumentedTest.kt
0 → 100644
View file @
4cc1a614
package
android.llama.cpp
import
androidx.test.platform.app.InstrumentationRegistry
import
androidx.test.ext.junit.runners.AndroidJUnit4
import
org.junit.Test
import
org.junit.runner.RunWith
import
org.junit.Assert.*
/**
* Instrumented test, which will execute on an Android device.
*
* See [testing documentation](http://d.android.com/tools/testing).
*/
@RunWith
(
AndroidJUnit4
::
class
)
class
ExampleInstrumentedTest
{
@Test
fun
useAppContext
()
{
// Context of the app under test.
val
appContext
=
InstrumentationRegistry
.
getInstrumentation
().
targetContext
assertEquals
(
"android.llama.cpp.test"
,
appContext
.
packageName
)
}
}
examples/llama.android/llama/src/main/AndroidManifest.xml
0 → 100644
View file @
4cc1a614
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
</manifest>
examples/llama.android/llama/src/main/cpp/CMakeLists.txt
0 → 100644
View file @
4cc1a614
# For more information about using CMake with Android Studio, read the
# documentation: https://d.android.com/studio/projects/add-native-code.html.
# For more examples on how to use CMake, see https://github.com/android/ndk-samples.
# Sets the minimum CMake version required for this project.
cmake_minimum_required
(
VERSION 3.22.1
)
# Declares the project name. The project name can be accessed via ${ PROJECT_NAME},
# Since this is the top level CMakeLists.txt, the project name is also accessible
# with ${CMAKE_PROJECT_NAME} (both CMake variables are in-sync within the top level
# build script scope).
project
(
"llama-android"
)
#include(FetchContent)
#FetchContent_Declare(
# llama
# GIT_REPOSITORY https://github.com/ggerganov/llama.cpp
# GIT_TAG master
#)
# Also provides "common"
#FetchContent_MakeAvailable(llama)
# Creates and names a library, sets it as either STATIC
# or SHARED, and provides the relative paths to its source code.
# You can define multiple libraries, and CMake builds them for you.
# Gradle automatically packages shared libraries with your APK.
#
# In this top level CMakeLists.txt, ${CMAKE_PROJECT_NAME} is used to define
# the target library name; in the sub-module's CMakeLists.txt, ${PROJECT_NAME}
# is preferred for the same purpose.
#
#load local llama.cpp
add_subdirectory
(
../../../../../../ build-llama
)
# In order to load a library into your app from Java/Kotlin, you must call
# System.loadLibrary() and pass the name of the library defined here;
# for GameActivity/NativeActivity derived applications, the same library name must be
# used in the AndroidManifest.xml file.
add_library
(
${
CMAKE_PROJECT_NAME
}
SHARED
# List C/C++ source files with relative paths to this CMakeLists.txt.
llama-android.cpp
)
# Specifies libraries CMake should link to your target library. You
# can link libraries from various origins, such as libraries defined in this
# build script, prebuilt third-party libraries, or Android system libraries.
target_link_libraries
(
${
CMAKE_PROJECT_NAME
}
# List libraries link to the target library
llama
common
android
log
)
Prev
1
…
8
9
10
11
12
13
14
15
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment