CMakeLists.txt 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. include(cmake/GitUtils.cmake)
  2. cmake_minimum_required(VERSION 3.24)
  3. set(CMAKE_PREFIX_PATH "C:/Qt/6.6.0/mingw_64")
  4. set(WINDEPLOYQT_EXE "${CMAKE_PREFIX_PATH}/bin/windeployqt6.exe")
  5. project(wincap11 VERSION 0.1)
  6. SetGitHash()
  7. configure_file(src/util/Version.h.in src/util/Version.h)
  8. set(CMAKE_CXX_STANDARD 17)
  9. set(CMAKE_AUTOMOC ON)
  10. set(CMAKE_AUTORCC ON)
  11. set(CMAKE_AUTOUIC ON)
  12. set(EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR}/bin")
  13. find_package(Qt6 REQUIRED COMPONENTS
  14. Core
  15. Gui
  16. Widgets
  17. )
  18. add_executable(wincap11 src/main.cpp src/ui/mainwindow.cpp src/ui/mainwindow.h src/ui/mainwindow.ui src/util/ScreenshotUtil.cpp src/util/ScreenshotUtil.h src/ui/qpictureview.cpp src/ui/qpictureview.h src/util/Version.h.in src/ui/stylesheet.h)
  19. target_include_directories(wincap11 PUBLIC "${PROJECT_BINARY_DIR}/src")
  20. qt_import_plugins(wincap11
  21. INCLUDE imageformats
  22. )
  23. target_link_libraries(wincap11
  24. Qt6::Core
  25. Qt6::Gui
  26. Qt6::Widgets
  27. )
  28. if (WIN32)
  29. set(DEBUG_SUFFIX)
  30. set(QT_INSTALL_PATH "${CMAKE_PREFIX_PATH}")
  31. # Release build
  32. if (CMAKE_BUILD_TYPE STREQUAL "Release")
  33. # Prevent opening a terminal window
  34. set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE true)
  35. endif ()
  36. # run windeployqt to copy all required .dll files
  37. execute_process(COMMAND ${WINDEPLOYQT_EXE} "${EXECUTABLE_OUTPUT_PATH}")
  38. if (MSVC AND CMAKE_BUILD_TYPE MATCHES "Debug")
  39. set(DEBUG_SUFFIX "d")
  40. endif ()
  41. if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
  42. set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
  43. if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
  44. set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
  45. endif ()
  46. endif ()
  47. if (EXISTS "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll")
  48. add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
  49. COMMAND ${CMAKE_COMMAND} -E make_directory
  50. "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
  51. add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
  52. COMMAND ${CMAKE_COMMAND} -E copy
  53. "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll"
  54. "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
  55. endif ()
  56. foreach (QT_LIB Core Gui Widgets)
  57. add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
  58. COMMAND ${CMAKE_COMMAND} -E copy
  59. "${QT_INSTALL_PATH}/bin/Qt6${QT_LIB}${DEBUG_SUFFIX}.dll"
  60. "$<TARGET_FILE_DIR:${PROJECT_NAME}>")
  61. endforeach (QT_LIB)
  62. endif ()