--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,14 +35,10 @@ if(NOT MSVC) endif () endif() -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_CXX_EXTENSIONS OFF) set(CMAKE_CXX_VISIBILITY_PRESET hidden) set(CMAKE_VISIBILITY_INLINES_HIDDEN 1) -set(CMAKE_POSITION_INDEPENDENT_CODE ON) # Create the compile command database for clang by default set(CMAKE_EXPORT_COMPILE_COMMANDS ON) @@ -59,17 +55,17 @@ LIST (APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake/modules") option(WITH_LIBDE265 "Build libde265 decoder" ON) if (WITH_LIBDE265) - find_package(Libde265) + find_package(libde265 REQUIRED CONFIG) endif () option(WITH_X265 "Build x265 encoder" ON) if (WITH_X265) - find_package(X265) + find_package(libx265 REQUIRED CONFIG) endif () option(WITH_AOM "Build aom encoder/decoder" ON) if (WITH_AOM) - find_package(LibAOM) + find_package(libaom-av1 REQUIRED CONFIG) endif() option(WITH_RAV1E "Build rav1e encoder" ON) @@ -79,9 +75,10 @@ endif () option(WITH_DAV1D "Build dav1d decoder" ON) if (WITH_DAV1D) - find_package(Dav1d) + find_package(dav1d REQUIRED CONFIG) endif () +if(0) if (LIBDE265_FOUND) message("HEIF decoder, libde265: found") else () @@ -117,6 +114,7 @@ if (DAV1D_FOUND) else () message("AVIF decoder, dav1d: not found") endif () +endif() # Create libheif pkgconfig file @@ -169,5 +167,3 @@ if(WITH_EXAMPLES) add_subdirectory (examples) endif() add_subdirectory (libheif) -add_subdirectory (gdk-pixbuf) -add_subdirectory (gnome) --- a/libheif/CMakeLists.txt +++ b/libheif/CMakeLists.txt @@ -60,59 +60,44 @@ target_compile_definitions(heif LIBHEIF_EXPORTS HAVE_VISIBILITY) -if(LIBDE265_FOUND) +target_compile_features(heif PRIVATE cxx_std_11) +if(WITH_LIBDE265) target_compile_definitions(heif PRIVATE HAVE_LIBDE265=1) target_sources(heif PRIVATE heif_decoder_libde265.cc heif_decoder_libde265.h) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${LIBDE265_CFLAGS}") - if (NOT "${LIBDE265_LIBRARY_DIRS}" STREQUAL "") - set(LIBDE265_LINKDIR "-L${LIBDE265_LIBRARY_DIRS}") - endif() - include_directories(SYSTEM ${LIBDE265_INCLUDE_DIR}) - target_link_libraries(heif PRIVATE ${LIBDE265_LIBRARIES} ${LIBDE265_LINKDIR}) + target_link_libraries(heif PRIVATE libde265) endif() -if(X265_FOUND) +if(WITH_X265) target_compile_definitions(heif PRIVATE HAVE_X265=1) target_sources(heif PRIVATE heif_encoder_x265.cc heif_encoder_x265.h ) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${X265_CFLAGS}") - if (NOT "${X265_LIBRARY_DIRS}" STREQUAL "") - set(X265_LINKDIR "-L${X265_LIBRARY_DIRS}") - endif() - include_directories(SYSTEM ${X265_INCLUDE_DIR}) - target_link_libraries(heif PRIVATE ${X265_LIBRARIES} ${X265_LINKDIR}) + target_link_libraries(heif PRIVATE libx265::libx265) endif() -if(AOM_ENCODER_FOUND OR AOM_DECODER_FOUND) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${AOM_CFLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${AOM_CFLAGS}") +if(WITH_AOM) - if (NOT "${AOM_LIBRARY_DIRS}" STREQUAL "") - set(AOM_LINKDIR "-L${AOM_LIBRARY_DIRS}") - endif() - include_directories(SYSTEM ${AOM_INCLUDE_DIR}) - target_link_libraries(heif PRIVATE ${AOM_LIBRARIES} ${AOM_LINKDIR}) + target_link_libraries(heif PRIVATE libaom-av1::libaom-av1) endif() -if(AOM_ENCODER_FOUND) +if(WITH_AOM) target_compile_definitions(heif PRIVATE HAVE_AOM_ENCODER=1) target_sources(heif PRIVATE heif_encoder_aom.cc heif_encoder_aom.h ) endif() -if(AOM_DECODER_FOUND) +if(WITH_AOM) target_compile_definitions(heif PRIVATE HAVE_AOM_DECODER=1) target_sources(heif PRIVATE heif_decoder_aom.cc @@ -137,21 +122,15 @@ if(RAV1E_FOUND) target_link_libraries(heif PRIVATE ${RAV1E_LIBRARIES} ${RAV1E_LINKDIR}) endif() -if(DAV1D_FOUND) +if(WITH_DAV1D) target_compile_definitions(heif PRIVATE HAVE_DAV1D=1) target_sources(heif PRIVATE heif_decoder_dav1d.cc heif_decoder_dav1d.h ) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${DAV1D_CFLAGS}") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${DAV1D_CFLAGS}") - if (NOT "${DAV1D_LIBRARY_DIRS}" STREQUAL "") - set(DAV1D_LINKDIR "-L${DAV1D_LIBRARY_DIRS}") - endif() - include_directories(SYSTEM ${DAV1D_INCLUDE_DIR}) - target_link_libraries(heif PRIVATE ${DAV1D_LIBRARIES} ${DAV1D_LINKDIR}) + target_link_libraries(heif PRIVATE dav1d::dav1d) endif () write_basic_package_version_file(${PROJECT_NAME}-config-version.cmake COMPATIBILITY ExactVersion)