Skip to content

Commit

Permalink
Android: Get it to build asmjit
Browse files Browse the repository at this point in the history
  • Loading branch information
project64 committed Dec 6, 2022
1 parent c100d52 commit 72705cf
Show file tree
Hide file tree
Showing 10 changed files with 190 additions and 620 deletions.
4 changes: 4 additions & 0 deletions Android/Script/copySource.cmd
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ echo copy 3rdParty/7zip
xcopy "%base_dir%/Source/3rdParty/7zip" "%base_dir%/Android/jni/3rdParty/7zip/" /D /I /F /Y /E
IF %ERRORLEVEL% NEQ 0 (exit /B 1)

echo copy 3rdParty/asmjit
xcopy "%base_dir%/Source/3rdParty/asmjit" "%base_dir%/Android/jni/3rdParty/asmjit/" /D /I /F /Y /E
IF %ERRORLEVEL% NEQ 0 (exit /B 1)

echo copy 3rdParty/png
xcopy "%base_dir%/Source/3rdParty/png" "%base_dir%/Android/jni/3rdParty/png/" /D /I /F /Y /E
IF %ERRORLEVEL% NEQ 0 (exit /B 1)
Expand Down
2 changes: 1 addition & 1 deletion Android/config/version.gradle.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ android {
compileSdkVersion 30
ndkVersion "22.1.7171670"
defaultConfig {
minSdkVersion 17
minSdkVersion 18
targetSdkVersion 30
VersionMajor = 4
VersionMinor = 0
Expand Down
47 changes: 47 additions & 0 deletions Android/jni/3rdParty/asmjit/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
*.3
*.5
*.bat
*.js
*.c
*.com
*.cpp
*.def
*.dsp
*.dsw
*.gcc
*.h
*.hp64
*.ico
*.in
*.jpg
*.mak
*.mms
*.natvis
*.pbxproj
*.plg
*.png
*.ppc
*.props
*.rc
*.sgi
*.sh
*.sln
*.solaris
*.std
*.tc3
*.txt
*.unx
*.vcproj
*.vcxproj
*.vcxproj.filters
ANNOUNCE
CHANGES
configure
COPYING
INSTALL
LICENSE
makefile*
README
TODO
/.editorconfig
/*.md
1 change: 1 addition & 0 deletions Android/jni/3rdParty/asmjit/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="emu.project64.asmjit" />
70 changes: 70 additions & 0 deletions Android/jni/3rdParty/asmjit/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
cmake_minimum_required(VERSION 2.8.12)
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_C_STANDARD 99)

project("asmjit")

add_library(asmjit STATIC
src/asmjit/arm/a64assembler.cpp
src/asmjit/arm/a64builder.cpp
src/asmjit/arm/a64compiler.cpp
src/asmjit/arm/a64emithelper.cpp
src/asmjit/arm/a64formatter.cpp
src/asmjit/arm/a64func.cpp
src/asmjit/arm/a64instapi.cpp
src/asmjit/arm/a64instdb.cpp
src/asmjit/arm/a64operand.cpp
src/asmjit/arm/a64rapass.cpp
src/asmjit/arm/armformatter.cpp
src/asmjit/core/archtraits.cpp
src/asmjit/core/assembler.cpp
src/asmjit/core/builder.cpp
src/asmjit/core/codeholder.cpp
src/asmjit/core/codewriter.cpp
src/asmjit/core/compiler.cpp
src/asmjit/core/constpool.cpp
src/asmjit/core/cpuinfo.cpp
src/asmjit/core/emithelper.cpp
src/asmjit/core/emitter.cpp
src/asmjit/core/emitterutils.cpp
src/asmjit/core/environment.cpp
src/asmjit/core/errorhandler.cpp
src/asmjit/core/formatter.cpp
src/asmjit/core/func.cpp
src/asmjit/core/funcargscontext.cpp
src/asmjit/core/globals.cpp
src/asmjit/core/inst.cpp
src/asmjit/core/jitallocator.cpp
src/asmjit/core/jitruntime.cpp
src/asmjit/core/logger.cpp
src/asmjit/core/operand.cpp
src/asmjit/core/osutils.cpp
src/asmjit/core/ralocal.cpp
src/asmjit/core/rapass.cpp
src/asmjit/core/rastack.cpp
src/asmjit/core/string.cpp
src/asmjit/core/support.cpp
src/asmjit/core/target.cpp
src/asmjit/core/type.cpp
src/asmjit/core/virtmem.cpp
src/asmjit/core/zone.cpp
src/asmjit/core/zonehash.cpp
src/asmjit/core/zonelist.cpp
src/asmjit/core/zonestack.cpp
src/asmjit/core/zonetree.cpp
src/asmjit/core/zonevector.cpp
src/asmjit/x86/x86assembler.cpp
src/asmjit/x86/x86builder.cpp
src/asmjit/x86/x86compiler.cpp
src/asmjit/x86/x86emithelper.cpp
src/asmjit/x86/x86formatter.cpp
src/asmjit/x86/x86func.cpp
src/asmjit/x86/x86instapi.cpp
src/asmjit/x86/x86instdb.cpp
src/asmjit/x86/x86operand.cpp
src/asmjit/x86/x86rapass.cpp)

add_definitions(-DANDROID)
add_definitions(-DASMJIT_STATIC)

target_link_libraries(asmjit)
63 changes: 63 additions & 0 deletions Android/jni/3rdParty/asmjit/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
apply plugin: 'com.android.library'
apply from: '../../../config/version.gradle'

android {

buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
debugSymbolLevel 'FULL'
}
}
debug {
minifyEnabled true
jniDebuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
debugSymbolLevel 'FULL'
}
}
}

externalNativeBuild {
cmake {
version "3.22.1"
path "CMakeLists.txt"
}
}

defaultConfig {
externalNativeBuild {
cmake {
arguments "-DANDROID=1", "-DCMAKE_BUILD_TYPE=Release", "-DANDROID_ARM_NEON=TRUE", "-DANDROID_TOOLCHAIN=clang"
cppFlags "-fexceptions", "-ffast-math", "-ftree-vectorize"
cFlags "-ffast-math", "-ftree-vectorize"
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
}
}

sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
}
}

packagingOptions {
exclude 'lib/x86/libc++_shared.so'
exclude 'lib/x86_64/libc++_shared.so'
exclude 'lib/armeabi-v7a/libc++_shared.so'
exclude 'lib/arm64-v8a/libc++_shared.so'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}

4 changes: 3 additions & 1 deletion Android/jni/Project64-bridge/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ set(CMAKE_C_STANDARD 99)

project("Project64-bridge")
include_directories(..)
include_directories(../3rdParty/asmjit/src)

add_library(Project64-bridge SHARED
JavaBridge.cpp
Expand All @@ -16,7 +17,8 @@ add_library(Project64-bridge SHARED

add_definitions(-DANDROID)

ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../3rdParty/asmjit ${CMAKE_CURRENT_BINARY_DIR}/3rdParty/asmjit)
ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../3rdParty/zlib ${CMAKE_CURRENT_BINARY_DIR}/3rdParty/zlib)
ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../Common ${CMAKE_CURRENT_BINARY_DIR}/Common)
ADD_SUBDIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/../Project64-core ${CMAKE_CURRENT_BINARY_DIR}/Project64-core)
target_link_libraries(Project64-bridge zlib Project64-core Common log)
target_link_libraries(Project64-bridge asmjit zlib Project64-core Common log)
2 changes: 1 addition & 1 deletion Android/settings.gradle
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
rootProject.name = 'Project64'
include ':app', ':jni:3rdParty:png', ':jni:3rdParty:zlib', ':jni:Common', ':jni:Settings', ':jni:Project64-core', ':jni:Project64-bridge', ':jni:Project64-video', ':jni:Project64-audio', ':jni:Plugin-input', ':jni:Plugin-RspHle'
include ':app', ':jni:3rdParty:asmjit', ':jni:3rdParty:png', ':jni:3rdParty:zlib', ':jni:Common', ':jni:Settings', ':jni:Project64-core', ':jni:Project64-bridge', ':jni:Project64-video', ':jni:Project64-audio', ':jni:Plugin-input', ':jni:Plugin-RspHle'
6 changes: 0 additions & 6 deletions Source/3rdParty/asmjit/.gitignore

This file was deleted.

Loading

0 comments on commit 72705cf

Please sign in to comment.