Browse Source

CMake: Consistently use imported targets for third party dependencies

Andrew Kaster 1 year ago
parent
commit
a587eafbf4

+ 4 - 4
Ladybird/WebContent/CMakeLists.txt

@@ -40,6 +40,10 @@ if (HAVE_PULSEAUDIO)
     target_compile_definitions(webcontent PUBLIC HAVE_PULSEAUDIO=1)
     target_compile_definitions(webcontent PUBLIC HAVE_PULSEAUDIO=1)
 endif()
 endif()
 
 
+if (HAS_FONTCONFIG)
+    target_link_libraries(webcontent PRIVATE Fontconfig::Fontconfig)
+endif()
+
 if (HAS_ACCELERATED_GRAPHICS)
 if (HAS_ACCELERATED_GRAPHICS)
     target_compile_definitions(webcontent PUBLIC HAS_ACCELERATED_GRAPHICS)
     target_compile_definitions(webcontent PUBLIC HAS_ACCELERATED_GRAPHICS)
     target_link_libraries(webcontent PUBLIC LibAccelGfx)
     target_link_libraries(webcontent PUBLIC LibAccelGfx)
@@ -73,10 +77,6 @@ else()
     add_executable(WebContent main.cpp)
     add_executable(WebContent main.cpp)
 endif()
 endif()
 
 
-if (HAS_FONTCONFIG)
-    target_link_libraries(webcontent PRIVATE Fontconfig::Fontconfig)
-endif()
-
 target_link_libraries(WebContent PRIVATE webcontent LibURL)
 target_link_libraries(WebContent PRIVATE webcontent LibURL)
 
 
 target_sources(webcontent PUBLIC FILE_SET ladybird TYPE HEADERS
 target_sources(webcontent PUBLIC FILE_SET ladybird TYPE HEADERS

+ 0 - 11
Meta/CMake/woff2.cmake

@@ -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
-)

+ 6 - 14
Userland/Libraries/LibGfx/CMakeLists.txt

@@ -1,5 +1,3 @@
-include(woff2)
-
 set(SOURCES
 set(SOURCES
     AffineTransform.cpp
     AffineTransform.cpp
     AntiAliasingPainter.cpp
     AntiAliasingPainter.cpp
@@ -74,11 +72,6 @@ set(SOURCES
 serenity_lib(LibGfx gfx)
 serenity_lib(LibGfx gfx)
 target_link_libraries(LibGfx PRIVATE LibCompress LibCore LibCrypto LibFileSystem LibRIFF LibTextCodec LibIPC LibUnicode LibURL)
 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)
 set(generated_sources TIFFMetadata.h TIFFTagHandler.cpp)
 list(TRANSFORM generated_sources PREPEND "ImageFormats/")
 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}/")
 list(TRANSFORM generated_sources PREPEND "${CMAKE_CURRENT_BINARY_DIR}/")
 install(FILES ${generated_sources} DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/LibGfx/ImageFormats")
 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)
 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)

+ 2 - 3
Userland/Libraries/LibMedia/CMakeLists.txt

@@ -12,8 +12,7 @@ set(SOURCES
 serenity_lib(LibMedia media)
 serenity_lib(LibMedia media)
 target_link_libraries(LibMedia PRIVATE LibCore LibIPC LibGfx LibThreading)
 target_link_libraries(LibMedia PRIVATE LibCore LibIPC LibGfx LibThreading)
 
 
+# Third-party
 find_package(PkgConfig REQUIRED)
 find_package(PkgConfig REQUIRED)
 pkg_check_modules(AVCODEC REQUIRED IMPORTED_TARGET libavcodec)
 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)

+ 1 - 2
Userland/Libraries/LibUnicode/CMakeLists.txt

@@ -26,5 +26,4 @@ set(GENERATED_SOURCES ${CURRENT_LIB_GENERATED})
 serenity_lib(LibUnicode unicode)
 serenity_lib(LibUnicode unicode)
 
 
 find_package(ICU REQUIRED COMPONENTS data i18n uc)
 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)

+ 2 - 2
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_link_libraries(LibWebView PRIVATE LibCore LibFileSystem LibGfx LibIPC LibProtocol LibJS LibWeb LibUnicode LibURL)
 target_compile_definitions(LibWebView PRIVATE ENABLE_PUBLIC_SUFFIX=$<BOOL:${ENABLE_PUBLIC_SUFFIX_DOWNLOAD}>)
 target_compile_definitions(LibWebView PRIVATE ENABLE_PUBLIC_SUFFIX=$<BOOL:${ENABLE_PUBLIC_SUFFIX_DOWNLOAD}>)
 
 
+# Third-party
 find_package(SQLite3 REQUIRED)
 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})
 foreach(header ${GENERATED_SOURCES})
     get_filename_component(extension ${header} EXT)
     get_filename_component(extension ${header} EXT)