CMakeLists.txt 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. cmake_minimum_required(VERSION 3.13)
  2. project(libalmond VERSION 1.0.0 DESCRIPTION "almond functionality")
  3. option(LIBALMOND_LIBJPEG "use libjpeg to export jpeg images" ON)
  4. option(LIBALMOND_LIBPNG "use libpng to export png images" ON)
  5. set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/../CMakeModules)
  6. find_package(FFmpeg COMPONENTS AVCODEC AVDEVICE AVFORMAT AVUTIL SWSCALE REQUIRED)
  7. add_subdirectory(../libmandel ./libmandel)
  8. #set(Boost_DEBUG 1)
  9. set(Boost_USE_STATIC_LIBS ON)
  10. find_package(Boost 1.65 REQUIRED)
  11. find_package(OpenMP)
  12. find_package(PNG)
  13. find_package (JPEG)
  14. set(CMAKE_CXX_STANDARD 17)
  15. FILE(GLOB libalmondsources src/*.cpp)
  16. FILE(GLOB libalmondheaders include/*.h)
  17. list(APPEND libalmondsources tinyxml2/tinyxml2.cpp)
  18. list(APPEND libalmondheaders tinyxml2/tinyxml2.h)
  19. add_library(libalmond STATIC ${libalmondsources})
  20. target_include_directories(libalmond PUBLIC "include" "tinyxml2")
  21. target_link_libraries(libalmond PUBLIC mandel)
  22. set_target_properties(libalmond PROPERTIES OUTPUT_NAME almond)
  23. target_include_directories(libalmond SYSTEM PUBLIC ${FFMPEG_INCLUDE_DIRS})
  24. target_link_libraries(libalmond PUBLIC ${FFMPEG_LIBRARIES})
  25. if (PNG_FOUND AND LIBALMOND_LIBPNG)
  26. target_link_libraries(libalmond PUBLIC PNG::PNG)
  27. target_compile_definitions(libalmond PUBLIC WITH_LIBPNG)
  28. endif()
  29. if (JPEG_FOUND AND LIBALMOND_LIBJPEG)
  30. target_link_libraries(libalmond PUBLIC JPEG::JPEG)
  31. target_compile_definitions(libalmond PUBLIC WITH_LIBJPEG)
  32. endif()
  33. if(OpenMP_CXX_FOUND)
  34. target_link_libraries(libalmond PUBLIC OpenMP::OpenMP_CXX)
  35. endif()