CMake: pro2cmake: Handle LIBS_SUFFIX define correctly
Matches the LIBS_SUFFIX define we use in Android conditions and replaces it with a sane amount of escaped characters. Change-Id: I7d870f992c70b105dd80b6fa94f87d3fa5644006 Reviewed-by: Leander Beernaert <leander.beernaert@qt.io> Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
This commit is contained in:
parent
14546d1816
commit
d2419b0d8c
@ -316,7 +316,7 @@ qt_extend_target(Core CONDITION ANDROID
|
|||||||
kernel/qsharedmemory_android.cpp
|
kernel/qsharedmemory_android.cpp
|
||||||
kernel/qsystemsemaphore_android.cpp
|
kernel/qsystemsemaphore_android.cpp
|
||||||
DEFINES
|
DEFINES
|
||||||
LIBS_SUFFIX='\\"_${CMAKE_SYSTEM_PROCESSOR}.so\\"'
|
LIBS_SUFFIX="_${CMAKE_SYSTEM_PROCESSOR}.so"
|
||||||
)
|
)
|
||||||
|
|
||||||
qt_extend_target(Core CONDITION MSVC AND (TEST_architecture_arch STREQUAL "i386")
|
qt_extend_target(Core CONDITION MSVC AND (TEST_architecture_arch STREQUAL "i386")
|
||||||
|
@ -427,7 +427,7 @@ qt_extend_target(Core CONDITION ANDROID
|
|||||||
kernel/qsharedmemory_android.cpp
|
kernel/qsharedmemory_android.cpp
|
||||||
kernel/qsystemsemaphore_android.cpp
|
kernel/qsystemsemaphore_android.cpp
|
||||||
DEFINES
|
DEFINES
|
||||||
LIBS_SUFFIX="\\\\"_${CMAKE_SYSTEM_PROCESSOR}.so\\\\"" # special case
|
LIBS_SUFFIX="_${CMAKE_SYSTEM_PROCESSOR}.so"
|
||||||
)
|
)
|
||||||
|
|
||||||
qt_extend_target(Core CONDITION MSVC AND (TEST_architecture_arch STREQUAL "i386")
|
qt_extend_target(Core CONDITION MSVC AND (TEST_architecture_arch STREQUAL "i386")
|
||||||
|
@ -1956,6 +1956,18 @@ def write_defines(
|
|||||||
d.replace('=\\\\\\"$$PWD/\\\\\\"', '="${CMAKE_CURRENT_SOURCE_DIR}/"') for d in defines
|
d.replace('=\\\\\\"$$PWD/\\\\\\"', '="${CMAKE_CURRENT_SOURCE_DIR}/"') for d in defines
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# Handle LIBS_SUFFIX='\\"_$${QT_ARCH}.so\\"'.
|
||||||
|
# The escaping of backslashes is still needed even if it's a raw
|
||||||
|
# string, because backslashes have a special meaning for regular
|
||||||
|
# expressions (escape next char). So we actually expect to match
|
||||||
|
# 2 backslashes in the input string.
|
||||||
|
pattern = r"""([^ ]+)='\\\\"([^ ]*)\\\\"'"""
|
||||||
|
|
||||||
|
# Replace with regular quotes, CMake will escape the quotes when
|
||||||
|
# passing the define to the compiler.
|
||||||
|
replacement = r'\1="\2"'
|
||||||
|
defines = [re.sub(pattern, replacement, d) for d in defines]
|
||||||
|
|
||||||
if "qml_debug" in scope.get("CONFIG"):
|
if "qml_debug" in scope.get("CONFIG"):
|
||||||
defines.append("QT_QML_DEBUG")
|
defines.append("QT_QML_DEBUG")
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user