Merge pull request #2327 from ben-clayton/fix-pch
Use CMake's builtin functionality for pre-compiled headers
This commit is contained in:
commit
5aaa0c2bc8
@ -72,9 +72,7 @@ cc_library(
|
|||||||
"glslang/MachineIndependent/preprocessor/*.cpp",
|
"glslang/MachineIndependent/preprocessor/*.cpp",
|
||||||
],
|
],
|
||||||
exclude = [
|
exclude = [
|
||||||
"glslang/HLSL/pch.cpp",
|
|
||||||
"glslang/HLSL/pch.h",
|
"glslang/HLSL/pch.h",
|
||||||
"glslang/MachineIndependent/pch.cpp",
|
|
||||||
"glslang/MachineIndependent/pch.h",
|
"glslang/MachineIndependent/pch.h",
|
||||||
],
|
],
|
||||||
) + [
|
) + [
|
||||||
|
@ -107,18 +107,6 @@ if(USE_CCACHE)
|
|||||||
endif(CCACHE_FOUND)
|
endif(CCACHE_FOUND)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Precompiled header macro. Parameters are source file list and filename for pch cpp file.
|
|
||||||
macro(glslang_pch SRCS PCHCPP)
|
|
||||||
if(MSVC AND CMAKE_GENERATOR MATCHES "^Visual Studio" AND NOT ${CMAKE_CXX_COMPILER_ID} MATCHES "Clang" AND ENABLE_PCH)
|
|
||||||
set(PCH_NAME "$(IntDir)\\pch.pch")
|
|
||||||
# make source files use/depend on PCH_NAME
|
|
||||||
set_source_files_properties(${${SRCS}} PROPERTIES COMPILE_FLAGS "/Yupch.h /FIpch.h /Fp${PCH_NAME} /Zm300" OBJECT_DEPENDS "${PCH_NAME}")
|
|
||||||
# make PCHCPP file compile and generate PCH_NAME
|
|
||||||
set_source_files_properties(${PCHCPP} PROPERTIES COMPILE_FLAGS "/Ycpch.h /Fp${PCH_NAME} /Zm300" OBJECT_OUTPUTS "${PCH_NAME}")
|
|
||||||
list(APPEND ${SRCS} "${PCHCPP}")
|
|
||||||
endif()
|
|
||||||
endmacro(glslang_pch)
|
|
||||||
|
|
||||||
project(glslang)
|
project(glslang)
|
||||||
|
|
||||||
if(ENABLE_CTEST)
|
if(ENABLE_CTEST)
|
||||||
@ -255,6 +243,19 @@ function(glslang_only_export_explicit_symbols target)
|
|||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
# glslang_pch() adds precompiled header rules to <target> for the pre-compiled
|
||||||
|
# header file <pch>. As target_precompile_headers() was added in CMake 3.16,
|
||||||
|
# this is a no-op if called on earlier versions of CMake.
|
||||||
|
if(NOT CMAKE_VERSION VERSION_LESS "3.16")
|
||||||
|
function(glslang_pch target pch)
|
||||||
|
target_precompile_headers(${target} PRIVATE ${pch})
|
||||||
|
endfunction()
|
||||||
|
else()
|
||||||
|
function(glslang_pch target pch)
|
||||||
|
endfunction()
|
||||||
|
message(NOTICE "Your CMake version is ${CMAKE_VERSION}. Update to at least 3.16 to enable precompiled headers to speed up incremental builds")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(NOT TARGET SPIRV-Tools-opt)
|
if(NOT TARGET SPIRV-Tools-opt)
|
||||||
set(ENABLE_OPT OFF)
|
set(ENABLE_OPT OFF)
|
||||||
endif()
|
endif()
|
||||||
|
@ -133,7 +133,7 @@ endif(ENABLE_HLSL)
|
|||||||
add_library(MachineIndependent STATIC ${MACHINEINDEPENDENT_SOURCES} ${MACHINEINDEPENDENT_HEADERS})
|
add_library(MachineIndependent STATIC ${MACHINEINDEPENDENT_SOURCES} ${MACHINEINDEPENDENT_HEADERS})
|
||||||
set_property(TARGET MachineIndependent PROPERTY POSITION_INDEPENDENT_CODE ON)
|
set_property(TARGET MachineIndependent PROPERTY POSITION_INDEPENDENT_CODE ON)
|
||||||
set_property(TARGET MachineIndependent PROPERTY FOLDER glslang)
|
set_property(TARGET MachineIndependent PROPERTY FOLDER glslang)
|
||||||
glslang_pch(SOURCES MachineIndependent/pch.cpp)
|
glslang_pch(MachineIndependent MachineIndependent/pch.h)
|
||||||
|
|
||||||
target_link_libraries(MachineIndependent PRIVATE OGLCompiler OSDependent GenericCodeGen)
|
target_link_libraries(MachineIndependent PRIVATE OGLCompiler OSDependent GenericCodeGen)
|
||||||
|
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (C) 2018 The Khronos Group Inc.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions
|
|
||||||
// are met:
|
|
||||||
//
|
|
||||||
// Redistributions of source code must retain the above copyright
|
|
||||||
// notice, this list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// Redistributions in binary form must reproduce the above
|
|
||||||
// copyright notice, this list of conditions and the following
|
|
||||||
// disclaimer in the documentation and/or other materials provided
|
|
||||||
// with the distribution.
|
|
||||||
//
|
|
||||||
// Neither the name of 3Dlabs Inc. Ltd. nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived
|
|
||||||
// from this software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
// POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "pch.h"
|
|
@ -1,35 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (C) 2018 The Khronos Group Inc.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions
|
|
||||||
// are met:
|
|
||||||
//
|
|
||||||
// Redistributions of source code must retain the above copyright
|
|
||||||
// notice, this list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// Redistributions in binary form must reproduce the above
|
|
||||||
// copyright notice, this list of conditions and the following
|
|
||||||
// disclaimer in the documentation and/or other materials provided
|
|
||||||
// with the distribution.
|
|
||||||
//
|
|
||||||
// Neither the name of 3Dlabs Inc. Ltd. nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived
|
|
||||||
// from this software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
// POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "pch.h"
|
|
@ -60,9 +60,9 @@ if(BUILD_TESTING)
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp)
|
${CMAKE_CURRENT_SOURCE_DIR}/Remap.FromFile.cpp)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
glslang_pch(TEST_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/pch.cpp)
|
|
||||||
|
|
||||||
add_executable(glslangtests ${TEST_SOURCES})
|
add_executable(glslangtests ${TEST_SOURCES})
|
||||||
|
glslang_pch(glslangtests ${CMAKE_CURRENT_SOURCE_DIR}/pch.h)
|
||||||
set_property(TARGET glslangtests PROPERTY FOLDER tests)
|
set_property(TARGET glslangtests PROPERTY FOLDER tests)
|
||||||
glslang_set_link_args(glslangtests)
|
glslang_set_link_args(glslangtests)
|
||||||
if(ENABLE_GLSLANG_INSTALL)
|
if(ENABLE_GLSLANG_INSTALL)
|
||||||
|
@ -1,35 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright (C) 2018 The Khronos Group Inc.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Redistribution and use in source and binary forms, with or without
|
|
||||||
// modification, are permitted provided that the following conditions
|
|
||||||
// are met:
|
|
||||||
//
|
|
||||||
// Redistributions of source code must retain the above copyright
|
|
||||||
// notice, this list of conditions and the following disclaimer.
|
|
||||||
//
|
|
||||||
// Redistributions in binary form must reproduce the above
|
|
||||||
// copyright notice, this list of conditions and the following
|
|
||||||
// disclaimer in the documentation and/or other materials provided
|
|
||||||
// with the distribution.
|
|
||||||
//
|
|
||||||
// Neither the name of 3Dlabs Inc. Ltd. nor the names of its
|
|
||||||
// contributors may be used to endorse or promote products derived
|
|
||||||
// from this software without specific prior written permission.
|
|
||||||
//
|
|
||||||
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
||||||
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
||||||
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
|
||||||
// FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
|
||||||
// COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
|
||||||
// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
|
||||||
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
||||||
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
||||||
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
|
||||||
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
|
||||||
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
||||||
// POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
//
|
|
||||||
|
|
||||||
#include "pch.h"
|
|
Loading…
x
Reference in New Issue
Block a user