mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-06-03 19:51:32 +02:00
Windows application manifests provide several benefits. However, on the master branch, the linker generates and embeds manifests only when building with MSVC. This change unifies manifest embedding for both native and cross-compilation.
28 lines
1016 B
CMake
28 lines
1016 B
CMake
# Copyright (c) 2024-present The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or https://opensource.org/license/mit/.
|
|
|
|
include_guard(GLOBAL)
|
|
|
|
function(add_windows_resources target rc_file)
|
|
if(WIN32)
|
|
target_sources(${target} PRIVATE ${rc_file})
|
|
set_property(SOURCE ${rc_file}
|
|
APPEND PROPERTY COMPILE_DEFINITIONS WINDRES_PREPROC
|
|
)
|
|
endif()
|
|
endfunction()
|
|
|
|
# Add a fusion manifest to Windows executables.
|
|
# See: https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests
|
|
function(add_windows_application_manifest target)
|
|
if(WIN32)
|
|
configure_file(${PROJECT_SOURCE_DIR}/cmake/windows-app.manifest.in ${target}.manifest USE_SOURCE_PERMISSIONS)
|
|
file(CONFIGURE
|
|
OUTPUT ${target}-manifest.rc
|
|
CONTENT "1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ \"${target}.manifest\""
|
|
)
|
|
add_windows_resources(${target} ${CMAKE_CURRENT_BINARY_DIR}/${target}-manifest.rc)
|
|
endif()
|
|
endfunction()
|