cmake_minimum_required(VERSION 3.9) cmake_policy(SET CMP0071 NEW) project(QtAutogen) if (QT_TEST_VERSION STREQUAL 4) find_package(Qt4 REQUIRED) # Include this directory before using the UseQt4 file. add_subdirectory(defines_test) include(UseQt4) set(QT_QTCORE_TARGET Qt4::QtCore) macro(qtx_wrap_cpp) qt4_wrap_cpp(${ARGN}) endmacro() macro(qtx_generate_moc) qt4_generate_moc(${ARGN}) endmacro() else() if (NOT QT_TEST_VERSION STREQUAL 5) message(SEND_ERROR "Invalid Qt version specified.") endif() find_package(Qt5Widgets REQUIRED) set(QT_QTCORE_TARGET Qt5::Core) include_directories(${Qt5Widgets_INCLUDE_DIRS}) set(QT_LIBRARIES Qt5::Widgets) if(Qt5_POSITION_INDEPENDENT_CODE AND CMAKE_CXX_COMPILE_OPTIONS_PIC) add_definitions(${CMAKE_CXX_COMPILE_OPTIONS_PIC}) endif() macro(qtx_wrap_cpp) qt5_wrap_cpp(${ARGN}) endmacro() macro(qtx_generate_moc) qt5_generate_moc(${ARGN}) endmacro() endif() get_property(QT_COMPILE_FEATURES TARGET ${QT_QTCORE_TARGET} PROPERTY INTERFACE_COMPILE_FEATURES) # Qt4 moc does not support utf8 paths in _parameter files generated by # qtx_wrap_cpp # https://bugreports.qt.io/browse/QTBUG-35480 # Do a simple check if there is are non ASCII character in the build path string(REGEX MATCH "[^ -~]+" NON_ASCII_BDIR ${CMAKE_CURRENT_BINARY_DIR}) if((NOT NON_ASCII_BDIR) OR (NOT QT_TEST_VERSION STREQUAL 4)) set(ALLOW_WRAP_CPP TRUE) endif() # On windows qtx_wrap_cpp also fails in Qt5 when used on a path that # contains non ASCII characters if(NON_ASCII_BDIR AND WIN32) set(ALLOW_WRAP_CPP FALSE) endif() # -- Test # Tests static library cycles add_subdirectory(staticLibraryCycle) # -- Test # Complex test case add_subdirectory(complex)