glslang/External/CMakeLists.txt
Karl Schultz 1d1fd88554 build: Don't ship GTEST headers in install target
A project that uses googletest(GTEST) shouldn't include googletest
headers with its artifacts in its install target.  These headers
simply are not needed by the consumers of the install target and
can cause conflicts with other projects that use googletest
themselves and this project's install target.  And they are just not
part of the expected glslang build artifacts.

It is likely that the addition of the googletest headers to the install
target was a simple oversight that happens as a result of adding
googletest as a CMake subdirectory.

For more information on how this causes conflicts with other projects,
please see: https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/821.
2019-04-02 14:58:25 -06:00

45 lines
1.5 KiB
CMake

# Suppress all warnings from external projects.
set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w)
if(BUILD_TESTING)
if(TARGET gmock)
message(STATUS "Google Mock already configured - use it")
elseif(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/googletest)
# We need to make sure Google Test does not mess up with the
# global CRT settings on Windows.
if(WIN32)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
endif(WIN32)
# EXCLUDE_FROM_ALL keeps the install target from installing GTEST files.
add_subdirectory(googletest EXCLUDE_FROM_ALL)
set(GTEST_TARGETS
gtest
gtest_main
gmock
gmock_main)
foreach(target ${GTEST_TARGETS})
set_property(TARGET ${target} PROPERTY FOLDER gtest)
endforeach()
mark_as_advanced(gmock_build_tests
BUILD_GMOCK
BUILD_GTEST
BUILD_SHARED_LIBS
gtest_build_samples
gtest_build_tests
gtest_disable_pthreads
gtest_force_shared_crt
gtest_hide_internal_symbols)
else()
message(STATUS
"Google Mock was not found - tests based on that will not build")
endif()
endif()
if(ENABLE_OPT AND NOT TARGET SPIRV-Tools-opt)
if(IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools)
set(SPIRV_SKIP_TESTS ON CACHE BOOL "Skip building SPIRV-Tools tests")
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/spirv-tools spirv-tools)
endif()
endif()