diff --git a/CMakeLists.txt b/CMakeLists.txt index c1d8d10..cb40de8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,6 +2,7 @@ project(anbox C CXX) cmake_minimum_required(VERSION 2.8.2) include(CTest) +include(GNUInstallDirs) if (NOT CMAKE_BUILD_TYPE) message(STATUS "No build type selected, default to release") @@ -92,6 +93,9 @@ add_subdirectory(${GMOCK_SOURCE_DIR} "${CMAKE_CURRENT_BINARY_DIR}/gmock") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -fPIC") +set(ANBOX_TRANSLATOR_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}/anbox/translators) +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTRANSLATOR_INSTALL_DIR=\\\"${CMAKE_INSTALL_PREFIX}/${ANBOX_TRANSLATOR_INSTALL_DIR}\\\"") + add_subdirectory(external) add_subdirectory(src) add_subdirectory(tests) diff --git a/external/android-emugl/host/libs/Translator/EGL/CMakeLists.txt b/external/android-emugl/host/libs/Translator/EGL/CMakeLists.txt index 3c55ead..c55d74f 100644 --- a/external/android-emugl/host/libs/Translator/EGL/CMakeLists.txt +++ b/external/android-emugl/host/libs/Translator/EGL/CMakeLists.txt @@ -24,3 +24,7 @@ target_link_libraries(EGL_translator ${EGL_LIBRARIES} ${GLESv2_LDFLAGS} ${GLESv2_LIBRARIES}) + +install( + TARGETS EGL_translator + LIBRARY DESTINATION ${ANBOX_TRANSLATOR_INSTALL_DIR}) diff --git a/external/android-emugl/host/libs/Translator/GLES_CM/CMakeLists.txt b/external/android-emugl/host/libs/Translator/GLES_CM/CMakeLists.txt index 3ba7cb2..2d7bbe9 100644 --- a/external/android-emugl/host/libs/Translator/GLES_CM/CMakeLists.txt +++ b/external/android-emugl/host/libs/Translator/GLES_CM/CMakeLists.txt @@ -6,3 +6,7 @@ set(SOURCES add_library(GLES_CM_translator SHARED ${SOURCES}) target_link_libraries(GLES_CM_translator GLcommon) + +install( + TARGETS GLES_CM_translator + LIBRARY DESTINATION ${ANBOX_TRANSLATOR_INSTALL_DIR}) diff --git a/external/android-emugl/host/libs/Translator/GLES_V2/CMakeLists.txt b/external/android-emugl/host/libs/Translator/GLES_V2/CMakeLists.txt index 95066a7..dac892c 100644 --- a/external/android-emugl/host/libs/Translator/GLES_V2/CMakeLists.txt +++ b/external/android-emugl/host/libs/Translator/GLES_V2/CMakeLists.txt @@ -7,3 +7,7 @@ set(SOURCES add_library(GLES_V2_translator SHARED ${SOURCES}) target_link_libraries(GLES_V2_translator GLcommon) + +install( + TARGETS GLES_V2_translator + LIBRARY DESTINATION ${ANBOX_TRANSLATOR_INSTALL_DIR}) diff --git a/src/anbox/graphics/gl_renderer_server.cpp b/src/anbox/graphics/gl_renderer_server.cpp index 0d8ed18..7a2be46 100644 --- a/src/anbox/graphics/gl_renderer_server.cpp +++ b/src/anbox/graphics/gl_renderer_server.cpp @@ -30,10 +30,16 @@ namespace graphics { GLRendererServer::GLRendererServer(const std::shared_ptr &window_creator) : window_creator_(window_creator) { +#if 0 // Force the host EGL/GLES libraries as translator implementation ::setenv("ANDROID_EGL_LIB", "libEGL.so.1", 0); ::setenv("ANDROID_GLESv1_LIB", "libGLESv2.so.2", 0); ::setenv("ANDROID_GLESv2_LIB", "libGLESv2.so.2", 0); +#else + ::setenv("ANDROID_EGL_LIB", utils::string_format("%s/libEGL_translator.so", TRANSLATOR_INSTALL_DIR).c_str(), 0); + ::setenv("ANDROID_GLESv1_LIB", utils::string_format("%s/libGLES_CM_translator.so", TRANSLATOR_INSTALL_DIR).c_str(), 0); + ::setenv("ANDROID_GLESv2_LIB", utils::string_format("%s/libGLES_V2_translator.so", TRANSLATOR_INSTALL_DIR).c_str(), 0); +#endif if (!initLibrary()) BOOST_THROW_EXCEPTION(std::runtime_error("Failed to initialize OpenGL renderer"));