| project(gfx-streaming-kit) |
| cmake_minimum_required(VERSION 3.11) |
| |
| if (WIN32) |
| add_definitions("-DUNICODE -D_UNICODE -DNOMINMAX -DEMUGL_BUILD -DVK_USE_PLATFORM_WIN32_KHR -DBUILDING_EMUGL_COMMON_SHARED") |
| endif() |
| |
| find_package(Threads) |
| include(ExternalProject) |
| enable_testing() |
| |
| # set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) |
| set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) |
| set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) |
| set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/distribution) |
| if (WIN32) |
| else() |
| SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3 -O3") |
| endif() |
| set(CMAKE_POSITION_INDEPENDENT_CODE ON) |
| set(CMAKE_CXX_STANDARD 17) |
| set(CMAKE_C_STANDARD 11) |
| |
| if (APPLE) |
| add_compile_definitions(VK_USE_PLATFORM_MACOS_MVK) |
| elseif(UNIX) |
| # TODO(kaiyili, b/179477624): Add Linux specific Vulkan platform macro definitions |
| elseif(WIN32) |
| add_compile_definitions(VK_USE_PLATFORM_WIN32_KHR) |
| endif() |
| |
| add_compile_definitions(GLM_FORCE_RADIANS) |
| add_compile_definitions(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES) |
| |
| # Uncomment for ASAN support |
| # set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address") |
| # set (CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address") |
| |
| # GoogleTest support: uses CMake ExternalProject to pull in external repo |
| # without manual steps (during CMake build script generation phase) |
| include(gtest.cmake) |
| |
| set(GFXSTREAM_REPO_ROOT ${CMAKE_CURRENT_SOURCE_DIR}) |
| |
| include(android.cmake) |
| |
| # Third party dependencies |
| add_subdirectory(third-party) |
| |
| # Common base libraries for host################################################ |
| |
| add_subdirectory(base) |
| add_subdirectory(snapshot) |
| add_subdirectory(host-common) |
| |
| # Backends###################################################################### |
| |
| add_subdirectory(stream-servers) |
| |
| # Protocols and associated code generators###################################### |
| |
| add_subdirectory(protocols) |
| |
| # Fake Android guest#########################3################################## |
| |
| if (NOT WIN32) |
| add_subdirectory(fake-android-guest) |
| endif() |
| |
| # Frontends##################################################################### |
| |
| # add_subdirectory(stream-clients) |
| |
| # Test environments############################################################# |
| |
| # add_subdirectory(testenvs) |
| |
| # Target: Host backend to consume real guest traffic############################ |
| |
| # Target: Host front+back drivers for test environment########################## |
| |
| # Target: Host front+back drivers for app isolation############################# |
| |
| # Tests#################3####################################################### |
| add_test(NAME gfxstream-base_unittests COMMAND gfxstream-base_unittests) |
| add_test(NAME gfxstream-host-common_unittests COMMAND gfxstream-host-common_unittests) |
| add_test(NAME gfxstream_backend_unittests COMMAND gfxstream_backend_unittests) |
| add_test(NAME OpenglRender_unittests COMMAND OpenglRender_unittests) |
| add_test(NAME OpenglRender_snapshot_unittests COMMAND OpenglRender_snapshot_unittests) |
| add_test(NAME Vulkan_unittests COMMAND Vulkan_unittests) |