Browse Source

Allow different C/C++ standards when this is used as a subproject.

Inspired by https://github.com/google/snappy/pull/85

PiperOrigin-RevId: 279649967
main
Victor Costan 5 years ago
committed by Victor Costan
parent
commit
ed72a3496e
1 changed files with 15 additions and 9 deletions
  1. +15
    -9
      CMakeLists.txt

+ 15
- 9
CMakeLists.txt View File

@ -6,15 +6,21 @@ cmake_minimum_required(VERSION 3.9)
# Keep the version below in sync with the one in db.h # Keep the version below in sync with the one in db.h
project(leveldb VERSION 1.22.0 LANGUAGES C CXX) project(leveldb VERSION 1.22.0 LANGUAGES C CXX)
# This project can use C11, but will gracefully decay down to C89.
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED OFF)
set(CMAKE_C_EXTENSIONS OFF)
# This project requires C++11.
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
# C standard can be overridden when this is used as a sub-project.
if(NOT CMAKE_C_STANDARD)
# This project can use C11, but will gracefully decay down to C89.
set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED OFF)
set(CMAKE_C_EXTENSIONS OFF)
endif(NOT CMAKE_C_STANDARD)
# C++ standard can be overridden when this is used as a sub-project.
if(NOT CMAKE_CXX_STANDARD)
# This project requires C++11.
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
endif(NOT CMAKE_CXX_STANDARD)
if (WIN32) if (WIN32)
set(LEVELDB_PLATFORM_NAME LEVELDB_PLATFORM_WINDOWS) set(LEVELDB_PLATFORM_NAME LEVELDB_PLATFORM_WINDOWS)

Loading…
Cancel
Save