1
0

CMakeLists.txt 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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(PNG)
  12. find_package (JPEG)
  13. set(CMAKE_CXX_STANDARD 17)
  14. FILE(GLOB libalmondsources src/*.cpp)
  15. FILE(GLOB libalmondheaders include/*.h)
  16. add_library(libalmond STATIC ${libalmondsources})
  17. target_include_directories(libalmond PUBLIC "include")
  18. target_link_libraries(libalmond PUBLIC mandel)
  19. set_target_properties(libalmond PROPERTIES OUTPUT_NAME almond)
  20. target_include_directories(libalmond SYSTEM PUBLIC ${FFMPEG_INCLUDE_DIRS})
  21. target_link_libraries(libalmond PUBLIC ${FFMPEG_LIBRARIES})
  22. if (PNG_FOUND AND LIBALMOND_LIBPNG)
  23. target_link_libraries(libalmond PUBLIC PNG::PNG)
  24. target_compile_definitions(libalmond PUBLIC WITH_LIBPNG)
  25. elseif(LIBALMOND_LIBPNG)
  26. set(PNG_BUILD_ZLIB ON CACHE BOOL "build zlib ourselves")
  27. add_subdirectory(zlib-1.2.11)
  28. set(ZLIB_LIBRARY zlibstatic)
  29. foreach(header ${ZLIB_PUBLIC_HDRS})
  30. get_filename_component(the_incluude ${header} DIRECTORY)
  31. list(APPEND ZLIB_PUB_INCLUDE ${the_incluude})
  32. endforeach()
  33. set(ZLIB_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/zlib-1.2.11 ${ZLIB_PUB_INCLUDE} )
  34. set(SKIP_INSTALL_ALL ON)
  35. add_subdirectory(lpng1637)
  36. foreach(header ${libpng_public_hdrs})
  37. get_filename_component(the_incluude ${header} DIRECTORY)
  38. list(APPEND PNG_PUB_INCLUDE ${the_incluude})
  39. endforeach()
  40. #target_link_libraries(png_static PRIVATE zlibstatic)
  41. target_include_directories(libalmond PRIVATE ${PNG_PUB_INCLUDE})
  42. target_include_directories(libalmond PRIVATE ${ZLIB_INCLUDE_DIR})
  43. target_link_libraries(libalmond PRIVATE png_static)
  44. target_compile_definitions(libalmond PUBLIC WITH_LIBPNG)
  45. endif()
  46. if (JPEG_FOUND AND LIBALMOND_LIBJPEG)
  47. target_link_libraries(libalmond PUBLIC JPEG::JPEG)
  48. target_compile_definitions(libalmond PUBLIC WITH_LIBJPEG)
  49. endif()