Simplifications: - `COMPILE_LANGUAGE` accepts comma-separated list since 3.15 Pick-to: 6.8 Change-Id: I4af316a463b5771bf5b37a6b4d77e41adba60977 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> (cherry picked from commit 51dc4cdd42cc57072b4e9da3aa02029597d4676c) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
35 lines
1.3 KiB
CMake
35 lines
1.3 KiB
CMake
# Copyright (C) 2022 The Qt Company Ltd.
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
function(qt_update_precompiled_header target precompiled_header)
|
|
if (precompiled_header AND BUILD_WITH_PCH)
|
|
set_property(TARGET "${target}" APPEND PROPERTY "PRECOMPILE_HEADERS" "$<$<COMPILE_LANGUAGE:CXX,OBJCXX>:${precompiled_header}>")
|
|
endif()
|
|
endfunction()
|
|
|
|
function(qt_update_precompiled_header_with_library target library)
|
|
if (TARGET "${library}")
|
|
get_target_property(TARGET_TYPE "${library}" TYPE)
|
|
if (NOT TARGET_TYPE STREQUAL "INTERFACE_LIBRARY")
|
|
get_target_property(HEADER "${library}" MODULE_HEADER)
|
|
qt_update_precompiled_header("${target}" "${HEADER}")
|
|
endif()
|
|
endif()
|
|
endfunction()
|
|
|
|
function(qt_update_ignore_pch_source target sources)
|
|
if (sources)
|
|
set_source_files_properties(${sources} PROPERTIES
|
|
SKIP_PRECOMPILE_HEADERS ON
|
|
SKIP_UNITY_BUILD_INCLUSION ON)
|
|
endif()
|
|
endfunction()
|
|
|
|
function(qt_ignore_pch_obj_c_sources target sources)
|
|
# No obj-cxx PCH support for versions lower than 3.16.
|
|
if(CMAKE_VERSION VERSION_LESS 3.16.0)
|
|
list(FILTER sources INCLUDE REGEX "\\.mm$")
|
|
qt_update_ignore_pch_source("${target}" "${sources}")
|
|
endif()
|
|
endfunction()
|