diff options
Diffstat (limited to 'qmake/CMakeLists.txt')
-rw-r--r-- | qmake/CMakeLists.txt | 109 |
1 files changed, 59 insertions, 50 deletions
diff --git a/qmake/CMakeLists.txt b/qmake/CMakeLists.txt index 9cf6a3a4b5..5a54570194 100644 --- a/qmake/CMakeLists.txt +++ b/qmake/CMakeLists.txt @@ -1,38 +1,64 @@ +# Copyright (C) 2022 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + # Generated from qmake.pro. ##################################################################### ## qmake Tool: ##################################################################### -# TODO: Probably it's time to introduce QT_FEATURE_qmake? -if(NOT (QT_FEATURE_settings AND QT_FEATURE_alloca AND (QT_FEATURE_alloca_malloc_h OR NOT WIN32) AND - QT_FEATURE_cborstreamwriter AND QT_FEATURE_datestring AND QT_FEATURE_regularexpression AND - QT_FEATURE_temporaryfile)) - message(WARNING "Skip building qmake in specified configuration.\ -Required features: - QT_FEATURE_settings ${QT_FEATURE_settings} - QT_FEATURE_alloca ${QT_FEATURE_alloca} - QT_FEATURE_cborstreamwriter ${QT_FEATURE_cborstreamwriter} - QT_FEATURE_datestring ${QT_FEATURE_datestring} - QT_FEATURE_getauxval ${QT_FEATURE_getauxval} - QT_FEATURE_regularexpression ${QT_FEATURE_regularexpression} - QT_FEATURE_temporaryfile ${QT_FEATURE_temporaryfile} -") - return() +# The common object library, that should be available regardless of the presence of qmake. +qt_add_library(QtLibraryInfo OBJECT + library/proitems.cpp library/proitems.h + library/qmake_global.h + property.cpp property.h + propertyprinter.cpp propertyprinter.h + qmakelibraryinfo.cpp qmakelibraryinfo.h +) + +# Make sure we use same parameters when building QtLibraryInfo and other Qt libraries, +# otherwise some compilers may have compilation errors, such as clang-cl. +target_link_libraries(QtLibraryInfo PUBLIC PlatformCommonInternal) + +target_link_libraries(QtLibraryInfo PUBLIC Qt::CorePrivate) + +qt_internal_add_sync_header_dependencies(QtLibraryInfo Core) + +target_include_directories(QtLibraryInfo PUBLIC + "${CMAKE_CURRENT_SOURCE_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/library" +) + +# Chop off the "/mkspecs" part of INSTALL_MKSPECSDIR +get_filename_component(hostdatadir "${INSTALL_MKSPECSDIR}" DIRECTORY) +if("${hostdatadir}" STREQUAL "") + set(hostdatadir ".") endif() -# The QT_CONFIGURE_HOSTBINDIR_TO_*PREFIX_PATH defines are exclusively used by qmake to determine -# the prefix from the location of the qmake executable. In our build of qmake host_prefix is -# always the same as ext_prefix, and we can just use CMAKE_INSTALL_PREFIX for the calculation of -# the relative path between <ext_prefix>/bin and <ext_prefix>. -file(RELATIVE_PATH QT_CONFIGURE_RELATIVE_PREFIX_PATH - "${CMAKE_INSTALL_PREFIX}/${INSTALL_BINDIR}" "${CMAKE_INSTALL_PREFIX}" +qt_internal_library_deprecation_level(deprecation_define) + +target_compile_definitions(QtLibraryInfo PUBLIC + PROEVALUATOR_FULL + QT_BUILD_QMAKE + QT_USE_QSTRINGBUILDER + QT_HOST_MKSPEC="${QT_QMAKE_HOST_MKSPEC}" + QT_TARGET_MKSPEC="${QT_QMAKE_TARGET_MKSPEC}" + QT_HOST_DATADIR="${hostdatadir}" + ${deprecation_define} ) +qt_internal_set_exceptions_flags(QtLibraryInfo OFF) + +if(NOT QT_FEATURE_qmake) + return() +endif() + qt_get_tool_target_name(target_name qmake) qt_internal_add_tool(${target_name} - TOOLS_TARGET Core # special case + TRY_RUN + TOOLS_TARGET Core USER_FACING + INSTALL_VERSIONED_LINK SOURCES cachekeys.h generators/mac/pbuilder_pbx.cpp generators/mac/pbuilder_pbx.h @@ -51,44 +77,37 @@ qt_internal_add_tool(${target_name} generators/win32/winmakefile.cpp generators/win32/winmakefile.h generators/xmloutput.cpp generators/xmloutput.h library/ioutils.cpp library/ioutils.h - library/proitems.cpp library/proitems.h - library/qmake_global.h library/qmakebuiltins.cpp library/qmakeevaluator.cpp library/qmakeevaluator.h library/qmakeevaluator_p.h library/qmakeglobals.cpp library/qmakeglobals.h library/qmakeparser.cpp library/qmakeparser.h library/qmakevfs.cpp library/qmakevfs.h - qmakelibraryinfo.cpp qmakelibraryinfo.h main.cpp meta.cpp meta.h option.cpp option.h project.cpp project.h - property.cpp property.h DEFINES HAVE_CONFIG_H - PROEVALUATOR_FULL - QT_BUILD_QMAKE - QT_USE_QSTRINGBUILDER - QT_NO_FOREACH - QT_VERSION_STR="${PROJECT_VERSION}" # special case - QT_VERSION_MAJOR=${PROJECT_VERSION_MAJOR} # special case - QT_VERSION_MINOR=${PROJECT_VERSION_MINOR} # special case - QT_VERSION_PATCH=${PROJECT_VERSION_PATCH} # special case - QT_CONFIGURE_RELATIVE_PREFIX_PATH="${QT_CONFIGURE_RELATIVE_PREFIX_PATH}" INCLUDE_DIRECTORIES generators generators/mac generators/unix generators/win32 library - "${CMAKE_CURRENT_BINARY_DIR}/library" # for qmakeconfig.cpp PRECOMPILED_HEADER "qmake_pch.h" LIBRARIES - Qt::CorePrivate + QtLibraryInfo + NO_UNITY_BUILD_SOURCES + generators/win32/msvc_objectmodel.cpp # xml symbols clash with generators/win32/msbuild_objectmodel.cpp + library/qmakeparser.cpp # struct statics clashes with qmakeevaluator_p.h ) +qt_internal_return_unless_building_tools() -qt_generate_qconfig_cpp(../src/corelib/global/qconfig.cpp.in library/qmakeconfig.cpp) +# Add QMAKE_VERSION_STR only if qmake is part of the build. +target_compile_definitions(QtLibraryInfo PUBLIC + QMAKE_VERSION_STR="3.1" +) #### Keys ignored in scope 1:.:.:qmake.pro:<TRUE>: # _OPTION = "host_build" @@ -101,7 +120,6 @@ qt_internal_extend_target(${target_name} CONDITION MACOS "-fconstant-cfstrings" ) -# special case big qt_internal_extend_target(${target_name} CONDITION WIN32 SOURCES library/registry.cpp @@ -109,24 +127,15 @@ qt_internal_extend_target(${target_name} CONDITION WIN32 _SCL_SECURE_NO_WARNINGS ) -qt_internal_extend_target(${target_name} CONDITION CLANG AND WIN32 - COMPILE_OPTIONS - "-fms-compatibility-version=19.00.23506" - "-Wno-microsoft-enum-value" -) - -# special case: set_target_properties(${target_name} PROPERTIES AUTOMOC OFF AUTORCC OFF AUTOUIC OFF ) -qt_internal_apply_gc_binaries(${target_name} PRIVATE) # special case -qt_skip_warnings_are_errors(${target_name}) # special case +qt_internal_apply_gc_binaries(${target_name} PRIVATE) +qt_skip_warnings_are_errors(${target_name}) -# special case begin qt_internal_add_docs(${target_name} doc/qmake.qdocconf ) -# special case end |