1
0

CMakeLists.txt 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. cmake_minimum_required(VERSION 3.13)
  2. project(Almond VERSION 1.0.0 DESCRIPTION "Fractal Viewer")
  3. set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules)
  4. #set(CMAKE_AUTOMOC ON)
  5. #set(CMAKE_AUTORCC ON)
  6. #set(CMAKE_AUTOUIC ON)
  7. find_package(Qt5 COMPONENTS Core Widgets OpenGL Xml Concurrent REQUIRED)
  8. find_package(OpenMP)
  9. set(Boost_USE_STATIC_LIBS ON)
  10. find_package(Boost 1.65 REQUIRED)
  11. find_package(FFmpeg COMPONENTS AVCODEC AVDEVICE AVFORMAT AVUTIL SWSCALE REQUIRED)
  12. #message(${FFMPEG_INCLUDE_DIRS})
  13. set(CMAKE_CXX_STANDARD 17)
  14. FILE(GLOB AlmondSources *.cpp)
  15. FILE(GLOB AlmondHeaders *.h)
  16. IF (WIN32)
  17. add_executable(Almond WIN32 ${AlmondSources} Almond.qrc splash.qrc icon.rc)
  18. ELSE()
  19. add_executable(Almond ${AlmondSources} Almond.qrc splash.qrc)
  20. ENDIF()
  21. add_subdirectory(libalmond)
  22. target_include_directories(Almond SYSTEM PUBLIC ${FFMPEG_INCLUDE_DIRS})
  23. target_link_libraries(Almond PUBLIC libalmond)
  24. target_link_libraries(Almond PUBLIC Qt5::Core Qt5::Widgets Qt5::OpenGL Qt5::Xml Qt5::Concurrent)
  25. target_link_libraries(Almond PUBLIC ${FFMPEG_LIBRARIES})
  26. set_property(TARGET Almond PROPERTY AUTOMOC ON)
  27. set_property(TARGET Almond PROPERTY AUTORCC ON)
  28. set_property(TARGET Almond PROPERTY AUTOUIC ON)
  29. if(Boost_FOUND)
  30. target_compile_definitions(Almond PUBLIC WITH_BOOST)
  31. target_include_directories(Almond SYSTEM PUBLIC ${Boost_INCLUDE_DIRS})
  32. #target_link_libraries(Almond PRIVATE ${Boost_LIBRARIES})
  33. endif(Boost_FOUND)
  34. if(OpenMP_CXX_FOUND)
  35. target_link_libraries(Almond PUBLIC OpenMP::OpenMP_CXX)
  36. target_compile_options(Almond PUBLIC ${OpenMP_CXX_FLAGS})
  37. endif()
  38. set(CPACK_PACKAGE_NAME "Almond")
  39. set(CPACK_PACKAGE_VERSION "1.0.0")
  40. IF (WIN32)
  41. set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "MyPackage Installation Example")
  42. include(CPack)
  43. include(CPackIFW)
  44. cpack_add_component(Almond
  45. DISPLAY_NAME "Almond"
  46. DESCRIPTION "Almond Application")
  47. cpack_ifw_configure_component(Almond)
  48. ELSEIF (UNIX AND NOT APPLE)
  49. install(TARGETS Almond RUNTIME DESTINATION "bin")
  50. install(FILES Almond.desktop DESTINATION "share/applications")
  51. install(FILES Almond.png DESTINATION "share/pixmaps")
  52. install(FILES debian/copyright DESTINATION "share/doc/almond/" RENAME "copyright")
  53. set(CPACK_GENERATOR "DEB")
  54. set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE)
  55. set(CPACK_STRIP_FILES TRUE)
  56. set(CPACK_SOURCE_GENERATOR "DEB")
  57. set(CPACK_COMPONENTS_ALL Almond)
  58. set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "A fractal viewer")
  59. set(CPACK_DEBIAN_PACKAGE_ARCHITECTURE amd64)
  60. set(CPACK_DEBIAN_PACKAGE_MAINTAINER "Nicolas Winkler <nicolas.winkler@gmx.ch>")
  61. set(CPACK_DEBIAN_PACKAGE_DEPENDS "qtbase5-dev,libavformat58,libavdevice58,libavfilter7,libavutil56,libswscale5,libgl1,ocl-icd-libopencl1,libpng16-16,libc6")
  62. set(CPACK_SET_DESTDIR True)
  63. set(CPACK_INSTALL_PREFIX "/usr")
  64. include(CPack)
  65. ENDIF()