Files
amnezia-client/cmake/sign_binaries.cmake
T
Yaroslav Gurov a4d38b5642 fix: windows certificate signing issues (#3175)
* fix: windows certificate signing issues

* fix: add has_ui option and phys/cloud opts
2026-09-16 22:22:19 +08:00

50 lines
1.8 KiB
CMake

if(NOT DEFINED SIGNTOOL_SUBJECT_NAME)
set(SIGNTOOL_SUBJECT_NAME "$ENV{SIGNTOOL_SUBJECT_NAME}")
endif()
if(NOT DEFINED SIGNTOOL_CERT_HAS_UI)
set(SIGNTOOL_CERT_HAS_UI "$ENV{SIGNTOOL_CERT_HAS_UI}")
endif()
if(NOT DEFINED CODESIGN_SIGNATURE)
set(CODESIGN_SIGNATURE "$ENV{CODESIGN_SIGNATURE}")
endif()
if(NOT DEFINED CODESIGN_KEYCHAIN)
set(CODESIGN_KEYCHAIN "$ENV{CODESIGN_KEYCHAIN}")
endif()
if(WIN32)
set(AMNEZIA_PACKAGE_DIR "${CPACK_TEMPORARY_DIRECTORY}/packages/AmneziaVPN/data")
if(SIGNTOOL_SUBJECT_NAME)
include(${CMAKE_CURRENT_LIST_DIR}/util/signtool.cmake)
signtool_sign_files("${AMNEZIA_PACKAGE_DIR}/*.exe" "${SIGNTOOL_SUBJECT_NAME}" "${SIGNTOOL_CERT_HAS_UI}")
signtool_sign_files("${AMNEZIA_PACKAGE_DIR}/*.dll" "${SIGNTOOL_SUBJECT_NAME}" "${SIGNTOOL_CERT_HAS_UI}")
endif()
endif()
if(APPLE)
file(GLOB_RECURSE all_subdirs LIST_DIRECTORIES true "${CPACK_TEMPORARY_DIRECTORY}/*")
set(frameworks ${all_subdirs})
list(FILTER frameworks INCLUDE REGEX [[.*\.framework$]])
file(GLOB_RECURSE dylibs "${CPACK_TEMPORARY_DIRECTORY}/*.dylib")
set(bundle ${all_subdirs})
list(FILTER bundle INCLUDE REGEX [[.*\.app$]])
list(GET bundle 0 bundle)
file(GLOB_RECURSE execs "${bundle}/Contents/MacOS/*")
set(client_exec ${execs})
list(FILTER client_exec INCLUDE REGEX [[AmneziaVPN$]])
set(service_exec ${execs})
list(FILTER service_exec INCLUDE REGEX [[AmneziaVPN-service$]])
set(other_execs ${execs})
list(FILTER other_execs EXCLUDE REGEX [[AmneziaVPN$|AmneziaVPN-service$]])
list(APPEND files "${frameworks}" "${dylibs}" "${other_execs}" "${service_exec}" "${client_exec}" "${bundle}")
if (files AND CODESIGN_SIGNATURE)
include(${CMAKE_CURRENT_LIST_DIR}/util/codesign.cmake)
codesign_sign_files("${files}" "${CODESIGN_SIGNATURE}" "${CODESIGN_KEYCHAIN}")
endif()
endif()