| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- cmake_minimum_required(VERSION 2.8)
- project(Qt4Targets)
- cmake_policy(SET CMP0020 NEW)
- find_package(Qt4 REQUIRED)
- set(CMAKE_AUTOMOC ON)
- set(CMAKE_INCLUDE_CURRENT_DIR ON)
- add_executable(Qt4Targets WIN32 main.cpp)
- target_link_libraries(Qt4Targets Qt4::QtGui)
- if (WIN32)
- if (TARGET Qt4::QAxServer)
- add_executable(activeqtexe WIN32 activeqtexe.cpp)
- set_property(TARGET activeqtexe PROPERTY QT4_NO_LINK_QTMAIN ON)
- target_link_libraries(activeqtexe Qt4::QAxServer Qt4::QtGui)
- endif()
- endif()
- qt4_generate_moc(main_gen_test.cpp
- "${CMAKE_CURRENT_BINARY_DIR}/main_gen_test.moc"
- TARGET Qt4GenerateMacroTest
- )
- add_executable(Qt4GenerateMacroTest WIN32 main_gen_test.cpp "${CMAKE_CURRENT_BINARY_DIR}/main_gen_test.moc")
- set_property(TARGET Qt4GenerateMacroTest PROPERTY AUTOMOC OFF)
- target_include_directories(Qt4GenerateMacroTest PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/interface")
- target_link_libraries(Qt4GenerateMacroTest Qt4::QtGui)
- qt4_wrap_cpp(moc_file mywrapobject.h
- TARGET Qt4WrapMacroTest
- )
- add_executable(Qt4WrapMacroTest WIN32 main_wrap_test.cpp ${moc_file})
- set_property(TARGET Qt4WrapMacroTest PROPERTY AUTOMOC OFF)
- target_include_directories(Qt4WrapMacroTest PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/interface")
- target_link_libraries(Qt4WrapMacroTest Qt4::QtGui)
- macro(test_incremental def)
- set(timeformat "%Y%j%H%M%S")
- try_compile(RESULT
- "${CMAKE_CURRENT_BINARY_DIR}/IncrementalMocBuild_${def}"
- "${CMAKE_CURRENT_SOURCE_DIR}/IncrementalMoc"
- IncrementalMoc
- CMAKE_FLAGS -D${def}=0 "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}"
- OUTPUT_VARIABLE output
- )
- file(TIMESTAMP "${CMAKE_CURRENT_BINARY_DIR}/IncrementalMocBuild_${def}/moc_foo.cpp" tsvar_before "${timeformat}")
- if (NOT tsvar_before)
- message(SEND_ERROR
- "Unable to read timestamp from moc file from first build with -D${def}!\n"
- "try_compile output:\n${output}"
- )
- endif()
- execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 2) # Ensure that the timestamp will change.
- try_compile(RESULT
- "${CMAKE_CURRENT_BINARY_DIR}/IncrementalMocBuild_${def}"
- "${CMAKE_CURRENT_SOURCE_DIR}/IncrementalMoc"
- IncrementalMoc
- CMAKE_FLAGS -D${def}=1 "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}"
- OUTPUT_VARIABLE output
- )
- file(TIMESTAMP "${CMAKE_CURRENT_BINARY_DIR}/IncrementalMocBuild_${def}/moc_foo.cpp" tsvar_after "${timeformat}")
- if (NOT tsvar_after)
- message(SEND_ERROR
- "Unable to read timestamp from moc file from second build!\n"
- "try_compile output:\n${output}"
- )
- endif()
- if (NOT tsvar_after GREATER tsvar_before)
- message(SEND_ERROR "Rebuild did not re-create moc file with -D${def}. Before: ${tsvar_before}. After: ${tsvar_after}")
- endif()
- endmacro()
- test_incremental(ADD_TARGET_DEF)
- test_incremental(ADD_DIR_DEF)
|