From 784e05410506225a5a07d5e9d1cf4eb4e45f0fd4 Mon Sep 17 00:00:00 2001 From: omigamedev Date: Fri, 2 Jan 2026 21:38:41 +0100 Subject: [PATCH] setup vcpkg --- build.gradle.kts | 12 ++++++++++++ src/main/cpp/CMakeLists.txt | 26 +++++++++++++++++++------- src/main/cpp/vcpkg.json | 7 +++++++ 3 files changed, 38 insertions(+), 7 deletions(-) create mode 100644 src/main/cpp/vcpkg.json diff --git a/build.gradle.kts b/build.gradle.kts index 306bf62..e280e6e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,6 +4,9 @@ plugins { alias(libs.plugins.kotlin.compose) } +val vcpkgHome = "/Users/omar/vcpkg" +val ndkHome = "/Users/omar/Library/Android/sdk/ndk/29.0.14206865" + android { namespace = "com.omixlab.mosis" @@ -18,9 +21,18 @@ android { targetSdk = 36 versionCode = 1 versionName = "1.0" + ndk { + abiFilters += listOf("arm64-v8a") + } externalNativeBuild { cmake { cppFlags += "" + arguments += "-DANDROID_STL=c++_shared" + arguments += "-DCMAKE_TOOLCHAIN_FILE=$vcpkgHome/scripts/buildsystems/vcpkg.cmake" + arguments += "-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=$ndkHome/build/cmake/android.toolchain.cmake" + arguments += "-DVCPKG_TARGET_TRIPLET=arm64-android" + targets += "mosis-service" + targets += "mosis-test" } } } diff --git a/src/main/cpp/CMakeLists.txt b/src/main/cpp/CMakeLists.txt index deb7c9d..d0106ab 100644 --- a/src/main/cpp/CMakeLists.txt +++ b/src/main/cpp/CMakeLists.txt @@ -7,6 +7,8 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) set(ANDROID_SDK "/Users/omar/Library/Android/sdk") set(BINDER_DIR "${ANDROID_SDK}/platforms/android-36/optional/libbinder_ndk_cpp") +find_package(RmlUi CONFIG REQUIRED) + add_library(mosis-service SHARED mosis-service.cpp com/omixlab/mosis/IMosisService.cpp @@ -20,11 +22,17 @@ add_library(mosis-service SHARED logger.cpp kernel.cpp glad/src/egl.c - glad/src/gles2.c) + glad/src/gles2.c +) target_include_directories(mosis-service PUBLIC - ${CMAKE_CURRENT_LIST_DIR} ${BINDER_DIR} glad/include) + ${CMAKE_CURRENT_LIST_DIR} + ${BINDER_DIR} + glad/include +) target_link_libraries(mosis-service - android log binder_ndk EGL GLESv2 nativewindow) + android log binder_ndk EGL GLESv2 nativewindow + RmlUi::RmlUi +) add_library(mosis-test SHARED com/omixlab/mosis/IMosisService.cpp @@ -39,9 +47,13 @@ add_library(mosis-test SHARED kernel.cpp logger.cpp glad/src/egl.c - glad/src/gles2.c) - + glad/src/gles2.c +) target_include_directories(mosis-test PUBLIC - ${CMAKE_CURRENT_LIST_DIR} ${BINDER_DIR} glad/include) + ${CMAKE_CURRENT_LIST_DIR} + ${BINDER_DIR} + glad/include +) target_link_libraries(mosis-test - android log binder_ndk EGL GLESv2 nativewindow) + android log binder_ndk EGL GLESv2 nativewindow +) diff --git a/src/main/cpp/vcpkg.json b/src/main/cpp/vcpkg.json new file mode 100644 index 0000000..c7b4faa --- /dev/null +++ b/src/main/cpp/vcpkg.json @@ -0,0 +1,7 @@ +{ + "name": "mosis-os", + "version-string": "0.1.0", + "dependencies": [ + "rmlui" + ] +} \ No newline at end of file