From bb9157db5d3920d971e365e416de4e23866c715a Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Wed, 12 Feb 2025 12:39:18 +0000 Subject: [PATCH 1/2] cmake, refactor: Switch to `Python3::Interpreter` imported target Imported targets are more robust than using variables. --- CMakeLists.txt | 4 +--- cmake/module/Maintenance.cmake | 10 +++++----- cmake/tests.cmake | 4 ++-- src/qt/CMakeLists.txt | 2 +- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 18d23142a10..773c651d284 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -590,9 +590,7 @@ set(Python3_FIND_FRAMEWORK LAST CACHE STRING "") set(Python3_FIND_UNVERSIONED_NAMES FIRST CACHE STRING "") mark_as_advanced(Python3_FIND_FRAMEWORK Python3_FIND_UNVERSIONED_NAMES) find_package(Python3 3.10 COMPONENTS Interpreter) -if(Python3_EXECUTABLE) - set(PYTHON_COMMAND ${Python3_EXECUTABLE}) -else() +if(NOT TARGET Python3::Interpreter) list(APPEND configure_warnings "Minimum required Python not found. Rpcauth tests are disabled." ) diff --git a/cmake/module/Maintenance.cmake b/cmake/module/Maintenance.cmake index d09559c5a9a..52fc7faba9f 100644 --- a/cmake/module/Maintenance.cmake +++ b/cmake/module/Maintenance.cmake @@ -19,7 +19,7 @@ function(setup_split_debug_script) endfunction() function(add_maintenance_targets) - if(NOT PYTHON_COMMAND) + if(NOT TARGET Python3::Interpreter) return() endif() @@ -31,13 +31,13 @@ function(add_maintenance_targets) add_custom_target(check-symbols COMMAND ${CMAKE_COMMAND} -E echo "Running symbol and dynamic library checks..." - COMMAND ${PYTHON_COMMAND} ${PROJECT_SOURCE_DIR}/contrib/guix/symbol-check.py ${executables} + COMMAND Python3::Interpreter ${PROJECT_SOURCE_DIR}/contrib/guix/symbol-check.py ${executables} VERBATIM ) add_custom_target(check-security COMMAND ${CMAKE_COMMAND} -E echo "Checking binary security..." - COMMAND ${PYTHON_COMMAND} ${PROJECT_SOURCE_DIR}/contrib/guix/security-check.py ${executables} + COMMAND Python3::Interpreter ${PROJECT_SOURCE_DIR}/contrib/guix/security-check.py ${executables} VERBATIM ) endfunction() @@ -100,7 +100,7 @@ function(add_macos_deploy_target) if(CMAKE_HOST_APPLE) add_custom_command( OUTPUT ${PROJECT_BINARY_DIR}/${osx_volname}.zip - COMMAND ${PYTHON_COMMAND} ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} ${osx_volname} -translations-dir=${QT_TRANSLATIONS_DIR} -zip + COMMAND Python3::Interpreter ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} ${osx_volname} -translations-dir=${QT_TRANSLATIONS_DIR} -zip DEPENDS ${PROJECT_BINARY_DIR}/${macos_app}/Contents/MacOS/Bitcoin-Qt VERBATIM ) @@ -113,7 +113,7 @@ function(add_macos_deploy_target) else() add_custom_command( OUTPUT ${PROJECT_BINARY_DIR}/dist/${macos_app}/Contents/MacOS/Bitcoin-Qt - COMMAND OBJDUMP=${CMAKE_OBJDUMP} ${PYTHON_COMMAND} ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} ${osx_volname} -translations-dir=${QT_TRANSLATIONS_DIR} + COMMAND ${CMAKE_COMMAND} -E env OBJDUMP=${CMAKE_OBJDUMP} $ ${PROJECT_SOURCE_DIR}/contrib/macdeploy/macdeployqtplus ${macos_app} ${osx_volname} -translations-dir=${QT_TRANSLATIONS_DIR} DEPENDS ${PROJECT_BINARY_DIR}/${macos_app}/Contents/MacOS/Bitcoin-Qt VERBATIM ) diff --git a/cmake/tests.cmake b/cmake/tests.cmake index 46104593c85..78dd8ec8b03 100644 --- a/cmake/tests.cmake +++ b/cmake/tests.cmake @@ -2,8 +2,8 @@ # Distributed under the MIT software license, see the accompanying # file COPYING or https://opensource.org/license/mit/. -if(PYTHON_COMMAND) +if(TARGET Python3::Interpreter) add_test(NAME util_rpcauth_test - COMMAND ${PYTHON_COMMAND} ${PROJECT_BINARY_DIR}/test/util/rpcauth-test.py + COMMAND Python3::Interpreter ${PROJECT_BINARY_DIR}/test/util/rpcauth-test.py ) endif() diff --git a/src/qt/CMakeLists.txt b/src/qt/CMakeLists.txt index fa6b2b3918c..38d0a358b49 100644 --- a/src/qt/CMakeLists.txt +++ b/src/qt/CMakeLists.txt @@ -349,7 +349,7 @@ else() get_translatable_sources(qt_translatable_sources src/qt) file(GLOB ui_files ${CMAKE_CURRENT_SOURCE_DIR}/forms/*.ui) add_custom_target(translate - COMMAND ${CMAKE_COMMAND} -E env XGETTEXT=${XGETTEXT_EXECUTABLE} COPYRIGHT_HOLDERS=${COPYRIGHT_HOLDERS} ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/share/qt/extract_strings_qt.py ${translatable_sources} + COMMAND ${CMAKE_COMMAND} -E env XGETTEXT=${XGETTEXT_EXECUTABLE} COPYRIGHT_HOLDERS=${COPYRIGHT_HOLDERS} $ ${PROJECT_SOURCE_DIR}/share/qt/extract_strings_qt.py ${translatable_sources} COMMAND Qt6::lupdate -no-obsolete -I ${PROJECT_SOURCE_DIR}/src -locations relative ${CMAKE_CURRENT_SOURCE_DIR}/bitcoinstrings.cpp ${ui_files} ${qt_translatable_sources} -ts ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.ts COMMAND Qt6::lconvert -drop-translations -o ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf -i ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.ts COMMAND ${SED_EXECUTABLE} -i.old -e "s|source-language=\"en\" target-language=\"en\"|source-language=\"en\"|" -e "/<\\/target>/d" ${CMAKE_CURRENT_SOURCE_DIR}/locale/bitcoin_en.xlf From 67dc7523f3e103c8359b546d38f28c1feb2b9b34 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Wed, 12 Feb 2025 12:39:30 +0000 Subject: [PATCH 2/2] cmake, test: Disable tests instead of ignoring them --- cmake/tests.cmake | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/cmake/tests.cmake b/cmake/tests.cmake index 78dd8ec8b03..473be62b288 100644 --- a/cmake/tests.cmake +++ b/cmake/tests.cmake @@ -2,8 +2,9 @@ # Distributed under the MIT software license, see the accompanying # file COPYING or https://opensource.org/license/mit/. -if(TARGET Python3::Interpreter) - add_test(NAME util_rpcauth_test - COMMAND Python3::Interpreter ${PROJECT_BINARY_DIR}/test/util/rpcauth-test.py - ) -endif() +add_test(NAME util_rpcauth_test + COMMAND Python3::Interpreter ${PROJECT_BINARY_DIR}/test/util/rpcauth-test.py +) +set_tests_properties(util_rpcauth_test PROPERTIES + DISABLED $> +)