CMakeLists.txt 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. cmake_minimum_required(VERSION 3.19)
  2. project(NerveSaver3000 LANGUAGES CXX)
  3. find_package(Qt6 6.5 REQUIRED COMPONENTS Core Widgets)
  4. qt_standard_project_setup()
  5. set(app_icon_resource_windows "${CMAKE_CURRENT_SOURCE_DIR}/resources/NerveSaver3000.rc")
  6. qt_add_executable(NerveSaver3000
  7. WIN32 MACOSX_BUNDLE
  8. main.cpp
  9. mainwindow.cpp
  10. mainwindow.h
  11. mainwindow.ui
  12. interval.h interval.cpp
  13. config.h
  14. ${app_icon_resource_windows}
  15. )
  16. target_link_libraries(NerveSaver3000
  17. PRIVATE
  18. Qt::Core
  19. Qt::Widgets
  20. )
  21. if(true)
  22. # 1. Nájdeme kde v systéme sa nachádza nástroj windeployqt
  23. find_program(WINDEPLOYQT_EXECUTABLE windeployqt HINTS "${Qt6_DIR}/../../../bin")
  24. if(WINDEPLOYQT_EXECUTABLE)
  25. # 2. Povieme CMake, aby po skompilovaní spustil tento nástroj
  26. add_custom_command(TARGET NerveSaver3000 POST_BUILD
  27. COMMAND ${WINDEPLOYQT_EXECUTABLE}
  28. --verbose 1
  29. --compiler-runtime # Pridá aj DLL kompilátora (msvcp140.dll atď.)
  30. --dir "${CMAKE_CURRENT_BINARY_DIR}" # Kam to má sypať (k tvojmu .exe)
  31. "$<TARGET_FILE:NerveSaver3000>"
  32. COMMENT "Spúšťam automatický windeployqt pre zozbieranie všetkých DLL súborov..."
  33. )
  34. endif()
  35. endif()
  36. include(GNUInstallDirs)
  37. qt_generate_deploy_app_script(
  38. TARGET NerveSaver3000
  39. OUTPUT_SCRIPT deploy_script
  40. NO_UNSUPPORTED_PLATFORM_ERROR
  41. )
  42. install(SCRIPT ${deploy_script})