# Copyright 2018 Google LLC # # 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 # # https://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.1.0) project(astc-codec) option(OPTION_ASTC_TESTS "Build all the unit tests." ON) # TODO add support for the fuzzer, it has some additional dependencies we are not # yet bringing in. option(OPTION_BUILD_FUZZER "Build the fuzzer tests." OFF) set (CMAKE_CXX_STANDARD 11) if(OPTION_ASTC_TESTS) enable_testing() # No need to build gmock if an external project defines it. if(NOT TARGET gmock_main) # We use the approach suggested by https://crascit.com/2015/07/25/cmake-gtest/ to download gtest. include(ExternalProject) # Download and unpack googletest at configure time configure_file(GoogleTest-CMakeLists.txt.in googletest-download/CMakeLists.txt) execute_process(COMMAND "${CMAKE_COMMAND}" -G "${CMAKE_GENERATOR}" . WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/googletest-download") execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${CMAKE_BINARY_DIR}/googletest-download") # Prevent GoogleTest from overriding our compiler/linker options when building with Visual Studio set(gtest_force_shared_crt ON CACHE BOOL "" FORCE) # Add googletest directly to our build. This adds the following targets: gtest, gtest_main, gmock and gmock_main add_subdirectory("${CMAKE_BINARY_DIR}/googletest-src" "${CMAKE_BINARY_DIR}/googletest-build") endif() endif() add_subdirectory(src/base) add_subdirectory(src/decoder)