From a587eafbf4aa75b7faa6b55894921e2adc5260f4 Mon Sep 17 00:00:00 2001 From: Andrew Kaster Date: Mon, 24 Jun 2024 13:08:41 -0600 Subject: [PATCH] CMake: Consistently use imported targets for third party dependencies --- Ladybird/WebContent/CMakeLists.txt | 8 ++++---- Meta/CMake/woff2.cmake | 11 ----------- Userland/Libraries/LibGfx/CMakeLists.txt | 20 ++++++-------------- Userland/Libraries/LibMedia/CMakeLists.txt | 5 ++--- Userland/Libraries/LibUnicode/CMakeLists.txt | 3 +-- Userland/Libraries/LibWebView/CMakeLists.txt | 4 ++-- 6 files changed, 15 insertions(+), 36 deletions(-) delete mode 100644 Meta/CMake/woff2.cmake diff --git a/Ladybird/WebContent/CMakeLists.txt b/Ladybird/WebContent/CMakeLists.txt index a2606f7148b..40d179e8de9 100644 --- a/Ladybird/WebContent/CMakeLists.txt +++ b/Ladybird/WebContent/CMakeLists.txt @@ -40,6 +40,10 @@ if (HAVE_PULSEAUDIO) target_compile_definitions(webcontent PUBLIC HAVE_PULSEAUDIO=1) endif() +if (HAS_FONTCONFIG) + target_link_libraries(webcontent PRIVATE Fontconfig::Fontconfig) +endif() + if (HAS_ACCELERATED_GRAPHICS) target_compile_definitions(webcontent PUBLIC HAS_ACCELERATED_GRAPHICS) target_link_libraries(webcontent PUBLIC LibAccelGfx) @@ -73,10 +77,6 @@ else() add_executable(WebContent main.cpp) endif() -if (HAS_FONTCONFIG) - target_link_libraries(webcontent PRIVATE Fontconfig::Fontconfig) -endif() - target_link_libraries(WebContent PRIVATE webcontent LibURL) target_sources(webcontent PUBLIC FILE_SET ladybird TYPE HEADERS diff --git a/Meta/CMake/woff2.cmake b/Meta/CMake/woff2.cmake deleted file mode 100644 index 577c8628e3a..00000000000 --- a/Meta/CMake/woff2.cmake +++ /dev/null @@ -1,11 +0,0 @@ -find_package(PkgConfig) -pkg_check_modules(WOFF2 REQUIRED IMPORTED_TARGET libwoff2dec) - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args( - WOFF2 - REQUIRED_VARS - WOFF2_INCLUDE_DIRS - WOFF2_LIBRARY_DIRS - WOFF2_LIBRARIES -) diff --git a/Userland/Libraries/LibGfx/CMakeLists.txt b/Userland/Libraries/LibGfx/CMakeLists.txt index cf9a8039dbe..5c1e791d5ac 100644 --- a/Userland/Libraries/LibGfx/CMakeLists.txt +++ b/Userland/Libraries/LibGfx/CMakeLists.txt @@ -1,5 +1,3 @@ -include(woff2) - set(SOURCES AffineTransform.cpp AntiAliasingPainter.cpp @@ -74,11 +72,6 @@ set(SOURCES serenity_lib(LibGfx gfx) target_link_libraries(LibGfx PRIVATE LibCompress LibCore LibCrypto LibFileSystem LibRIFF LibTextCodec LibIPC LibUnicode LibURL) -# Third-party -target_include_directories(LibGfx PRIVATE ${WOFF2_INCLUDE_DIRS}) -target_link_libraries(LibGfx PRIVATE ${WOFF2_LIBRARIES}) -target_link_directories(LibGfx PRIVATE ${WOFF2_LIBRARY_DIRS}) - set(generated_sources TIFFMetadata.h TIFFTagHandler.cpp) list(TRANSFORM generated_sources PREPEND "ImageFormats/") @@ -98,12 +91,11 @@ add_dependencies(LibGfx generate_tiff_files_handler) list(TRANSFORM generated_sources PREPEND "${CMAKE_CURRENT_BINARY_DIR}/") install(FILES ${generated_sources} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/LibGfx/ImageFormats") -find_package(JPEG REQUIRED) -target_include_directories(LibGfx PRIVATE ${JPEG_INCLUDE_DIRS}) -target_link_libraries(LibGfx PRIVATE ${JPEG_LIBRARIES}) -target_link_directories(LibGfx PRIVATE ${JPEG_LIBRARY_DIRS}) +# Third-party +find_package(PkgConfig) +pkg_check_modules(WOFF2 REQUIRED IMPORTED_TARGET libwoff2dec) +find_package(JPEG REQUIRED) find_package(PNG REQUIRED) -target_include_directories(LibGfx PRIVATE ${PNG_INCLUDE_DIRS}) -target_link_libraries(LibGfx PRIVATE ${PNG_LIBRARIES}) -target_link_directories(LibGfx PRIVATE ${PNG_LIBRARY_DIRS}) + +target_link_libraries(LibGfx PRIVATE PkgConfig::WOFF2 JPEG::JPEG PNG::PNG) diff --git a/Userland/Libraries/LibMedia/CMakeLists.txt b/Userland/Libraries/LibMedia/CMakeLists.txt index 07108af18d9..350c2c58463 100644 --- a/Userland/Libraries/LibMedia/CMakeLists.txt +++ b/Userland/Libraries/LibMedia/CMakeLists.txt @@ -12,8 +12,7 @@ set(SOURCES serenity_lib(LibMedia media) target_link_libraries(LibMedia PRIVATE LibCore LibIPC LibGfx LibThreading) +# Third-party find_package(PkgConfig REQUIRED) pkg_check_modules(AVCODEC REQUIRED IMPORTED_TARGET libavcodec) -target_include_directories(LibMedia PRIVATE ${AVCODEC_INCLUDE_DIRS}) -target_link_directories(LibMedia PRIVATE ${AVCODEC_LIBRARY_DIRS}) -target_link_libraries(LibMedia PRIVATE ${AVCODEC_LIBRARIES}) +target_link_libraries(LibMedia PRIVATE PkgConfig::AVCODEC) diff --git a/Userland/Libraries/LibUnicode/CMakeLists.txt b/Userland/Libraries/LibUnicode/CMakeLists.txt index c532357566f..3db3f44d5f8 100644 --- a/Userland/Libraries/LibUnicode/CMakeLists.txt +++ b/Userland/Libraries/LibUnicode/CMakeLists.txt @@ -26,5 +26,4 @@ set(GENERATED_SOURCES ${CURRENT_LIB_GENERATED}) serenity_lib(LibUnicode unicode) find_package(ICU REQUIRED COMPONENTS data i18n uc) -target_include_directories(LibUnicode PRIVATE ${ICU_INCLUDE_DIRS}) -target_link_libraries(LibUnicode PUBLIC ${ICU_LIBRARIES}) +target_link_libraries(LibUnicode PRIVATE ICU::i18n ICU::uc ICU::data) diff --git a/Userland/Libraries/LibWebView/CMakeLists.txt b/Userland/Libraries/LibWebView/CMakeLists.txt index 59bce77a88e..ba3bd70ae62 100644 --- a/Userland/Libraries/LibWebView/CMakeLists.txt +++ b/Userland/Libraries/LibWebView/CMakeLists.txt @@ -49,9 +49,9 @@ serenity_lib(LibWebView webview) target_link_libraries(LibWebView PRIVATE LibCore LibFileSystem LibGfx LibIPC LibProtocol LibJS LibWeb LibUnicode LibURL) target_compile_definitions(LibWebView PRIVATE ENABLE_PUBLIC_SUFFIX=$) +# Third-party find_package(SQLite3 REQUIRED) -target_include_directories(LibWebView PRIVATE ${SQLite3_INCLUDE_DIRS}) -target_link_libraries(LibWebView PRIVATE ${SQLite3_LIBRARIES}) +target_link_libraries(LibWebView PRIVATE SQLite::SQLite3) foreach(header ${GENERATED_SOURCES}) get_filename_component(extension ${header} EXT)