From https://github.com/rizinorg/cutter/pull/3525 From: "Azamat H. Hackimov" Date: Mon, 10 Nov 2025 16:45:48 +0300 Subject: [PATCH] Update cmake_minimum_required to 3.12 Recent CMake-4 threats projects with cmake_minimum_required < 3.10 failure and refuses to configure them. Updating minimal requirement to 3.12 and simplify some parts of project that depends on older version compatibility. Signed-off-by: Azamat H. Hackimov --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,4 @@ -cmake_minimum_required(VERSION 3.5) - -if(POLICY CMP0074) - cmake_policy(SET CMP0074 NEW) -endif() +cmake_minimum_required(VERSION 3.12) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") include(DisallowInSource) @@ -97,14 +93,8 @@ set(QT_PREFIX "Qt${CUTTER_QT}") find_package(${QT_PREFIX} REQUIRED COMPONENTS ${QT_COMPONENTS}) if(CUTTER_ENABLE_PYTHON) - if(CMAKE_VERSION VERSION_LESS "3.12.0") - find_package(PythonInterp REQUIRED) - find_package(PythonLibs ${CUTTER_PYTHON_MIN} REQUIRED) - include_directories(${PYTHON_INCLUDE_DIRS}) - else() - find_package (Python3 ${CUTTER_PYTHON_MIN} REQUIRED COMPONENTS Interpreter Development) - set (PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) - endif() + find_package (Python3 ${CUTTER_PYTHON_MIN} REQUIRED COMPONENTS Interpreter Development) + set (PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) add_definitions(-DCUTTER_ENABLE_PYTHON) --- a/dist/CMakeLists.txt +++ b/dist/CMakeLists.txt @@ -14,13 +14,8 @@ if(WIN32) if (CUTTER_ENABLE_DEPENDENCY_DOWNLOADS) set(CPACK_INSTALL_SCRIPTS ${CMAKE_CURRENT_SOURCE_DIR}/WindowsBundlePython.cmake) endif() - if(CMAKE_VERSION VERSION_LESS "3.12.0") - find_package(PythonInterp REQUIRED) - install(DIRECTORY ${CUTTER_DEPS}/pyside/lib/site-packages DESTINATION "python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}") - else() - find_package (Python3 ${CUTTER_PYTHON_MIN} REQUIRED COMPONENTS) - install(DIRECTORY ${CUTTER_DEPS}/pyside/lib/site-packages DESTINATION "python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR}") - endif() + find_package (Python3 ${CUTTER_PYTHON_MIN} REQUIRED COMPONENTS) + install(DIRECTORY ${CUTTER_DEPS}/pyside/lib/site-packages DESTINATION "python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR}") install(FILES ${CUTTER_DEPS}/pyside/bin/shiboken6.abi3.dll ${CUTTER_DEPS}/pyside/bin/pyside6.abi3.dll DESTINATION .) endif() install(SCRIPT WindowsBundleQt.cmake) --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -510,23 +510,7 @@ endif() target_link_libraries(Cutter PUBLIC ${RIZIN_TARGET}) if(CUTTER_ENABLE_PYTHON) - if(CMAKE_VERSION VERSION_LESS "3.12.0") - # On windows some of the Python STABLE API functions are in seperate library - # which isn't added by CMake. - if (WIN32) - foreach(_PYTHON_LIBRARY ${PYTHON_LIBRARIES}) - # Skip extra "optimized" and "debug" values that are only meant for passing to target_link_libraries() - if((NOT _PYTHON_LIBRARY STREQUAL "optimized") AND (NOT _PYTHON_LIBRARY STREQUAL "debug")) - get_filename_component(_PYTHON_LIB_DIR ${_PYTHON_LIBRARY} DIRECTORY) - message(STATUS "Add extra library dir for Python: ${_PYTHON_LIB_DIR}") - target_link_directories(Cutter PRIVATE ${_PYTHON_LIB_DIR}) - endif() - endforeach() - endif() - target_link_libraries(Cutter PRIVATE ${PYTHON_LIBRARIES}) - else() - target_link_libraries(Cutter PRIVATE Python3::Python) - endif() + target_link_libraries(Cutter PRIVATE Python3::Python) if(CUTTER_ENABLE_PYTHON_BINDINGS) target_link_libraries(Cutter PRIVATE ${CUTTER_PYSIDE_LIBS})