File: PlatformWPE.cmake

package info (click to toggle)
wpewebkit 2.50.4-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 438,288 kB
  • sloc: cpp: 3,777,429; javascript: 197,888; ansic: 156,951; python: 49,118; asm: 21,987; ruby: 18,540; perl: 16,722; xml: 4,623; yacc: 2,360; sh: 2,096; java: 2,019; lex: 1,327; pascal: 366; makefile: 92
file content (104 lines) | stat: -rw-r--r-- 3,344 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
if (ENABLE_API_TESTS OR ENABLE_LAYOUT_TESTS OR ENABLE_MINIBROWSER)
    add_subdirectory(wpe/backends)
endif ()

if (DEVELOPER_MODE)
    add_subdirectory(flatpak)
endif ()

if (ENABLE_API_TESTS)
    add_subdirectory(TestWebKitAPI/glib)
endif ()

if (ENABLE_MINIBROWSER)
    add_subdirectory(MiniBrowser/wpe)
endif ()

if (ENABLE_COG)
    include(ExternalProject)
    find_program(MESON_EXE NAMES meson)
    execute_process(
        COMMAND "${MESON_EXE}" --version
        OUTPUT_VARIABLE MESON_VERSION
        OUTPUT_STRIP_TRAILING_WHITESPACE
        COMMAND_ERROR_IS_FATAL ANY
        ERROR_QUIET
    )
    if ("${MESON_VERSION}" VERSION_GREATER 1.1.0)
        set(MESON_RECONFIGURE flag)
    else ()
        set(MESON_RECONFIGURE remove)
    endif ()

    if ("${WPE_COG_PLATFORMS}" STREQUAL "")
        set(WPE_COG_PLATFORMS "drm,headless,wayland,x11")
    elseif ("${WPE_COG_PLATFORMS}" STREQUAL "none")
        set(WPE_COG_PLATFORMS "")
    endif ()

    # Conditionally add 'GTK4'.
    find_package(GTK 4.0.0)
    if (GTK_FOUND)
        set(WPE_COG_PLATFORMS "${WPE_COG_PLATFORMS},gtk4")
    endif ()

    if (DEFINED ENV{PKG_CONFIG_PATH})
        set(WPE_COG_PKG_CONFIG_PATH ${CMAKE_BINARY_DIR}:$ENV{PKG_CONFIG_PATH})
    else ()
        set(WPE_COG_PKG_CONFIG_PATH ${CMAKE_BINARY_DIR})
    endif ()
    if ("${WPE_COG_REPO}" STREQUAL "")
        set(WPE_COG_REPO "https://github.com/Igalia/cog.git")
    endif ()
    if ("${WPE_COG_TAG}" STREQUAL "")
        set(WPE_COG_TAG "edafaa079f1c5ebe201bac33ddf3c476479c3f1f")
    endif ()
    # TODO Use GIT_REMOTE_UPDATE_STRATEGY with 3.18 to allow switching between
    # conflicting branches without having to delete the repo

    # Convert a few options to their Meson equivalents
    if (USE_SOUP2)
        set(COG_MESON_SOUP2 enabled)
    else ()
        set(COG_MESON_SOUP2 disabled)
    endif ()

    string(TOLOWER "${CMAKE_BUILD_TYPE}" COG_MESON_BUILDTYPE)
    if (COG_MESON_BUILDTYPE STREQUAL "relwithdebinfo")
        set(COG_MESON_BUILDTYPE debugoptimized)
    elseif (COG_MESON_BUILDTYPE STREQUAL "minsizerel")
        set(COG_MESON_BUILDTYPE minsize)
    elseif (NOT (COG_MESON_BUILDTYPE STREQUAL release OR COG_MESON_BUILDTYPE STREQUAL debug))
        set(COG_MESON_BUILDTYPE debugoptimized)
    endif ()

    if (ENABLE_SANITIZERS)
        set(COG_MESON_SANITIZE_OPTION "${ENABLE_SANITIZERS}")
    else ()
        set(COG_MESON_SANITIZE_OPTION "none")
    endif ()

    ExternalProject_Add(cog
        GIT_REPOSITORY "${WPE_COG_REPO}"
        GIT_TAG "${WPE_COG_TAG}"
        SOURCE_DIR "${CMAKE_SOURCE_DIR}/Tools/wpe/cog"
        BUILD_IN_SOURCE FALSE
        CONFIGURE_COMMAND
            ${CMAKE_SOURCE_DIR}/Tools/wpe/meson-wrapper
            ${MESON_RECONFIGURE}
            <BINARY_DIR> <SOURCE_DIR>
            --buildtype ${COG_MESON_BUILDTYPE}
            --pkg-config-path ${WPE_COG_PKG_CONFIG_PATH}
            -Dwpe_api=${WPE_API_VERSION}
            -Dplatforms=${WPE_COG_PLATFORMS}
            -Db_sanitize=${COG_MESON_SANITIZE_OPTION}
            -Dlibportal=auto
        BUILD_COMMAND
            meson compile -C <BINARY_DIR>
        INSTALL_COMMAND "")
    ExternalProject_Add_StepDependencies(cog build WebKit)
    ExternalProject_Add_StepDependencies(cog configure
        "${CMAKE_BINARY_DIR}/cmakeconfig.h"
        "${WPE_PKGCONFIG_FILE}"
    )
endif ()