mirror of
https://github.com/google/googletest.git
synced 2025-12-07 17:26:53 +08:00
LCC (eLbrus C/C++ compiler) is an EDG-based compiler that in most cases
is similar in behavior to GNU, but it has different warning options
supported and enabled by default. It seems to have sense to treat LCC
and GNU differently, as CMake supports it from 3.23.
For it to be done, CMake policy CMP0129 should be set to NEW,
and then CMAKE_${LANG}_COMPILER_ID may be checked to be STREQUAL "LCC".
This commit does this, and introduces warning arguments in call
to compiler that are slightly different from GNU to let googletest be
buildable without unexpected warnings.
38 lines
1016 B
CMake
38 lines
1016 B
CMake
# Note: CMake support is community-based. The maintainers do not use CMake
|
|
# internally.
|
|
|
|
cmake_minimum_required(VERSION 3.13)
|
|
|
|
cmake_policy(SET CMP0129 NEW)
|
|
project(googletest-distribution)
|
|
set(GOOGLETEST_VERSION 1.15.2)
|
|
|
|
if(NOT CYGWIN AND NOT MSYS AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL QNX)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
endif()
|
|
|
|
enable_testing()
|
|
|
|
include(CMakeDependentOption)
|
|
include(GNUInstallDirs)
|
|
|
|
# Note that googlemock target already builds googletest.
|
|
option(BUILD_GMOCK "Builds the googlemock subproject" ON)
|
|
option(INSTALL_GTEST "Enable installation of googletest. (Projects embedding googletest may want to turn this OFF.)" ON)
|
|
option(GTEST_HAS_ABSL "Use Abseil and RE2. Requires Abseil and RE2 to be separately added to the build." OFF)
|
|
|
|
if(GTEST_HAS_ABSL)
|
|
if(NOT TARGET absl::base)
|
|
find_package(absl REQUIRED)
|
|
endif()
|
|
if(NOT TARGET re2::re2)
|
|
find_package(re2 REQUIRED)
|
|
endif()
|
|
endif()
|
|
|
|
if(BUILD_GMOCK)
|
|
add_subdirectory( googlemock )
|
|
else()
|
|
add_subdirectory( googletest )
|
|
endif()
|