CMakeLists.txt 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. cmake_minimum_required(VERSION 3.9)
  2. project(mandelvid VERSION 1.0.0 DESCRIPTION "mandel video generator")
  3. set(ARCH "X86_64" CACHE STRING "Target Architecture")
  4. find_package(PkgConfig)
  5. pkg_check_modules(LIBAVCODEC REQUIRED libavcodec)
  6. pkg_check_modules(LIBAVUTIL REQUIRED libavutil)
  7. pkg_check_modules(LIBAVFORMAT REQUIRED libavformat)
  8. pkg_check_modules(LIBSWSCALE REQUIRED libswscale)
  9. add_subdirectory(../libmandel ./libmandel)
  10. find_package(OpenCL)
  11. find_package(OpenMP)
  12. #set(Boost_DEBUG 1)
  13. set(Boost_USE_STATIC_LIBS ON)
  14. find_package(Boost 1.53)
  15. set(CMAKE_CXX_STANDARD 17)
  16. FILE(GLOB mvidsources src/*.cpp)
  17. FILE(GLOB mvidheaders include/*.h)
  18. add_executable(mvg ${mvidsources})
  19. target_include_directories(mvg PUBLIC "include")
  20. target_include_directories(mvg PUBLIC ${LIBAVCODEC_INCLUDE_DIRS})
  21. target_include_directories(mvg PUBLIC ${LIBAVUTIL_INCLUDE_DIRS})
  22. target_include_directories(mvg PUBLIC ${LIBAVFORMAT_INCLUDE_DIRS})
  23. target_include_directories(mvg PUBLIC ${LIBSWSCALE_INCLUDE_DIRS})
  24. target_link_libraries(mvg PUBLIC mandel)
  25. target_link_libraries(mvg PUBLIC qd)
  26. target_link_libraries(mvg PUBLIC ${LIBAVCODEC_LIBRARIES})
  27. target_link_libraries(mvg PUBLIC ${LIBAVUTIL_LIBRARIES})
  28. target_link_libraries(mvg PUBLIC ${LIBAVFORMAT_LIBRARIES})
  29. target_link_libraries(mvg PUBLIC ${LIBSWSCALE_LIBRARIES})
  30. include(CheckIPOSupported)
  31. check_ipo_supported(RESULT LTO_SUPPORTED)
  32. if (LTO_SUPPORTED AND WITH_LTO)
  33. message("Enabling link-time optimization.")
  34. set_property(TARGET mvg PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
  35. endif()
  36. #if(OPENCL_FOUND)
  37. # target_compile_definitions(mvg PUBLIC WITH_OPENCL)
  38. # target_include_directories(mvg PUBLIC
  39. # "include"
  40. # ${OpenCL_INCLUDE_DIRS}
  41. # )
  42. # link_directories(${OpenCL_LIBRARY})
  43. #else(OPENCL_FOUND)
  44. # include_directories("include")
  45. #endif(OPENCL_FOUND)
  46. #
  47. #if (APPLE AND OpenCL_FOUND)
  48. # SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -framework OpenCL")
  49. #endif()
  50. #
  51. # target_compile_definitions(mandel PUBLIC WITH_BOOST)
  52. #if(Boost_FOUND)
  53. # target_compile_definitions(mandel PUBLIC WITH_BOOST)
  54. # target_include_directories(mandel PRIVATE ${Boost_INCLUDE_DIRS})
  55. # target_link_libraries(mandel PRIVATE ${Boost_LIBRARIES})
  56. #endif(Boost_FOUND)
  57. #
  58. #if(OpenMP_CXX_FOUND)
  59. # target_link_libraries(mandel PUBLIC OpenMP::OpenMP_CXX)
  60. #endif()
  61. #if(OpenCL_FOUND)
  62. # target_link_libraries(mandel PUBLIC OpenCL::OpenCL)
  63. #endif()