[CMake] Add WEBKIT_FRAMEWORK_TARGET macro
authordon.olmstead@sony.com <don.olmstead@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 31 May 2019 00:46:38 +0000 (00:46 +0000)
committerdon.olmstead@sony.com <don.olmstead@sony.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 31 May 2019 00:46:38 +0000 (00:46 +0000)
https://bugs.webkit.org/show_bug.cgi?id=198396

Reviewed by Konstantin Tokarev.

.:

Add a macro to help create the WebKit::targets in CMake.

* CMakeLists.txt:
* Source/cmake/WebKitMacros.cmake:

Source/bmalloc:

Use WEBKIT_FRAMEWORK_TARGET.

* CMakeLists.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@245940 268f45cc-cd09-0410-ab3c-d52691b4dbfc

CMakeLists.txt
ChangeLog
Source/bmalloc/CMakeLists.txt
Source/bmalloc/ChangeLog
Source/cmake/WebKitMacros.cmake

index e79f412..459ea7b 100644 (file)
@@ -139,6 +139,7 @@ endif ()
 # By default, only the highest-level libraries, WebKitLegacy and WebKit, are
 # shared, because properly building shared libraries that depend on each other
 # can be tricky. Override these in Options*.cmake for your port as needed.
+set(bmalloc_LIBRARY_TYPE STATIC)
 set(WTF_LIBRARY_TYPE STATIC)
 set(JavaScriptCore_LIBRARY_TYPE STATIC)
 set(PAL_LIBRARY_TYPE STATIC)
index 6d7dc97..4fb4645 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2019-05-30  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Add WEBKIT_FRAMEWORK_TARGET macro
+        https://bugs.webkit.org/show_bug.cgi?id=198396
+
+        Reviewed by Konstantin Tokarev.
+
+        Add a macro to help create the WebKit::targets in CMake.
+
+        * CMakeLists.txt:
+        * Source/cmake/WebKitMacros.cmake:
+
 2019-05-29  Don Olmstead  <don.olmstead@sony.com>
 
         Remove ENABLE definitions from WebKit config files
index 2e07f1a..b78bb38 100644 (file)
@@ -141,30 +141,27 @@ set(bmalloc_LIBRARIES
     ${CMAKE_DL_LIBS}
 )
 
-WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
+set(bmalloc_INTERFACE_LIBRARIES bmalloc)
+set(bmalloc_INTERFACE_INCLUDE_DIRECTORIES ${bmalloc_FRAMEWORK_HEADERS_DIR})
+set(bmalloc_INTERFACE_DEPENDENCIES bmalloc_CopyHeaders)
 
-WEBKIT_WRAP_SOURCELIST(${bmalloc_SOURCES})
+set(mbmalloc_LIBRARIES bmalloc)
 
-add_library(bmalloc STATIC ${bmalloc_SOURCES})
-target_include_directories(bmalloc PRIVATE ${bmalloc_PRIVATE_INCLUDE_DIRECTORIES})
-target_include_directories(bmalloc INTERFACE "$<BUILD_INTERFACE:${bmalloc_FRAMEWORK_HEADERS_DIR}>")
-target_link_libraries(bmalloc ${bmalloc_LIBRARIES})
-set_target_properties(bmalloc PROPERTIES COMPILE_DEFINITIONS "BUILDING_bmalloc")
+WEBKIT_FRAMEWORK_DECLARE(bmalloc)
+WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
 
 WEBKIT_COPY_FILES(bmalloc_CopyHeaders
     DESTINATION ${bmalloc_FRAMEWORK_HEADERS_DIR}
     FILES ${bmalloc_PUBLIC_HEADERS}
 )
 
-add_library(bmalloc_PostBuild INTERFACE)
-target_link_libraries(bmalloc_PostBuild INTERFACE bmalloc)
-add_dependencies(bmalloc_PostBuild bmalloc_CopyHeaders)
-
-add_library(WebKit::bmalloc ALIAS bmalloc_PostBuild)
+WEBKIT_WRAP_SOURCELIST(${bmalloc_SOURCES})
+WEBKIT_FRAMEWORK(bmalloc)
+WEBKIT_FRAMEWORK_TARGET(bmalloc)
 
 if (DEVELOPER_MODE)
     add_library(mbmalloc SHARED bmalloc/mbmalloc.cpp)
     target_include_directories(mbmalloc PRIVATE ${bmalloc_PRIVATE_INCLUDE_DIRECTORIES})
-    target_link_libraries(mbmalloc bmalloc ${CMAKE_THREAD_LIBS_INIT} ${bmalloc_LIBRARIES})
+    target_link_libraries(mbmalloc ${CMAKE_THREAD_LIBS_INIT} ${mbmalloc_LIBRARIES} ${bmalloc_LIBRARIES})
     set_target_properties(mbmalloc PROPERTIES COMPILE_DEFINITIONS "BUILDING_mbmalloc")
 endif ()
index ba9dbf0..f5ce05b 100644 (file)
@@ -1,3 +1,14 @@
+2019-05-30  Don Olmstead  <don.olmstead@sony.com>
+
+        [CMake] Add WEBKIT_FRAMEWORK_TARGET macro
+        https://bugs.webkit.org/show_bug.cgi?id=198396
+
+        Reviewed by Konstantin Tokarev.
+
+        Use WEBKIT_FRAMEWORK_TARGET.
+
+        * CMakeLists.txt:
+
 2019-05-30  Keith Miller  <keith_miller@apple.com>
 
         IsoHeaps don't notice uncommitted VA becoming the first eligible.
index 6d57ee3..9a09cb7 100644 (file)
@@ -197,6 +197,15 @@ macro(WEBKIT_FRAMEWORK _target)
     endif ()
 endmacro()
 
+# FIXME Move into WEBKIT_FRAMEWORK after all libraries are using this macro
+macro(WEBKIT_FRAMEWORK_TARGET _target)
+    add_library(${_target}_PostBuild INTERFACE)
+    target_link_libraries(${_target}_PostBuild INTERFACE ${${_target}_INTERFACE_LIBRARIES})
+    target_include_directories(${_target}_PostBuild INTERFACE ${${_target}_INTERFACE_INCLUDE_DIRECTORIES})
+    add_dependencies(${_target}_PostBuild ${${_target}_INTERFACE_DEPENDENCIES})
+    add_library(WebKit::${_target} ALIAS ${_target}_PostBuild)
+endmacro()
+
 macro(WEBKIT_EXECUTABLE _target)
     _WEBKIT_TARGET(${_target} ${_target})