cmake_minimum_required(VERSION 3.16)
project(MocOsMacros)
include("../AutogenCoreTest.cmake")

# Tests if moc processes Q_OS_XXX macros

message( "Qt${QT_TEST_VERSION}Core_VERSION: ${Qt${QT_TEST_VERSION}Core_VERSION}" )
message(
  "CMAKE_CXX_COMPILER_PREDEFINES_COMMAND: "
  ${CMAKE_CXX_COMPILER_PREDEFINES_COMMAND} )

# 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( ( ${Qt${QT_TEST_VERSION}Core_VERSION} VERSION_GREATER_EQUAL "5.8" ) AND
  DEFINED CMAKE_CXX_COMPILER_PREDEFINES_COMMAND
)
  message( "Test enabled!" )
  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()