Autogen: Check if we can run the MocOsMacros test
The MocOsMacros test requires moc to support moc_predefs.h on some platforms (e.g. Mac). moc supports moc_predefs.h inclusion since Qt 5.8, therefore run the MocOsMacros only if Qt >= 5.8 and if CMAKE_CXX_COMPILER_PREDEFINES_COMMAND is defined. Fixes #18245
This commit is contained in:
parent
d7a52f8c24
commit
e7fb85d00d
@ -24,7 +24,7 @@ if(QT_TEST_ALLOW_QT_MACROS)
|
||||
ADD_AUTOGEN_TEST(MocCMP0071)
|
||||
endif()
|
||||
if(NOT QT_TEST_VERSION STREQUAL 4)
|
||||
ADD_AUTOGEN_TEST(MocOsMacros mocOsMacros)
|
||||
ADD_AUTOGEN_TEST(MocOsMacros)
|
||||
endif()
|
||||
ADD_AUTOGEN_TEST(UicInclude uicInclude)
|
||||
ADD_AUTOGEN_TEST(UicInterface QtAutoUicInterface)
|
||||
|
@ -2,15 +2,31 @@ cmake_minimum_required(VERSION 3.11)
|
||||
project(MocOsMacros)
|
||||
include("../AutogenTest.cmake")
|
||||
|
||||
# Tests if moc processes the macro Q_OS_MAC
|
||||
# Tests if moc processes Q_OS_XXX macros
|
||||
|
||||
set(CMAKE_AUTOMOC True)
|
||||
message( "Qt5Core_VERSION: ${Qt5Core_VERSION}" )
|
||||
message(
|
||||
"CMAKE_CXX_COMPILER_PREDEFINES_COMMAND: "
|
||||
${CMAKE_CXX_COMPILER_PREDEFINES_COMMAND} )
|
||||
|
||||
add_executable(mocOsMacros
|
||||
main.cpp
|
||||
TestClass.cpp
|
||||
TestClass.hpp
|
||||
# On some platforms (e.g. MAC) Q_OS_XXX requires moc to include moc_predefs.h
|
||||
# which is supported since Qt 5.8 and requires
|
||||
# CMAKE_CXX_COMPILER_PREDEFINES_COMMAND to be defined.
|
||||
if( ( ${Qt5Core_VERSION} VERSION_GREATER_EQUAL "5.8" ) AND
|
||||
DEFINED CMAKE_CXX_COMPILER_PREDEFINES_COMMAND
|
||||
)
|
||||
target_link_libraries(mocOsMacros PRIVATE ${QT_QTCORE_TARGET})
|
||||
message( "Test enabled!" )
|
||||
message(
|
||||
"CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES: "
|
||||
${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES} )
|
||||
|
||||
message ( "CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES: ${CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES}" )
|
||||
set(CMAKE_AUTOMOC True)
|
||||
add_executable(mocOsMacros
|
||||
main.cpp
|
||||
TestClass.cpp
|
||||
TestClass.hpp
|
||||
)
|
||||
target_link_libraries(mocOsMacros PRIVATE ${QT_QTCORE_TARGET})
|
||||
else()
|
||||
message( "Test disabled!" )
|
||||
endif()
|
||||
|
Loading…
Reference in New Issue
Block a user