summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
authorAlexey Edelev <alexey.edelev@qt.io>2021-03-09 16:15:26 +0100
committerAlexey Edelev <alexey.edelev@qt.io>2021-03-11 15:46:34 +0100
commitfd3c417af9ea9336057f6d15127d1c51258beaa9 (patch)
tree779c7ada8de8958760dfd725db7e06aa0436daba /qmake
parent3d71f1733da5ffed58850d9d4c8697c7a8e549fa (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 <alexandru.croitor@qt.io>
Diffstat (limited to 'qmake')
-rw-r--r--qmake/CMakeLists.txt50
-rw-r--r--qmake/option.h2
-rw-r--r--qmake/property.cpp2
3 files changed, 38 insertions, 16 deletions
diff --git a/qmake/CMakeLists.txt b/qmake/CMakeLists.txt
index c068a8db2d..0a49c9db79 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 d7f4e87c70..a6ad9fe250 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 2487ecb5a9..0ef9813eee 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