Require CMake 3.16 and remove workarounds

CMake 3.16 is available on the major Linux distributions nowadays,
so we can get rid of some workarounds.

Change-Id: I32500375748f33c3e40fbd7a08824d823f817a8f
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Eike Ziller
2022-01-28 08:59:14 +01:00
parent 275dcc8f8a
commit 1221552377
11 changed files with 29 additions and 104 deletions

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.16)
## Add paths to check for cmake modules:
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
@@ -138,15 +138,8 @@ endif()
add_subdirectory(doc)
# TODO: Remove when cmake_minimum_required greater than 3.12
if (CMAKE_VERSION VERSION_GREATER 3.12)
find_package(Python3 COMPONENTS Interpreter)
set(PYTHONINTERP_FOUND ${Python3_Interpreter_FOUND})
set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
else()
find_package(PythonInterp)
endif()
if (NOT PYTHONINTERP_FOUND)
find_package(Python3 COMPONENTS Interpreter)
if (NOT Python3_Interpreter_FOUND)
message("No python interpreter found, skipping \"Dependencies\" install component.")
else()
get_target_property(_qmake_binary Qt5::qmake IMPORTED_LOCATION)
@@ -161,7 +154,7 @@ else()
endif()
install(CODE "
execute_process(COMMAND
\"${PYTHON_EXECUTABLE}\"
\"${Python3_EXECUTABLE}\"
\"${CMAKE_CURRENT_LIST_DIR}/scripts/deployqt.py\"
${_llvm_arg}
${_elfutils_arg}

View File

@@ -155,20 +155,6 @@ function(add_qtc_library name)
return()
endif()
# TODO copied from extend_qtc_target.
# Instead require CMake 3.11 and use extend_qtc_target for setting SOURCES.
# Requiring cmake 3.11 is necessary because before that add_library requires
# at least one source file.
if (_arg_SOURCES_PREFIX)
foreach(source IN LISTS _arg_SOURCES)
list(APPEND prefixed_sources "${_arg_SOURCES_PREFIX}/${source}")
endforeach()
if (NOT IS_ABSOLUTE ${_arg_SOURCES_PREFIX})
set(_arg_SOURCES_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/${_arg_SOURCES_PREFIX}")
endif()
set(_arg_SOURCES ${prefixed_sources})
endif()
set(library_type SHARED)
if (_arg_STATIC)
set(library_type STATIC)
@@ -177,16 +163,9 @@ function(add_qtc_library name)
set(library_type OBJECT)
endif()
add_library(${name} ${library_type} ${_arg_SOURCES})
add_library(${name} ${library_type})
add_library(QtCreator::${name} ALIAS ${name})
set_public_headers(${name} "${_arg_SOURCES}")
# TODO remove, see above
if (_arg_SOURCES_PREFIX)
target_include_directories(${name} PRIVATE $<BUILD_INTERFACE:${_arg_SOURCES_PREFIX}>)
endif()
if (${name} MATCHES "^[^0-9-]+$")
string(TOUPPER "${name}_LIBRARY" EXPORT_SYMBOL)
endif()
@@ -201,6 +180,8 @@ function(add_qtc_library name)
endif()
extend_qtc_target(${name}
SOURCES_PREFIX ${_arg_SOURCES_PREFIX}
SOURCES ${_arg_SOURCES}
INCLUDES ${_arg_INCLUDES}
PUBLIC_INCLUDES ${_arg_PUBLIC_INCLUDES}
DEFINES ${EXPORT_SYMBOL} ${default_defines_copy} ${_arg_DEFINES} ${TEST_DEFINES}

View File

@@ -1,5 +1,5 @@
if (CMAKE_VERSION VERSION_LESS 3.18)
if (CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_VERSION VERSION_LESS 3.16)
if (CMAKE_CXX_COMPILER_ID STREQUAL GNU)
set(BUILD_WITH_PCH OFF CACHE BOOL "" FORCE)
endif()
endif()
@@ -183,31 +183,6 @@ function(update_cached_list name value)
set("${name}" "${_tmp_list}" CACHE INTERNAL "*** Internal ***")
endfunction()
function(separate_object_libraries libraries REGULAR_LIBS OBJECT_LIBS OBJECT_LIB_OBJECTS)
if (CMAKE_VERSION VERSION_LESS 3.14)
foreach(lib IN LISTS libraries)
if (TARGET ${lib})
get_target_property(lib_type ${lib} TYPE)
if (lib_type STREQUAL "OBJECT_LIBRARY")
list(APPEND object_libs ${lib})
list(APPEND object_libs_objects $<TARGET_OBJECTS:${lib}>)
else()
list(APPEND regular_libs ${lib})
endif()
else()
list(APPEND regular_libs ${lib})
endif()
set(${REGULAR_LIBS} ${regular_libs} PARENT_SCOPE)
set(${OBJECT_LIBS} ${object_libs} PARENT_SCOPE)
set(${OBJECT_LIB_OBJECTS} ${object_libs_objects} PARENT_SCOPE)
endforeach()
else()
set(${REGULAR_LIBS} ${libraries} PARENT_SCOPE)
unset(${OBJECT_LIBS} PARENT_SCOPE)
unset(${OBJECT_LIB_OBJECTS} PARENT_SCOPE)
endif()
endfunction(separate_object_libraries)
function(set_explicit_moc target_name file)
unset(file_dependencies)
if (file MATCHES "^.*plugin.h$")
@@ -293,12 +268,8 @@ function(add_qtc_depends target_name)
check_qtc_disabled_targets(${target_name} _arg_PRIVATE)
check_qtc_disabled_targets(${target_name} _arg_PUBLIC)
separate_object_libraries("${_arg_PRIVATE}"
depends object_lib_depends object_lib_depends_objects)
separate_object_libraries("${_arg_PUBLIC}"
public_depends object_public_depends object_public_depends_objects)
target_sources(${target_name} PRIVATE ${object_lib_depends_objects} ${object_public_depends_objects})
set(depends "${_arg_PRIVATE}")
set(public_depends "${_arg_PUBLIC}")
get_target_property(target_type ${target_name} TYPE)
if (NOT target_type STREQUAL "OBJECT_LIBRARY")

View File

@@ -1,27 +1,19 @@
set(languages cs da de fr hr ja pl ru sl uk zh_CN zh_TW)
set(bad_languages hu) # Fix these before including them in languages!
# TODO: Remove when cmake_minimum_required greater than 3.12
if (CMAKE_VERSION VERSION_GREATER 3.12)
find_package(Python3 COMPONENTS Interpreter)
set(PYTHONINTERP_FOUND ${Python3_Interpreter_FOUND})
set(PYTHON_VERSION_STRING ${Python3_VERSION})
set(PYTHON_EXECUTABLE ${Python3_EXECUTABLE})
else()
find_package(PythonInterp)
endif()
find_package(Python3 COMPONENTS Interpreter)
set(json_wizards_h "")
set(custom_wizards_h "")
set(externaltools_h "")
set(snippets_h "")
if (NOT PYTHONINTERP_FOUND OR NOT PYTHON_VERSION_STRING VERSION_GREATER_EQUAL "3.0.0")
message(WARNING "No python3 interpreter found, skipping extraction of data from XML and JSON files.\n *** Please pass -DPYTHON_EXECUTABLE=/path/to/python3 to cmake.")
if (NOT Python3_Interpreter_FOUND)
message(WARNING "No python3 interpreter found, skipping extraction of data from XML and JSON files.\n *** Please pass -DPython3_EXECUTABLE=/path/to/python3 to cmake.")
else()
set(json_wizards_h "${CMAKE_CURRENT_BINARY_DIR}/jsonwizards_tr.h")
add_custom_command(OUTPUT "${json_wizards_h}"
COMMAND "${PYTHON_EXECUTABLE}"
COMMAND "${Python3_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/extract-jsonwizards.py"
"${PROJECT_SOURCE_DIR}/share/qtcreator/templates/wizards" "${json_wizards_h}"
COMMENT Generate translation data from JSON wizards
@@ -29,7 +21,7 @@ else()
set(custom_wizards_h "${CMAKE_CURRENT_BINARY_DIR}/customwizards_tr.h")
add_custom_command(OUTPUT "${custom_wizards_h}"
COMMAND "${PYTHON_EXECUTABLE}"
COMMAND "${Python3_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/extract-customwizards.py"
"${PROJECT_SOURCE_DIR}/share/qtcreator/templates/wizards" "${custom_wizards_h}"
COMMENT Generate translation data from XML wizards
@@ -37,7 +29,7 @@ else()
set(externaltools_h "${CMAKE_CURRENT_BINARY_DIR}/externaltools_tr.h")
add_custom_command(OUTPUT "${externaltools_h}"
COMMAND "${PYTHON_EXECUTABLE}"
COMMAND "${Python3_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/extract-externaltools.py"
"${PROJECT_SOURCE_DIR}/src/share/qtcreator/externaltools" "${externaltools_h}"
COMMENT Generate translation data from external tools definitions
@@ -45,7 +37,7 @@ else()
set(snippets_h "${CMAKE_CURRENT_BINARY_DIR}/snippets_tr.h")
add_custom_command(OUTPUT "${snippets_h}"
COMMAND "${PYTHON_EXECUTABLE}"
COMMAND "${Python3_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/extract-snippets.py"
"${PROJECT_SOURCE_DIR}/share/qtcreator/snippets" "${snippets_h}"
COMMENT Generate translation data from snippets definitions

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.16)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake")
@@ -60,17 +60,9 @@ add_qtc_library(qtcreatorcdbext
qtc_library_enabled(_library_enabled qtcreatorcdbext)
if (_library_enabled)
# TODO: Remove when cmake_minimum_required greater than 3.12
if (CMAKE_VERSION VERSION_GREATER 3.12)
find_package(Python3 3.8 COMPONENTS Development)
set(PYTHONLIBS_FOUND ${Python3_Development_FOUND})
set(PYTHON_LIBRARIES ${Python3_LIBRARIES})
set(PYTHON_INCLUDE_DIR ${Python3_INCLUDE_DIRS})
else()
find_package(PythonLibs 3.8)
endif()
if (NOT ${PYTHONLIBS_FOUND})
if (NOT ${Python3_Development_FOUND})
message(WARNING "PythonLibs (at least version 3.8) not found. qtcreatorcdbext will be built without Python support.")
return()
endif()
@@ -80,7 +72,7 @@ if (_library_enabled)
set(PythonRegex "^(.*)/(.*)/(python([0-9]+)_d)${CMAKE_IMPORT_LIBRARY_SUFFIX}$")
endif()
foreach(lib IN LISTS PYTHON_LIBRARIES)
foreach(lib IN LISTS Python3_LIBRARIES)
if (lib MATCHES ${PythonRegex})
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(PythonZipFileName "python${CMAKE_MATCH_4}_d.zip")
@@ -105,8 +97,8 @@ if (_library_enabled)
endif()
extend_qtc_library(qtcreatorcdbext
DEPENDS "${PYTHON_LIBRARIES}"
INCLUDES "${PYTHON_INCLUDE_DIR}"
DEPENDS "${Python3_LIBRARIES}"
INCLUDES "${Python3_INCLUDE_DIRS}"
DEFINES WITH_PYTHON=1
SOURCES
pycdbextmodule.cpp pycdbextmodule.h

View File

@@ -21,9 +21,5 @@ add_qtc_executable(iostool
)
if (TARGET iostool)
if (CMAKE_VERSION VERSION_LESS 3.13)
target_link_libraries(iostool PRIVATE "-Wl,-sectcreate,__TEXT,__info_plist,${CMAKE_CURRENT_SOURCE_DIR}/Info.plist")
else()
target_link_options(iostool PRIVATE "-Wl,-sectcreate,__TEXT,__info_plist,${CMAKE_CURRENT_SOURCE_DIR}/Info.plist")
endif()
endif()

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.16)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake")

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.16)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake")

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.16)
if (NOT QT_CREATOR_API_DEFINED)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake")

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.13)
cmake_minimum_required(VERSION 3.16)
project(test_project)
add_executable(test_exe test.cc test.qml)

View File

@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.10)
cmake_minimum_required(VERSION 3.16)
if (NOT QT_CREATOR_API_DEFINED)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake")