blob: 3b0cc533aa7772aecc2dadb682f56d7795689b93 [file] [log] [blame]
# Copyright (C) 2016 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
cmake_minimum_required(VERSION 3.2)
cmake_policy(SET CMP0009 NEW) # GLOB_RECURSE does not recurse symlinks
cmake_policy(SET CMP0053 NEW) # Simplify variable reference
cmake_policy(SET CMP0003 NEW) # Link by full path
set(GAPID_CMAKE_VERSION "1")
set(GAPID_CMAKE_VERSION_STORE ${GAPID_CMAKE_VERSION} CACHE STRING "Version of the gapic cmake build system")
if(NOT ${GAPID_CMAKE_VERSION} STREQUAL ${GAPID_CMAKE_VERSION_STORE})
message(FATAL_ERROR "
Output directory version is ${GAPID_CMAKE_VERSION_STORE}, required version is ${GAPID_CMAKE_VERSION}
The cmake output directory needs to be deleted and regenerated...
")
endif()
file(LOCK ${CMAKE_BINARY_DIR} DIRECTORY GUARD PROCESS RESULT_VARIABLE locked)
# Basic selection controls
option(BUILDBOT "Running in buildbot mode")
option(DISABLE_CXX "Disable all c++ building steps")
option(DISABLE_GO "Disable all go building steps")
option(DISABLE_PROTOC "Disable all proto building steps")
option(DISABLE_CODE_GENERATION "Disable all code generation building steps")
option(ONLY_HOST "Disable non host build steps")
include(cmake/Init.cmake)
project(GAPID ${languages})
include(Config)
foreach(abi ${ANDROID_ACTIVE_ABI_LIST})
# Build a cmake output directory for the specific abi
add_cmake(${abi} ${CMAKE_SOURCE_DIR} "-DANDROID_ABI:STRING=${abi}")
endforeach()
if(NOT DISABLE_PROTOC)
go_install("vendor/github.com/golang/protobuf/protoc-gen-go")
go_install("vendor/github.com/gogo/protobuf/protoc-gen-gogo")
endif()
build_subdirectory(cmd)
build_subdirectory(framework)
build_subdirectory(api)
build_subdirectory(gapid)
build_subdirectory(tools)
build_subdirectory(cc)
scan_for_protos()
# The codergen rules are still slightly broken, because of the cpp
# generation steps.
# Might have to add an explicit dependancy on codergen-all to fix it.
codergen(
api/snippets
framework/binary/any
framework/binary/test
framework/compare
framework/multiplexer
framework/rpc
framework/rpc/test
framework/stringtable/msg
gapid/atom
gapid/atom/test
gapid/builder
gapid/gfxapi
gapid/gfxapi/core
gapid/gfxapi/gles
gapid/gfxapi/vulkan
gapid/gfxapi/test
gapid/image
gapid/memory
gapid/replay/protocol
gapid/service/path
gapid/service
gapid/vertex
integration/replay/gles
)
include(Package)