[GTK][CMake] make libjavascriptcoregtk a public shared library again
authorgns@gnome.org <gns@gnome.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Dec 2013 01:35:02 +0000 (01:35 +0000)
committergns@gnome.org <gns@gnome.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 19 Dec 2013 01:35:02 +0000 (01:35 +0000)
https://bugs.webkit.org/show_bug.cgi?id=125512

Reviewed by Martin Robinson.

.:

* CMakeLists.txt: make JavaScriptCore always be a shared library for the GTK+ port.
* Source/cmake/WebKitHelpers.cmake: make -fvisibility=hidden not be applied for GTK+,
visibility of some symbols is required for threading to be initialized properly by
WebKit2 processes, and we will rely on a linker script that will be added later on,
for production builds.

Source/JavaScriptCore:

* CMakeLists.txt: use target type instead of SHARED_CORE to decide whether
JavaScriptCore is a shared library, since it's always shared for GTK+ regardless
of SHARED_CORE.

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

CMakeLists.txt
ChangeLog
Source/JavaScriptCore/CMakeLists.txt
Source/JavaScriptCore/ChangeLog
Source/cmake/WebKitHelpers.cmake

index 264bf47..339bbf8 100644 (file)
@@ -116,7 +116,11 @@ if (SHARED_CORE)
     set(JavaScriptCore_LIBRARY_TYPE SHARED)
     set(WebCore_LIBRARY_TYPE SHARED)
 else ()
-    set(JavaScriptCore_LIBRARY_TYPE STATIC)
+    if (${PORT} STREQUAL GTK)
+        set(JavaScriptCore_LIBRARY_TYPE SHARED)
+    else ()
+        set(JavaScriptCore_LIBRARY_TYPE STATIC)
+    endif ()
     set(WebCore_LIBRARY_TYPE STATIC)
 endif ()
 
index d439185..66a7498 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2013-12-18  Gustavo Noronha Silva  <gns@gnome.org>
+
+        [GTK][CMake] make libjavascriptcoregtk a public shared library again
+        https://bugs.webkit.org/show_bug.cgi?id=125512
+
+        Reviewed by Martin Robinson.
+
+        * CMakeLists.txt: make JavaScriptCore always be a shared library for the GTK+ port.
+        * Source/cmake/WebKitHelpers.cmake: make -fvisibility=hidden not be applied for GTK+,
+        visibility of some symbols is required for threading to be initialized properly by
+        WebKit2 processes, and we will rely on a linker script that will be added later on,
+        for production builds.
+
 2013-12-16  Martin Robinson  <mrobinson@igalia.com>
 
         [GTK] [CMake] Add support for building WebKit1
index b231d56..7d1573f 100644 (file)
@@ -761,7 +761,7 @@ if (JavaScriptCore_OUTPUT_NAME)
     set_target_properties(JavaScriptCore PROPERTIES OUTPUT_NAME ${JavaScriptCore_OUTPUT_NAME})
 endif ()
 
-if (SHARED_CORE)
+if (${JavaScriptCore_LIBRARY_TYPE} STREQUAL "SHARED_LIBRARY")
     set_target_properties(JavaScriptCore PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR})
     install(TARGETS JavaScriptCore DESTINATION "${LIB_INSTALL_DIR}")
 endif ()
index 2f056ad..1ec220a 100644 (file)
@@ -1,3 +1,14 @@
+2013-12-18  Gustavo Noronha Silva  <gns@gnome.org>
+
+        [GTK][CMake] make libjavascriptcoregtk a public shared library again
+        https://bugs.webkit.org/show_bug.cgi?id=125512
+
+        Reviewed by Martin Robinson.
+
+        * CMakeLists.txt: use target type instead of SHARED_CORE to decide whether
+        JavaScriptCore is a shared library, since it's always shared for GTK+ regardless
+        of SHARED_CORE.
+
 2013-12-18  Benjamin Poulain  <benjamin@webkit.org>
 
         Add a simple stack abstraction for x86_64
index 300eb49..8933abf 100644 (file)
@@ -24,7 +24,9 @@ macro(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target)
             set(OLD_COMPILE_FLAGS "-fno-tree-sra ${OLD_COMPILE_FLAGS}")
         endif ()
 
-        if (NOT SHARED_CORE)
+        # For GTK+ we will rely on a linker script to deal with symbol visibility on
+        # production builds, we want all symbols visible for development builds.
+        if (NOT SHARED_CORE AND NOT ${PORT} STREQUAL "GTK")
             set(OLD_COMPILE_FLAGS "-fvisibility=hidden ${OLD_COMPILE_FLAGS}")
         endif ()