REGRESSION(CMake): Make it possible to build without introspection
[WebKit-https.git] / Source / PlatformGTK.cmake
1 add_subdirectory(${WEBCORE_DIR}/platform/gtk/po)
2
3 # This allows exposing a 'gir' target which builds all GObject introspection files.
4 if (ENABLE_INTROSPECTION)
5     add_custom_target(gir ALL DEPENDS ${GObjectIntrospectionTargets})
6 endif ()
7
8 list(APPEND DocumentationDependencies
9     GObjectDOMBindings
10     WebKit2
11     "${CMAKE_SOURCE_DIR}/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-docs.sgml"
12     "${CMAKE_SOURCE_DIR}/Source/WebKit2/UIProcess/API/gtk/docs/webkit2gtk-sections.txt"
13 )
14
15 if (ENABLE_GTKDOC)
16     install(DIRECTORY ${CMAKE_BINARY_DIR}/Documentation/webkit2gtk/html/
17             DESTINATION "${CMAKE_INSTALL_DATADIR}/gtk-doc/html/webkit2gtk-${WEBKITGTK_API_VERSION}"
18     )
19     install(DIRECTORY ${CMAKE_BINARY_DIR}/Documentation/webkitdomgtk/html/
20             DESTINATION "${CMAKE_INSTALL_DATADIR}/gtk-doc/html/webkitdomgtk-${WEBKITGTK_API_VERSION}"
21     )
22 endif ()
23
24 macro(ADD_GTKDOC_GENERATOR _stamp_name _extra_args)
25     add_custom_command(
26         OUTPUT "${CMAKE_BINARY_DIR}/${_stamp_name}"
27         DEPENDS ${DocumentationDependencies}
28         COMMAND CC=${CMAKE_C_COMPILER} CFLAGS=${CMAKE_C_FLAGS} ${CMAKE_SOURCE_DIR}/Tools/gtk/generate-gtkdoc ${_extra_args}
29         COMMAND touch ${_stamp_name}
30         WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
31     )
32 endmacro()
33
34 add_gtkdoc_generator("docs-build.stamp" "")
35 if (ENABLE_GTKDOC)
36     add_custom_target(gtkdoc ALL DEPENDS "${CMAKE_BINARY_DIR}/docs-build.stamp")
37 else ()
38     add_custom_target(gtkdoc DEPENDS "${CMAKE_BINARY_DIR}/docs-build.stamp")
39
40     # Add a default build step which check that documentation does not have any warnings
41     # or errors. This is useful to prevent breaking documentation inadvertently during
42     # the course of development.
43     if (DEVELOPER_MODE)
44         add_gtkdoc_generator("docs-build-no-html.stamp" "--skip-html")
45         add_custom_target(gtkdoc-no-html ALL DEPENDS "${CMAKE_BINARY_DIR}/docs-build-no-html.stamp")
46     endif ()
47 endif ()
48
49 add_custom_target(check
50     COMMAND ${TOOLS_DIR}/Scripts/run-gtk-tests
51     COMMAND ${TOOLS_DIR}/gtk/check-for-webkitdom-api-breaks
52 )
53
54
55 add_custom_command(
56     OUTPUT ${CMAKE_BINARY_DIR}/webkitgtk-${PROJECT_VERSION}.tar
57     DEPENDS ${TOOLS_DIR}/gtk/make-dist.py
58     DEPENDS ${TOOLS_DIR}/gtk/manifest.txt
59     DEPENDS WebKit2
60     DEPENDS gtkdoc
61     COMMAND ${TOOLS_DIR}/gtk/make-dist.py
62             --source-dir=${CMAKE_SOURCE_DIR}
63             --build-dir=${CMAKE_BINARY_DIR}
64             --version=${PROJECT_VERSION}
65             ${TOOLS_DIR}/gtk/manifest.txt
66 )
67
68 add_custom_command(
69     OUTPUT ${CMAKE_BINARY_DIR}/webkitgtk-${PROJECT_VERSION}.tar.xz
70     DEPENDS ${CMAKE_BINARY_DIR}/webkitgtk-${PROJECT_VERSION}.tar
71     COMMAND xz -f ${CMAKE_BINARY_DIR}/webkitgtk-${PROJECT_VERSION}.tar
72 )
73
74 add_custom_target(dist
75     DEPENDS ${CMAKE_BINARY_DIR}/webkitgtk-${PROJECT_VERSION}.tar.xz
76 )
77
78 add_custom_target(distcheck
79     DEPENDS ${TOOLS_DIR}/gtk/make-dist.py
80     DEPENDS ${TOOLS_DIR}/gtk/manifest.txt
81     DEPENDS WebKit2
82     DEPENDS gtkdoc
83     COMMAND ${TOOLS_DIR}/gtk/make-dist.py
84             --check
85             --source-dir=${CMAKE_SOURCE_DIR}
86             --build-dir=${CMAKE_BINARY_DIR}
87             --version=/webkitgtk-${PROJECT_VERSION}
88             ${TOOLS_DIR}/gtk/manifest.txt
89     COMMAND xz -f ${CMAKE_BINARY_DIR}/webkitgtk-${PROJECT_VERSION}.tar
90 )