diff options
author | Alexey Edelev <[email protected]> | 2021-03-09 16:15:26 +0100 |
---|---|---|
committer | Alexey Edelev <[email protected]> | 2021-03-11 15:46:34 +0100 |
commit | fd3c417af9ea9336057f6d15127d1c51258beaa9 (patch) | |
tree | 779c7ada8de8958760dfd725db7e06aa0436daba | |
parent | 3d71f1733da5ffed58850d9d4c8697c7a8e549fa (diff) |
Move the common qmake sources into a object library
Some qmake sources could be reused by other tools. It makes sense to
move such sources to the object library, to avoid additional compilation
steps and to simplify the reuse of sources.
Change-Id: I9d7bb7624019149d34d29e4b269b4f26b8aec7a4
Reviewed-by: Alexandru Croitor <[email protected]>
-rw-r--r-- | qmake/CMakeLists.txt | 50 | ||||
-rw-r--r-- | qmake/option.h | 2 | ||||
-rw-r--r-- | qmake/property.cpp | 2 |
3 files changed, 38 insertions, 16 deletions
diff --git a/qmake/CMakeLists.txt b/qmake/CMakeLists.txt index c068a8db2de..0a49c9db793 100644 --- a/qmake/CMakeLists.txt +++ b/qmake/CMakeLists.txt @@ -4,6 +4,36 @@ ## qmake Tool: ##################################################################### +# The common object library, that should be available regardless of the presence of qmake. +add_library(QtLibraryInfo OBJECT + library/proitems.cpp library/proitems.h + library/qmake_global.h + property.cpp property.h + qmakelibraryinfo.cpp qmakelibraryinfo.h +) +set_target_properties(QtLibraryInfo PROPERTIES + COMPILE_OPTIONS $<TARGET_PROPERTY:Qt::Core,INTERFACE_COMPILE_OPTIONS> + COMPILE_DEFINITIONS $<TARGET_PROPERTY:Qt::Core,INTERFACE_COMPILE_DEFINITIONS> + INCLUDE_DIRECTORIES $<TARGET_PROPERTY:Qt::Core,INTERFACE_INCLUDE_DIRECTORIES> + INCLUDE_DIRECTORIES $<TARGET_PROPERTY:Qt::CorePrivate,INTERFACE_INCLUDE_DIRECTORIES> +) +target_include_directories(QtLibraryInfo PUBLIC + "${CMAKE_CURRENT_SOURCE_DIR}" + "${CMAKE_CURRENT_SOURCE_DIR}/library" +) +target_compile_definitions(QtLibraryInfo PUBLIC + 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_HOST_MKSPEC="${QT_QMAKE_HOST_MKSPEC}" + QT_TARGET_MKSPEC="${QT_QMAKE_TARGET_MKSPEC}" +) + # qmake is out of any module, so we manually evaluate the required features. include("${CMAKE_CURRENT_SOURCE_DIR}/configure.cmake") qt_feature_evaluate_features("${CMAKE_CURRENT_SOURCE_DIR}/configure.cmake") @@ -34,31 +64,17 @@ 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_HOST_MKSPEC="${QT_QMAKE_HOST_MKSPEC}" - QT_TARGET_MKSPEC="${QT_QMAKE_TARGET_MKSPEC}" INCLUDE_DIRECTORIES generators generators/mac @@ -69,6 +85,12 @@ qt_internal_add_tool(${target_name} "qmake_pch.h" LIBRARIES Qt::CorePrivate + QtLibraryInfo +) + +# 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>: diff --git a/qmake/option.h b/qmake/option.h index d7f4e87c701..a6ad9fe2506 100644 --- a/qmake/option.h +++ b/qmake/option.h @@ -40,8 +40,6 @@ QT_BEGIN_NAMESPACE -#define QMAKE_VERSION_STR "3.1" - QString qmake_getpwd(); bool qmake_setpwd(const QString &p); diff --git a/qmake/property.cpp b/qmake/property.cpp index 2487ecb5a9d..0ef9813eeeb 100644 --- a/qmake/property.cpp +++ b/qmake/property.cpp @@ -93,7 +93,9 @@ void QMakeProperty::reload() } m_values[ProKey(name)] = val; } +#ifdef QMAKE_VERSION_STR m_values["QMAKE_VERSION"] = ProString(QMAKE_VERSION_STR); +#endif #ifdef QT_VERSION_STR m_values["QT_VERSION"] = ProString(QT_VERSION_STR); #endif |