• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1project(gfx-streaming-kit)
2cmake_minimum_required(VERSION 3.11)
3
4if (WIN32)
5    add_definitions("-DUNICODE -D_UNICODE -DNOMINMAX -DEMUGL_BUILD -DVK_USE_PLATFORM_WIN32_KHR -DBUILDING_EMUGL_COMMON_SHARED")
6    add_definitions(/MP)
7endif()
8
9find_package(Threads)
10include(ExternalProject)
11enable_testing()
12
13# set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
14set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
15set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
16set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/distribution)
17if (WIN32)
18else()
19    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3 -O3")
20endif()
21set(CMAKE_POSITION_INDEPENDENT_CODE ON)
22set(CMAKE_CXX_STANDARD 17)
23set(CMAKE_C_STANDARD 11)
24
25if (APPLE)
26    add_compile_definitions(VK_USE_PLATFORM_MACOS_MVK)
27elseif(UNIX)
28    # TODO(kaiyili, b/179477624): Add Linux specific Vulkan platform macro definitions
29elseif(WIN32)
30    add_compile_definitions(VK_USE_PLATFORM_WIN32_KHR)
31endif()
32
33add_compile_definitions(GLM_FORCE_RADIANS)
34add_compile_definitions(GLM_FORCE_DEFAULT_ALIGNED_GENTYPES)
35
36if (MSVC)
37    # ask msvc not to warn not secure C ISO functions
38    add_compile_definitions(_CRT_SECURE_NO_WARNINGS)
39    # ask msvc not to warn non C ISO POSIX functions
40    add_compile_definitions(_CRT_NONSTDC_NO_DEPRECATE)
41endif()
42
43# Uncomment for ASAN support
44# set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
45# set (CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS} -fno-omit-frame-pointer -fsanitize=address")
46
47# GoogleTest support: uses CMake ExternalProject to pull in external repo
48# without manual steps (during CMake build script generation phase)
49include(gtest.cmake)
50
51set(GFXSTREAM_REPO_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
52
53include(android.cmake)
54
55# Third party dependencies
56add_subdirectory(third-party)
57
58# Common base libraries for host################################################
59
60add_subdirectory(base)
61add_subdirectory(snapshot)
62add_subdirectory(host-common)
63
64# Backends######################################################################
65
66add_subdirectory(stream-servers)
67
68# Protocols and associated code generators######################################
69
70add_subdirectory(protocols)
71
72# Fake Android guest#########################3##################################
73
74if (NOT WIN32)
75    add_subdirectory(fake-android-guest)
76endif()
77
78# Frontends#####################################################################
79
80# add_subdirectory(stream-clients)
81
82# Test environments#############################################################
83
84# add_subdirectory(testenvs)
85
86# Target: Host backend to consume real guest traffic############################
87
88# Target: Host front+back drivers for test environment##########################
89
90# Target: Host front+back drivers for app isolation#############################
91
92# Tests#################3#######################################################
93add_test(NAME gfxstream-base_unittests COMMAND gfxstream-base_unittests)
94add_test(NAME gfxstream-host-common_unittests COMMAND gfxstream-host-common_unittests)
95add_test(NAME gfxstream_backend_unittests COMMAND gfxstream_backend_unittests)
96add_test(NAME OpenglRender_unittests COMMAND OpenglRender_unittests)
97add_test(NAME OpenglRender_snapshot_unittests COMMAND OpenglRender_snapshot_unittests)
98add_test(NAME Vulkan_unittests COMMAND Vulkan_unittests)
99