cmake_minimum_required(VERSION 3.22.1) project("mosis") set(CMAKE_CXX_STANDARD 23) 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") set(AIDL_EXE "${ANDROID_SDK}/build-tools/36.1.0/aidl.exe") # Find Lua from vcpkg find_package(Lua REQUIRED) # Fetch RmlUi from GitHub with Lua bindings enabled include(FetchContent) FetchContent_Declare( rmlui GIT_REPOSITORY https://github.com/mikke89/RmlUi.git GIT_TAG master ) set(RMLUI_LUA_BINDINGS ON CACHE BOOL "" FORCE) set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE) set(RMLUI_SAMPLES OFF CACHE BOOL "" FORCE) set(RMLUI_TESTS OFF CACHE BOOL "" FORCE) set(RMLUI_FONT_ENGINE "freetype" CACHE STRING "" FORCE) set(RMLUI_PRECOMPILED_HEADERS OFF CACHE BOOL "" FORCE) FetchContent_MakeAvailable(rmlui) #get_cmake_property(_variableNames VARIABLES) #list(SORT _variableNames) #foreach(_variableName ${_variableNames}) # message(STATUS "${_variableName}=${${_variableName}}") #endforeach() add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/com/omixlab/mosis/IMosisService.cpp" COMMAND ${AIDL_EXE} --lang=ndk --min_sdk_version=36 -o ${CMAKE_CURRENT_BINARY_DIR} -h ${CMAKE_CURRENT_BINARY_DIR} -I ..\\aidl ..\\aidl\\com\\omixlab\\mosis\\IMosisService.aidl DEPENDS ../aidl/com/omixlab/mosis/IMosisService.aidl WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} VERBATIM ) add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/com/omixlab/mosis/IMosisListener.cpp" COMMAND ${AIDL_EXE} --lang=ndk --min_sdk_version=36 -o ${CMAKE_CURRENT_BINARY_DIR} -h ${CMAKE_CURRENT_BINARY_DIR} -I ..\\aidl ..\\aidl\\com\\omixlab\\mosis\\IMosisListener.aidl DEPENDS ../aidl/com/omixlab/mosis/IMosisListener.aidl WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR} VERBATIM ) add_library(mosis-service SHARED mosis-service.cpp ${CMAKE_CURRENT_BINARY_DIR}/com/omixlab/mosis/IMosisService.cpp ${CMAKE_CURRENT_BINARY_DIR}/com/omixlab/mosis/IMosisListener.cpp assets_manager.cpp shader.cpp external_texture.cpp quad.cpp egl_context.cpp render_target.cpp logger.cpp kernel.cpp glad/src/egl.c glad/src/gles2.c RmlUi_Renderer_GL3.cpp ) target_compile_definitions(mosis-service PUBLIC RMLUI_NUM_MSAA_SAMPLES=2 RMLUI_GL3_CUSTOM_LOADER= ) target_include_directories(mosis-service PUBLIC ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${BINDER_DIR} glad/include ) target_link_libraries(mosis-service android log binder_ndk EGL GLESv2 nativewindow rmlui rmlui_lua ) add_library(mosis-test SHARED ${CMAKE_CURRENT_BINARY_DIR}/com/omixlab/mosis/IMosisService.cpp ${CMAKE_CURRENT_BINARY_DIR}/com/omixlab/mosis/IMosisListener.cpp mosis-test.cpp assets_manager.cpp shader.cpp external_texture.cpp quad.cpp egl_context.cpp render_target.cpp logger.cpp glad/src/egl.c glad/src/gles2.c ) target_include_directories(mosis-test PUBLIC ${CMAKE_CURRENT_LIST_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${BINDER_DIR} glad/include ) target_link_libraries(mosis-test android log binder_ndk EGL GLESv2 nativewindow )