[GTK][CMake] Unable to do make install
authormrobinson@webkit.org <mrobinson@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 May 2014 18:38:05 +0000 (18:38 +0000)
committermrobinson@webkit.org <mrobinson@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 5 May 2014 18:38:05 +0000 (18:38 +0000)
https://bugs.webkit.org/show_bug.cgi?id=130188

Reviewed by Carlos Garcia Campos.

.:
Only try to install the HTML documentation if the build is configured to generate it via
the new ENABLE_GTKDOC option. We cannot conditionally install something, so this allows us
to keep the HTML documentation directory as an installation source.

* Source/PlatformGTK.cmake: The gtkdoc target now always builds HTML documentation, but
is only added to the default target when ENABLE_GTKDOC is turned on. gtkdoc-no-html is
never added to the default target, but will be triggered by build-webkit, so that
when ENABLE_GTKDOC is off and build-webkit isn't used, documentation isn't built at all.
* Source/cmake/OptionsGTK.cmake: Add an ENABLE_GTKDOC option to the build.

Tools:
* Scripts/webkitdirs.pm:
(buildCMakeGeneratedProject): Always build gtkdoc-no-html for WebKitGTK+. This
will give an early signal that a change has broken the documentation.

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

ChangeLog
Source/PlatformGTK.cmake
Source/cmake/OptionsGTK.cmake
Tools/ChangeLog
Tools/Scripts/webkitdirs.pm

index 2c9aaf5..1ee7009 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2014-05-05  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK][CMake] Unable to do make install
+        https://bugs.webkit.org/show_bug.cgi?id=130188
+
+        Reviewed by Carlos Garcia Campos.
+
+        Only try to install the HTML documentation if the build is configured to generate it via
+        the new ENABLE_GTKDOC option. We cannot conditionally install something, so this allows us
+        to keep the HTML documentation directory as an installation source.
+
+        * Source/PlatformGTK.cmake: The gtkdoc target now always builds HTML documentation, but
+        is only added to the default target when ENABLE_GTKDOC is turned on. gtkdoc-no-html is
+        never added to the default target, but will be triggered by build-webkit, so that
+        when ENABLE_GTKDOC is off and build-webkit isn't used, documentation isn't built at all.
+        * Source/cmake/OptionsGTK.cmake: Add an ENABLE_GTKDOC option to the build.
+
 2014-05-03  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
 
         [CMake] Define SHOULD_INSTALL_JS_SHELL before including ports Options files.
index d937e47..a957a8a 100644 (file)
@@ -9,6 +9,9 @@ if (ENABLE_WEBKIT2)
         "${CMAKE_SOURCE_DIR}/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml"
         "${CMAKE_SOURCE_DIR}/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt"
     )
+endif ()
+
+if (ENABLE_GTKDOC)
     install(DIRECTORY ${CMAKE_BINARY_DIR}/Documentation/webkit2gtk/html/
             DESTINATION ${CMAKE_INSTALL_DATADIR}/gtk-doc/html/webkit2gtk
     )
@@ -25,14 +28,14 @@ macro(ADD_GTKDOC_GENERATOR _stamp_name _extra_args)
 endmacro()
 
 add_gtkdoc_generator("docs-build-no-html.stamp" "--skip-html")
-add_custom_target(gtkdoc-no-html ALL
-    DEPENDS "${CMAKE_BINARY_DIR}/docs-build-no-html.stamp"
-)
+add_custom_target(gtkdoc-no-html DEPENDS "${CMAKE_BINARY_DIR}/docs-build-no-html.stamp")
 
 add_gtkdoc_generator("docs-build.stamp" "")
-add_custom_target(gtkdoc
-    DEPENDS "${CMAKE_BINARY_DIR}/docs-build.stamp"
-)
+if (ENABLE_GTKDOC)
+    add_custom_target(gtkdoc ALL DEPENDS "${CMAKE_BINARY_DIR}/docs-build.stamp")
+else ()
+    add_custom_target(gtkdoc DEPENDS "${CMAKE_BINARY_DIR}/docs-build.stamp")
+endif ()
 
 add_custom_target(check
     COMMAND ${TOOLS_DIR}/Scripts/run-gtk-tests
index f45cc2d..35fd4c7 100644 (file)
@@ -17,6 +17,7 @@ CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(WEBKIT2 32 0 7)
 CALCULATE_LIBRARY_VERSIONS_FROM_LIBTOOL_TRIPLE(JAVASCRIPTCORE 16 2 16)
 
 set(ENABLE_CREDENTIAL_STORAGE ON CACHE BOOL "Whether or not to enable support for credential storage using libsecret.")
+set(ENABLE_GTKDOC OFF CACHE BOOL "Whether or not to generate gtkdoc by default.")
 
 # FIXME: We want to expose fewer options to downstream, but for now everything is public.
 WEBKIT_OPTION_BEGIN()
index ff25d9f..df8774f 100644 (file)
@@ -1,3 +1,14 @@
+2014-05-05  Martin Robinson  <mrobinson@igalia.com>
+
+        [GTK][CMake] Unable to do make install
+        https://bugs.webkit.org/show_bug.cgi?id=130188
+
+        Reviewed by Carlos Garcia Campos.
+
+        * Scripts/webkitdirs.pm:
+        (buildCMakeGeneratedProject): Always build gtkdoc-no-html for WebKitGTK+. This
+        will give an early signal that a change has broken the documentation.
+
 2014-05-05  Pratik Solanki  <psolanki@apple.com>
 
         Update framework locations in package-root
index 17381f1..5e32e21 100755 (executable)
@@ -1875,7 +1875,9 @@ sub buildCMakeGeneratedProject($)
     if (isGtk()) {
         chdir "$buildPath" or die;
         $command = "$buildPath/build.sh";
-        @args = ($makeArgs);
+
+        # We always try to generate gtkdoc for GTK+, so that we see errors as early as possible.
+        @args = ($makeArgs, 'gtkdoc-no-html');
     }
 
     # We call system("cmake @args") instead of system("cmake", @args) so that @args is