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

View File

@@ -155,20 +155,6 @@ function(add_qtc_library name)
return() return()
endif() 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) set(library_type SHARED)
if (_arg_STATIC) if (_arg_STATIC)
set(library_type STATIC) set(library_type STATIC)
@@ -177,16 +163,9 @@ function(add_qtc_library name)
set(library_type OBJECT) set(library_type OBJECT)
endif() endif()
add_library(${name} ${library_type} ${_arg_SOURCES}) add_library(${name} ${library_type})
add_library(QtCreator::${name} ALIAS ${name}) 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-]+$") if (${name} MATCHES "^[^0-9-]+$")
string(TOUPPER "${name}_LIBRARY" EXPORT_SYMBOL) string(TOUPPER "${name}_LIBRARY" EXPORT_SYMBOL)
endif() endif()
@@ -201,6 +180,8 @@ function(add_qtc_library name)
endif() endif()
extend_qtc_target(${name} extend_qtc_target(${name}
SOURCES_PREFIX ${_arg_SOURCES_PREFIX}
SOURCES ${_arg_SOURCES}
INCLUDES ${_arg_INCLUDES} INCLUDES ${_arg_INCLUDES}
PUBLIC_INCLUDES ${_arg_PUBLIC_INCLUDES} PUBLIC_INCLUDES ${_arg_PUBLIC_INCLUDES}
DEFINES ${EXPORT_SYMBOL} ${default_defines_copy} ${_arg_DEFINES} ${TEST_DEFINES} 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_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) set(BUILD_WITH_PCH OFF CACHE BOOL "" FORCE)
endif() endif()
endif() endif()
@@ -183,31 +183,6 @@ function(update_cached_list name value)
set("${name}" "${_tmp_list}" CACHE INTERNAL "*** Internal ***") set("${name}" "${_tmp_list}" CACHE INTERNAL "*** Internal ***")
endfunction() 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) function(set_explicit_moc target_name file)
unset(file_dependencies) unset(file_dependencies)
if (file MATCHES "^.*plugin.h$") 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_PRIVATE)
check_qtc_disabled_targets(${target_name} _arg_PUBLIC) check_qtc_disabled_targets(${target_name} _arg_PUBLIC)
separate_object_libraries("${_arg_PRIVATE}" set(depends "${_arg_PRIVATE}")
depends object_lib_depends object_lib_depends_objects) set(public_depends "${_arg_PUBLIC}")
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})
get_target_property(target_type ${target_name} TYPE) get_target_property(target_type ${target_name} TYPE)
if (NOT target_type STREQUAL "OBJECT_LIBRARY") 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(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! set(bad_languages hu) # Fix these before including them in languages!
# TODO: Remove when cmake_minimum_required greater than 3.12 find_package(Python3 COMPONENTS Interpreter)
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()
set(json_wizards_h "") set(json_wizards_h "")
set(custom_wizards_h "") set(custom_wizards_h "")
set(externaltools_h "") set(externaltools_h "")
set(snippets_h "") set(snippets_h "")
if (NOT PYTHONINTERP_FOUND OR NOT PYTHON_VERSION_STRING VERSION_GREATER_EQUAL "3.0.0") if (NOT Python3_Interpreter_FOUND)
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.") 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() else()
set(json_wizards_h "${CMAKE_CURRENT_BINARY_DIR}/jsonwizards_tr.h") set(json_wizards_h "${CMAKE_CURRENT_BINARY_DIR}/jsonwizards_tr.h")
add_custom_command(OUTPUT "${json_wizards_h}" add_custom_command(OUTPUT "${json_wizards_h}"
COMMAND "${PYTHON_EXECUTABLE}" COMMAND "${Python3_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/extract-jsonwizards.py" "${CMAKE_CURRENT_SOURCE_DIR}/extract-jsonwizards.py"
"${PROJECT_SOURCE_DIR}/share/qtcreator/templates/wizards" "${json_wizards_h}" "${PROJECT_SOURCE_DIR}/share/qtcreator/templates/wizards" "${json_wizards_h}"
COMMENT Generate translation data from JSON wizards COMMENT Generate translation data from JSON wizards
@@ -29,7 +21,7 @@ else()
set(custom_wizards_h "${CMAKE_CURRENT_BINARY_DIR}/customwizards_tr.h") set(custom_wizards_h "${CMAKE_CURRENT_BINARY_DIR}/customwizards_tr.h")
add_custom_command(OUTPUT "${custom_wizards_h}" add_custom_command(OUTPUT "${custom_wizards_h}"
COMMAND "${PYTHON_EXECUTABLE}" COMMAND "${Python3_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/extract-customwizards.py" "${CMAKE_CURRENT_SOURCE_DIR}/extract-customwizards.py"
"${PROJECT_SOURCE_DIR}/share/qtcreator/templates/wizards" "${custom_wizards_h}" "${PROJECT_SOURCE_DIR}/share/qtcreator/templates/wizards" "${custom_wizards_h}"
COMMENT Generate translation data from XML wizards COMMENT Generate translation data from XML wizards
@@ -37,7 +29,7 @@ else()
set(externaltools_h "${CMAKE_CURRENT_BINARY_DIR}/externaltools_tr.h") set(externaltools_h "${CMAKE_CURRENT_BINARY_DIR}/externaltools_tr.h")
add_custom_command(OUTPUT "${externaltools_h}" add_custom_command(OUTPUT "${externaltools_h}"
COMMAND "${PYTHON_EXECUTABLE}" COMMAND "${Python3_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/extract-externaltools.py" "${CMAKE_CURRENT_SOURCE_DIR}/extract-externaltools.py"
"${PROJECT_SOURCE_DIR}/src/share/qtcreator/externaltools" "${externaltools_h}" "${PROJECT_SOURCE_DIR}/src/share/qtcreator/externaltools" "${externaltools_h}"
COMMENT Generate translation data from external tools definitions COMMENT Generate translation data from external tools definitions
@@ -45,7 +37,7 @@ else()
set(snippets_h "${CMAKE_CURRENT_BINARY_DIR}/snippets_tr.h") set(snippets_h "${CMAKE_CURRENT_BINARY_DIR}/snippets_tr.h")
add_custom_command(OUTPUT "${snippets_h}" add_custom_command(OUTPUT "${snippets_h}"
COMMAND "${PYTHON_EXECUTABLE}" COMMAND "${Python3_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/extract-snippets.py" "${CMAKE_CURRENT_SOURCE_DIR}/extract-snippets.py"
"${PROJECT_SOURCE_DIR}/share/qtcreator/snippets" "${snippets_h}" "${PROJECT_SOURCE_DIR}/share/qtcreator/snippets" "${snippets_h}"
COMMENT Generate translation data from snippets definitions 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") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake")
@@ -60,17 +60,9 @@ add_qtc_library(qtcreatorcdbext
qtc_library_enabled(_library_enabled qtcreatorcdbext) qtc_library_enabled(_library_enabled qtcreatorcdbext)
if (_library_enabled) 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) 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.") message(WARNING "PythonLibs (at least version 3.8) not found. qtcreatorcdbext will be built without Python support.")
return() return()
endif() endif()
@@ -80,7 +72,7 @@ if (_library_enabled)
set(PythonRegex "^(.*)/(.*)/(python([0-9]+)_d)${CMAKE_IMPORT_LIBRARY_SUFFIX}$") set(PythonRegex "^(.*)/(.*)/(python([0-9]+)_d)${CMAKE_IMPORT_LIBRARY_SUFFIX}$")
endif() endif()
foreach(lib IN LISTS PYTHON_LIBRARIES) foreach(lib IN LISTS Python3_LIBRARIES)
if (lib MATCHES ${PythonRegex}) if (lib MATCHES ${PythonRegex})
if (CMAKE_BUILD_TYPE STREQUAL "Debug") if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(PythonZipFileName "python${CMAKE_MATCH_4}_d.zip") set(PythonZipFileName "python${CMAKE_MATCH_4}_d.zip")
@@ -105,8 +97,8 @@ if (_library_enabled)
endif() endif()
extend_qtc_library(qtcreatorcdbext extend_qtc_library(qtcreatorcdbext
DEPENDS "${PYTHON_LIBRARIES}" DEPENDS "${Python3_LIBRARIES}"
INCLUDES "${PYTHON_INCLUDE_DIR}" INCLUDES "${Python3_INCLUDE_DIRS}"
DEFINES WITH_PYTHON=1 DEFINES WITH_PYTHON=1
SOURCES SOURCES
pycdbextmodule.cpp pycdbextmodule.h pycdbextmodule.cpp pycdbextmodule.h

View File

@@ -21,9 +21,5 @@ add_qtc_executable(iostool
) )
if (TARGET 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") target_link_options(iostool PRIVATE "-Wl,-sectcreate,__TEXT,__info_plist,${CMAKE_CURRENT_SOURCE_DIR}/Info.plist")
endif()
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") 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") 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) if (NOT QT_CREATOR_API_DEFINED)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../../cmake") 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) project(test_project)
add_executable(test_exe test.cc test.qml) 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) if (NOT QT_CREATOR_API_DEFINED)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../../cmake")