Changeset 183416 in webkit


Ignore:
Timestamp:
Apr 27, 2015 1:30:15 PM (9 years ago)
Author:
Martin Robinson
Message:

[CMake] Autogenerate cmakeconfig.h.cmake
https://bugs.webkit.org/show_bug.cgi?id=143997

Reviewed by Csaba Osztrogonác.

.:

  • CMakeLists.txt: Create the configuration header as the last part of the cmake run.
  • Source/CMakeLists.txt: No longer use configure_file to create cmakeconfig.h.
  • Source/cmake/OptionsCommon.cmake: Expose WTF_CPU_ARM64_CORTEXA53 to the build explicitly.
  • Source/cmake/OptionsGTK.cmake: Expose variables to the build using SET_AND_EXPOSE_TO_BUILD.

Do some other miscellaneous related cleanup.

  • Source/cmake/OptionsEFL.cmake: Expose HAVE_LLVM to the build.
  • Source/cmake/WebKitFeatures.cmake: Expose all WebKit features to the build. Add support for

build exposed variables. Add a macro to generate a configuration from them.

  • Source/cmakeconfig.h.cmake: Removed.

Source/WebCore:

  • PlatformGTK.cmake: Use the WTF_USE style variables, because those are the same

as the ones exposed to the build.

Source/WTF:

  • wtf/Platform.h: Move a GTK-specific setting from cmakeconfig.h to here.

Tools:

  • DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: Add XP_UNIX to the command-line

definitions since TestNetscapePlugIn does not use cmakeconfig.h.

Location:
trunk
Files:
1 deleted
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/CMakeLists.txt

    r182865 r183416  
    184184# -----------------------------------------------------------------------------
    185185PRINT_WEBKIT_OPTIONS()
     186
     187# -----------------------------------------------------------------------------
     188# Create the configuration header
     189# -----------------------------------------------------------------------------
     190CREATE_CONFIGURATION_HEADER()
  • trunk/ChangeLog

    r183388 r183416  
     12015-04-22  Martin Robinson  <mrobinson@igalia.com>
     2
     3        [CMake] Autogenerate cmakeconfig.h.cmake
     4        https://bugs.webkit.org/show_bug.cgi?id=143997
     5
     6        Reviewed by Csaba Osztrogonác.
     7
     8        * CMakeLists.txt: Create the configuration header as the last part of the cmake run.
     9        * Source/CMakeLists.txt: No longer use configure_file to create cmakeconfig.h.
     10        * Source/cmake/OptionsCommon.cmake: Expose WTF_CPU_ARM64_CORTEXA53 to the build explicitly.
     11        * Source/cmake/OptionsGTK.cmake: Expose variables to the build using SET_AND_EXPOSE_TO_BUILD.
     12        Do some other miscellaneous related cleanup.
     13        * Source/cmake/OptionsEFL.cmake: Expose HAVE_LLVM to the build.
     14        * Source/cmake/WebKitFeatures.cmake: Expose all WebKit features to the build. Add support for
     15        build exposed variables. Add a macro to generate a configuration from them.
     16        * Source/cmakeconfig.h.cmake: Removed.
     17
    1182015-04-24  Philippe Normand  <pnormand@igalia.com>
    219
  • trunk/Source/CMakeLists.txt

    r182624 r183416  
    4343    WEBKIT_SET_EXTRA_COMPILER_FLAGS(WebKit2 ${ADDITIONAL_COMPILER_FLAGS})
    4444endif ()
    45 
    46 # -----------------------------------------------------------------------------
    47 # Create the configuration file
    48 # -----------------------------------------------------------------------------
    49 configure_file(cmakeconfig.h.cmake ${CMAKE_BINARY_DIR}/cmakeconfig.h @ONLY)
  • trunk/Source/WTF/ChangeLog

    r183314 r183416  
     12015-04-22  Martin Robinson  <mrobinson@igalia.com>
     2
     3        [CMake] Autogenerate cmakeconfig.h.cmake
     4        https://bugs.webkit.org/show_bug.cgi?id=143997
     5
     6        Reviewed by Csaba Osztrogonác.
     7
     8        * wtf/Platform.h: Move a GTK-specific setting from cmakeconfig.h to here.
     9
    1102015-04-25  Martin Robinson  <mrobinson@igalia.com>
    211
  • trunk/Source/WTF/wtf/Platform.h

    r183250 r183416  
    489489#endif
    490490
     491#if PLATFORM(GTK) && !defined(GTK_API_VERSION_2)
     492#define GDK_VERSION_MIN_REQUIRED GDK_VERSION_3_6
     493#endif
     494
    491495/* On Windows, use QueryPerformanceCounter by default */
    492496#if OS(WINDOWS)
  • trunk/Source/WebCore/ChangeLog

    r183413 r183416  
     12015-04-22  Martin Robinson  <mrobinson@igalia.com>
     2
     3        [CMake] Autogenerate cmakeconfig.h.cmake
     4        https://bugs.webkit.org/show_bug.cgi?id=143997
     5
     6        Reviewed by Csaba Osztrogonác.
     7
     8        * PlatformGTK.cmake: Use the WTF_USE style variables, because those are the same
     9        as the ones exposed to the build.
     10
    1112015-04-27  Zalan Bujtas  <zalan@apple.com>
    212
  • trunk/Source/WebCore/PlatformGTK.cmake

    r183387 r183416  
    328328    )
    329329
    330     if (USE_GSTREAMER_MPEGTS)
     330    if (WTF_USE_GSTREAMER_MPEGTS)
    331331        list(APPEND WebCore_INCLUDE_DIRECTORIES
    332332            ${GSTREAMER_MPEGTS_INCLUDE_DIRS}
     
    338338    endif ()
    339339
    340     if (USE_GSTREAMER_GL)
     340    if (WTF_USE_GSTREAMER_GL)
    341341        list(APPEND WebCore_INCLUDE_DIRECTORIES
    342342            ${GSTREAMER_GL_INCLUDE_DIRS}
  • trunk/Source/cmake/OptionsCommon.cmake

    r182243 r183416  
    6666endif ()
    6767
     68EXPOSE_VARIABLE_TO_BUILD(WTF_CPU_ARM64_CORTEXA53)
     69
    6870# Use ld.gold if it is available and isn't disabled explicitly
    6971option(USE_LD_GOLD "Use GNU gold linker" ON)
  • trunk/Source/cmake/OptionsEfl.cmake

    r183314 r183416  
    289289        message(FATAL_ERROR "FTL JIT is only available on X86_64 and AArch64 architectures.")
    290290    endif ()
    291     set(HAVE_LLVM ON)
     291    SET_AND_EXPOSE_TO_BUILD(HAVE_LLVM TRUE)
    292292    if (ENABLE_FTL_NATIVE_CALL_INLINING)
    293293        find_package(Clang REQUIRED)
  • trunk/Source/cmake/OptionsGTK.cmake

    r183314 r183416  
    136136endif ()
    137137
     138# FIXME: There is no reason these should be different.
     139SET_AND_EXPOSE_TO_BUILD(DEVELOPMENT_BUILD ${DEVELOPER_MODE})
    138140if (DEVELOPER_MODE)
    139141    WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_MINIBROWSER PUBLIC ON)
     
    199201WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_REQUEST_ANIMATION_FRAME PRIVATE ON)
    200202WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SECCOMP_FILTERS PRIVATE OFF)
     203WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_SMOOTH_SCROLLING PUBLIC ON)
    201204WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_TEMPLATE_ELEMENT PRIVATE ON)
    202205WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_USERSELECT_ALL PRIVATE ON)
     
    211214WEBKIT_OPTION_END()
    212215
    213 if (LIBNOTIFY_FOUND)
    214     add_definitions(-DWTF_USE_LIBNOTIFY=1)
    215 else ()
    216     add_definitions(-DWTF_USE_LIBNOTIFY=0)
    217 endif ()
    218 
    219216if (ENABLE_PLUGIN_PROCESS_GTK2)
    220217    find_package(GTK2 2.24.10 REQUIRED)
    221218    find_package(GDK2 2.24.10 REQUIRED)
    222     add_definitions(-DENABLE_PLUGIN_PROCESS_GTK2=1)
    223 endif ()
    224 
    225 if (ENABLE_X11_TARGET)
    226     add_definitions(-DWTF_PLATFORM_X11=1)
    227     add_definitions(-DMOZ_X11=1)
    228     if (WTF_OS_UNIX)
    229         add_definitions(-DXP_UNIX)
    230     endif ()
    231 endif ()
    232 
    233 if (ENABLE_WAYLAND_TARGET)
    234     add_definitions(-DWTF_PLATFORM_WAYLAND=1)
    235 endif ()
     219endif ()
     220
     221SET_AND_EXPOSE_TO_BUILD(WTF_USE_LIBNOTIFY ${LIBNOTIFY_FOUND})
     222SET_AND_EXPOSE_TO_BUILD(WTF_PLATFORM_X11 ${ENABLE_X11_TARGET})
     223SET_AND_EXPOSE_TO_BUILD(MOZ_X11 ${ENABLE_X11_TARGET})
     224SET_AND_EXPOSE_TO_BUILD(XP_UNIX ${WTF_OS_UNIX})
     225SET_AND_EXPOSE_TO_BUILD(WTF_PLATFORM_WAYLAND ${ENABLE_WAYLAND_TARGET})
    236226
    237227set(ENABLE_WEBKIT OFF)
    238228set(ENABLE_WEBKIT2 ON)
    239229set(ENABLE_PLUGIN_PROCESS ON)
    240 set(ENABLE_SMOOTH_SCROLLING ON)
    241230
    242231set(GDK_VERSION_MIN_REQUIRED GDK_VERSION_3_6)
     
    264253add_definitions(-DWEBKITGTK_API_VERSION_STRING="${WEBKITGTK_API_VERSION}")
    265254
    266 if (DEVELOPER_MODE)
    267     add_definitions(-DDEVELOPMENT_BUILD=1)
    268 endif ()
    269 
    270255if (ENABLE_VIDEO OR ENABLE_WEB_AUDIO)
    271256    set(GSTREAMER_COMPONENTS app pbutils)
    272     add_definitions(-DWTF_USE_GSTREAMER)
     257    SET_AND_EXPOSE_TO_BUILD(WTF_USE_GSTREAMER TRUE)
    273258    if (ENABLE_VIDEO)
    274259        list(APPEND GSTREAMER_COMPONENTS video mpegts tag gl)
     
    277262    if (ENABLE_WEB_AUDIO)
    278263        list(APPEND GSTREAMER_COMPONENTS audio fft)
    279         add_definitions(-DWTF_USE_WEBAUDIO_GSTREAMER)
     264        SET_AND_EXPOSE_TO_BUILD(WTF_USE_WEBAUDIO_GSTREAMER TRUE)
    280265    endif ()
    281266
     
    283268
    284269    if (PC_GSTREAMER_MPEGTS_FOUND)
    285         add_definitions(-DWTF_USE_GSTREAMER_MPEGTS)
    286         set(USE_GSTREAMER_MPEGTS TRUE)
     270        SET_AND_EXPOSE_TO_BUILD(WTF_USE_GSTREAMER_MPEGTS TRUE)
    287271    endif ()
    288272endif ()
     
    308292
    309293if (ENABLE_GEOLOCATION)
    310     if (GEOCLUE2_FOUND)
    311       set(WTF_USE_GEOCLUE2 1)
    312     else ()
    313       set(WTF_USE_GEOCLUE2 0)
    314     endif ()
     294    SET_AND_EXPOSE_TO_BUILD(WTF_USE_GEOCLUE2 ${GEOCLUE2_FOUND})
    315295endif ()
    316296
    317297if (ENABLE_MEDIA_STREAM)
    318298    find_package(OpenWebRTC)
    319     if (OPENWEBRTC_FOUND)
    320         add_definitions(-DWTF_USE_OPENWEBRTC)
    321     endif ()
     299    SET_AND_EXPOSE_TO_BUILD(WTF_USE_OPENWEBRTC ${OPENWEBRTC_FOUND})
    322300endif ()
    323301
    324302find_package(GTKUnixPrint)
    325 if (GTK_UNIX_PRINT_FOUND)
    326     set(HAVE_GTK_UNIX_PRINTING 1)
    327 endif ()
     303SET_AND_EXPOSE_TO_BUILD(HAVE_GTK_UNIX_PRINTING ${GTK_UNIX_PRINT_FOUND})
    328304
    329305if (ENABLE_CREDENTIAL_STORAGE)
     
    331307endif ()
    332308
    333 if (GTK_SUPPORTS_GESTURES)
    334     add_definitions(-DHAVE_GTK_GESTURES=1)
    335 endif ()
     309SET_AND_EXPOSE_TO_BUILD(HAVE_GTK_GESTURES ${GTK_SUPPORTS_GESTURES})
    336310
    337311# This part can be simplified once CMake 2.8.6 is required and
     
    343317    set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${OPENGL_INCLUDE_DIR})
    344318    set(CMAKE_REQUIRED_INCLUDES ${REQUIRED_INCLUDES_OLD})
    345 
    346     if (GLX_FOUND)
    347         set(WTF_USE_GLX 1)
    348     endif ()
    349 endif ()
    350 
    351 if (EGL_FOUND)
    352     set(WTF_USE_EGL 1)
    353319endif ()
    354320
     
    359325if ((OPENGL_FOUND OR OPENGLES2_FOUND) AND (GLX_FOUND OR EGL_FOUND))
    360326    set(ENABLE_TEXTURE_MAPPER 1)
    361     set(WTF_USE_3D_GRAPHICS 1)
    362 
    363     add_definitions(-DWTF_USE_3D_GRAPHICS=1)
    364     add_definitions(-DWTF_USE_TEXTURE_MAPPER=1)
    365     add_definitions(-DWTF_USE_TEXTURE_MAPPER_GL=1)
    366     add_definitions(-DENABLE_3D_RENDERING=1)
     327
     328    SET_AND_EXPOSE_TO_BUILD(WTF_USE_3D_GRAPHICS TRUE)
     329    SET_AND_EXPOSE_TO_BUILD(WTF_USE_TEXTURE_MAPPER TRUE)
     330    SET_AND_EXPOSE_TO_BUILD(WTF_USE_TEXTURE_MAPPER_GL TRUE)
     331    set(ENABLE_3D_RENDERING ON) # This is already exposed by WEBKIT_OPTION_DEFINE.
    367332
    368333    if (ENABLE_X11_TARGET AND USE_REDIRECTED_XCOMPOSITE_WINDOW)
     
    371336
    372337    if (OPENGLES2_FOUND)
    373         set(WTF_USE_OPENGL_ES_2 1)
    374         add_definitions(-DWTF_USE_OPENGL_ES_2=1)
     338        SET_AND_EXPOSE_TO_BUILD(WTF_USE_OPENGL_ES_2 TRUE)
    375339    else ()
    376         set(WTF_USE_OPENGL 1)
    377         add_definitions(-DWTF_USE_OPENGL=1)
    378     endif ()
    379 
    380     if (EGL_FOUND)
    381         add_definitions(-DWTF_USE_EGL=1)
    382     endif ()
    383 
    384     if (GLX_FOUND)
    385         add_definitions(-DWTF_USE_GLX=1)
    386     endif ()
    387 
    388     if (ENABLE_THREADED_COMPOSITOR)
    389         add_definitions(-DWTF_USE_TILED_BACKING_STORE=1)
    390         add_definitions(-DWTF_USE_COORDINATED_GRAPHICS=1)
    391         add_definitions(-DWTF_USE_COORDINATED_GRAPHICS_THREADED=1)
    392     endif ()
    393 
    394     if (PC_GSTREAMER_GL_FOUND)
    395         add_definitions(-DWTF_USE_GSTREAMER_GL)
    396         set(USE_GSTREAMER_GL TRUE)
    397     endif ()
     340        SET_AND_EXPOSE_TO_BUILD(WTF_USE_OPENGL TRUE)
     341    endif ()
     342
     343    SET_AND_EXPOSE_TO_BUILD(WTF_USE_EGL ${EGL_FOUND})
     344    SET_AND_EXPOSE_TO_BUILD(WTF_USE_GLX ${GLX_FOUND})
     345
     346    SET_AND_EXPOSE_TO_BUILD(WTF_USE_TILED_BACKING_STORE ${ENABLE_THREADED_COMPOSITOR})
     347    SET_AND_EXPOSE_TO_BUILD(WTF_USE_COORDINATED_GRAPHICS ${ENABLE_THREADED_COMPOSITOR})
     348    SET_AND_EXPOSE_TO_BUILD(WTF_USE_COORDINATED_GRAPHICS_THREADED ${ENABLE_THREADED_COMPOSITOR})
     349
     350    SET_AND_EXPOSE_TO_BUILD(WTF_USE_GSTREAMER_GL ${PC_GSTREAMER_GL_FOUND})
    398351endif ()
    399352
     
    404357if (ENABLE_FTL_JIT)
    405358    find_package(LLVM REQUIRED)
    406     set(HAVE_LLVM ON)
     359    SET_AND_EXPOSE_TO_BUILD(HAVE_LLVM TRUE)
    407360endif ()
    408361
  • trunk/Source/cmake/WebKitFeatures.cmake

    r183373 r183416  
    1010    set(_WEBKIT_AVAILABLE_OPTIONS_${_name}_DEPENDENCIES "")
    1111    list(APPEND _WEBKIT_AVAILABLE_OPTIONS ${_name})
     12    EXPOSE_VARIABLE_TO_BUILD(${_name})
    1213endmacro()
    1314
     
    8182    WEBKIT_OPTION_DEFINE(ENABLE_IMAGE_DECODER_DOWN_SAMPLING "Toggle image decoder down sampling support" PRIVATE OFF)
    8283    WEBKIT_OPTION_DEFINE(ENABLE_INDEXED_DATABASE "Toggle Indexed Database API support" PRIVATE OFF)
     84    WEBKIT_OPTION_DEFINE(ENABLE_INDEXED_DATABASE_IN_WORKERS "Toggle support for indexed database in workers" PRIVATE OFF)
    8385    WEBKIT_OPTION_DEFINE(ENABLE_INDIE_UI "Toggle Indie UI support" PRIVATE OFF)
    8486    WEBKIT_OPTION_DEFINE(ENABLE_INPUT_TYPE_COLOR "Toggle Color Input support" PRIVATE OFF)
     
    133135    WEBKIT_OPTION_DEFINE(ENABLE_SECCOMP_FILTERS "Toggle Linux seccomp filters for the WebProcess support" PRIVATE OFF)
    134136    WEBKIT_OPTION_DEFINE(ENABLE_SERVICE_CONTROLS "Toggle service controls support" PRIVATE OFF)
     137    WEBKIT_OPTION_DEFINE(ENABLE_SMOOTH_SCROLLING "Toggle smooth scrolling" PRIVATE OFF)
    135138    WEBKIT_OPTION_DEFINE(ENABLE_SPEECH_SYNTHESIS "Toggle Speech Synthesis API support)" PRIVATE OFF)
    136139    WEBKIT_OPTION_DEFINE(ENABLE_SPELLCHECK "Toggle Spellchecking support (requires Enchant)" PRIVATE OFF)
     
    240243    endforeach ()
    241244endmacro()
     245
     246set(_WEBKIT_CONFIG_FILE_VARIABLES "")
     247
     248macro(EXPOSE_VARIABLE_TO_BUILD _variable_name)
     249    list(APPEND _WEBKIT_CONFIG_FILE_VARIABLES ${_variable_name})
     250endmacro()
     251
     252macro(SET_AND_EXPOSE_TO_BUILD _variable_name)
     253    # It's important to handle the case where the value isn't passed, because often
     254    # during configuration an empty variable is the result of a failed package search.
     255    if (${ARGC} GREATER 1)
     256        set(_variable_value ${ARGV1})
     257    else ()
     258        set(_variable_value OFF)
     259    endif ()
     260
     261    set(${_variable_name} ${_variable_value})
     262    EXPOSE_VARIABLE_TO_BUILD(${_variable_name})
     263endmacro()
     264
     265macro(CREATE_CONFIGURATION_HEADER)
     266    list(SORT _WEBKIT_CONFIG_FILE_VARIABLES)
     267    set(_file_contents "#ifndef CMAKECONFIG_H\n")
     268    set(_file_contents "${_file_contents}#define CMAKECONFIG_H\n\n")
     269    foreach (_variable_name ${_WEBKIT_CONFIG_FILE_VARIABLES})
     270        if (${${_variable_name}})
     271            set(_file_contents "${_file_contents}#define ${_variable_name} 1\n")
     272        else ()
     273            set(_file_contents "${_file_contents}#define ${_variable_name} 0\n")
     274        endif ()
     275    endforeach ()
     276    set(_file_contents "${_file_contents}\n#endif /* CMAKECONFIG_H */\n")
     277
     278    file(WRITE "${CMAKE_BINARY_DIR}/cmakeconfig.h.tmp" "${_file_contents}")
     279    execute_process(COMMAND ${CMAKE_COMMAND}
     280        -E copy_if_different
     281        "${CMAKE_BINARY_DIR}/cmakeconfig.h.tmp"
     282        "${CMAKE_BINARY_DIR}/cmakeconfig.h"
     283    )
     284    file(REMOVE "${CMAKE_BINARY_DIR}/cmakeconfig.h.tmp")
     285endmacro()
  • trunk/Tools/ChangeLog

    r183403 r183416  
     12015-04-22  Martin Robinson  <mrobinson@igalia.com>
     2
     3        [CMake] Autogenerate cmakeconfig.h.cmake
     4        https://bugs.webkit.org/show_bug.cgi?id=143997
     5
     6        Reviewed by Csaba Osztrogonác.
     7
     8        * DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt: Add XP_UNIX to the command-line
     9        definitions since TestNetscapePlugIn does not use cmakeconfig.h.
     10
    1112015-04-27  Brent Fulgham  <bfulgham@apple.com>
    212
  • trunk/Tools/DumpRenderTree/TestNetscapePlugIn/CMakeLists.txt

    r174093 r183416  
    4343)
    4444
     45if (WTF_OS_UNIX)
     46    add_definitions(-DXP_UNIX)
     47endif ()
     48
    4549add_library(TestNetscapePlugin SHARED ${WebKitTestNetscapePlugin_SOURCES})
    4650target_link_libraries(TestNetscapePlugin ${WebKitTestNetscapePlugin_LIBRARIES})
Note: See TracChangeset for help on using the changeset viewer.