Title: [268991] trunk
- Revision
- 268991
- Author
- [email protected]
- Date
- 2020-10-26 12:54:45 -0700 (Mon, 26 Oct 2020)
Log Message
Move some initialization code from top-level CMakeLists.txt to WebKitCommon.cmake
https://bugs.webkit.org/show_bug.cgi?id=218069
<rdar://problem/70556952>
Reviewed by Fujii Hironori.
Moving this initialization code into a central location allows other
top-level CMakeLists.txt files to include WebKitCommon.cmake and get
that same initialization.
* CMakeLists.txt:
* Source/cmake/WebKitCommon.cmake:
Modified Paths
Diff
Modified: trunk/CMakeLists.txt (268990 => 268991)
--- trunk/CMakeLists.txt 2020-10-26 18:41:09 UTC (rev 268990)
+++ trunk/CMakeLists.txt 2020-10-26 19:54:45 UTC (rev 268991)
@@ -1,175 +1,18 @@
# -----------------------------------------------------------------------------
# Determine CMake version and build type.
# -----------------------------------------------------------------------------
-#
# NOTE: cmake_minimum_required() and project() *MUST* be the two first commands
# used, see https://cmake.org/cmake/help/v3.3/command/project.html -- the
# latter in particular handles loading a bunch of shared CMake definitions
# and loading the cross-compilation settings from CMAKE_TOOLCHAIN_FILE.
#
-
cmake_minimum_required(VERSION 3.10)
-
project(WebKit)
-if (NOT CMAKE_BUILD_TYPE)
- message(WARNING "No CMAKE_BUILD_TYPE value specified, defaulting to RelWithDebInfo.")
- set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build." FORCE)
-else ()
- message(STATUS "The CMake build type is: ${CMAKE_BUILD_TYPE}")
-endif ()
-
-set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/Source/cmake")
-
-set(ENABLE_WEBCORE ON)
-
-if (NOT DEFINED ENABLE_WEBKIT)
- set(ENABLE_WEBKIT ON)
-endif ()
-
-if (NOT DEFINED ENABLE_TOOLS AND EXISTS "${CMAKE_SOURCE_DIR}/Tools")
- set(ENABLE_TOOLS ON)
-endif ()
-
-if (NOT DEFINED ENABLE_WEBINSPECTORUI)
- set(ENABLE_WEBINSPECTORUI ON)
-endif ()
-
# -----------------------------------------------------------------------------
-# Determine which port will be built
-# -----------------------------------------------------------------------------
-set(ALL_PORTS
- AppleWin
- Efl
- FTW
- GTK
- JSCOnly
- Mac
- PlayStation
- WPE
- WinCairo
-)
-set(PORT "NOPORT" CACHE STRING "choose which WebKit port to build (one of ${ALL_PORTS})")
-
-list(FIND ALL_PORTS ${PORT} RET)
-if (${RET} EQUAL -1)
- message(FATAL_ERROR "Please choose which WebKit port to build (one of ${ALL_PORTS})")
-endif ()
-
-string(TOLOWER ${PORT} WEBKIT_PORT_DIR)
-
-# -----------------------------------------------------------------------------
-# Determine the compiler
-# -----------------------------------------------------------------------------
-if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang")
- set(COMPILER_IS_CLANG ON)
-endif ()
-
-if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
- if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "7.3.0")
- message(FATAL_ERROR "GCC 7.3 or newer is required to build WebKit. Use a newer GCC version or Clang.")
- endif ()
-endif ()
-
-if (CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG)
- set(COMPILER_IS_GCC_OR_CLANG ON)
-endif ()
-
-if (MSVC AND COMPILER_IS_CLANG)
- set(COMPILER_IS_CLANG_CL ON)
-endif ()
-
-# -----------------------------------------------------------------------------
-# Determine the target processor
-# -----------------------------------------------------------------------------
-# Use MSVC_CXX_ARCHITECTURE_ID instead of CMAKE_SYSTEM_PROCESSOR when defined,
-# since the later one just resolves to the host processor on Windows.
-if (MSVC_CXX_ARCHITECTURE_ID)
- string(TOLOWER ${MSVC_CXX_ARCHITECTURE_ID} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
-else ()
- string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
-endif ()
-if (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(^aarch64|^arm64)")
- set(WTF_CPU_ARM64 1)
-elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
- set(WTF_CPU_ARM 1)
-elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips64")
- set(WTF_CPU_MIPS64 1)
-elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
- set(WTF_CPU_MIPS 1)
-elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x64|x86_64|amd64)")
- # FORCE_32BIT is set in the build script when --32-bit is passed
- # on a Linux/intel 64bit host. This allows us to produce 32bit
- # binaries without setting the build up as a crosscompilation,
- # which is the only way to modify CMAKE_SYSTEM_PROCESSOR.
- if (FORCE_32BIT)
- set(WTF_CPU_X86 1)
- else ()
- set(WTF_CPU_X86_64 1)
- endif ()
-elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|x86)")
- set(WTF_CPU_X86 1)
-elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc")
- set(WTF_CPU_PPC 1)
-elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64")
- set(WTF_CPU_PPC64 1)
-elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le")
- set(WTF_CPU_PPC64LE 1)
-else ()
- set(WTF_CPU_UNKNOWN 1)
-endif ()
-
-# -----------------------------------------------------------------------------
-# Determine the operating system
-# -----------------------------------------------------------------------------
-if (UNIX)
- if (APPLE)
- set(WTF_OS_MAC_OS_X 1)
- elseif (CMAKE_SYSTEM_NAME MATCHES "Linux")
- set(WTF_OS_LINUX 1)
- else ()
- set(WTF_OS_UNIX 1)
- endif ()
-elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
- set(WTF_OS_WINDOWS 1)
-elseif (CMAKE_SYSTEM_NAME MATCHES "Fuchsia")
- set(WTF_OS_FUCHSIA 1)
-else ()
- message(FATAL_ERROR "Unknown OS '${CMAKE_SYSTEM_NAME}'")
-endif ()
-
-# -----------------------------------------------------------------------------
-# Default library types
-# -----------------------------------------------------------------------------
-# By default, only the highest-level libraries, WebKitLegacy and WebKit, are
-# shared, because properly building shared libraries that depend on each other
-# can be tricky. Override these in Options*.cmake for your port as needed.
-set(bmalloc_LIBRARY_TYPE STATIC)
-set(WTF_LIBRARY_TYPE STATIC)
-set(_javascript_Core_LIBRARY_TYPE STATIC)
-set(PAL_LIBRARY_TYPE STATIC)
-set(WebCore_LIBRARY_TYPE STATIC)
-set(WebKitLegacy_LIBRARY_TYPE SHARED)
-set(WebKit_LIBRARY_TYPE SHARED)
-set(WebCoreTestSupport_LIBRARY_TYPE STATIC)
-
-set(CMAKE_POSITION_INDEPENDENT_CODE True)
-
-# -----------------------------------------------------------------------------
-# Install _javascript_ shell
-# -----------------------------------------------------------------------------
-option(SHOULD_INSTALL_JS_SHELL "generate an installation rule to install the built _javascript_ shell")
-
-# -----------------------------------------------------------------------------
-# Default output directories, which can be overwritten by ports
-#------------------------------------------------------------------------------
-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
-
-# -----------------------------------------------------------------------------
# Common configuration
#------------------------------------------------------------------------------
+set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/Source/cmake")
include(WebKitCommon)
# -----------------------------------------------------------------------------
Modified: trunk/ChangeLog (268990 => 268991)
--- trunk/ChangeLog 2020-10-26 18:41:09 UTC (rev 268990)
+++ trunk/ChangeLog 2020-10-26 19:54:45 UTC (rev 268991)
@@ -1,3 +1,18 @@
+2020-10-26 Keith Rollin <[email protected]>
+
+ Move some initialization code from top-level CMakeLists.txt to WebKitCommon.cmake
+ https://bugs.webkit.org/show_bug.cgi?id=218069
+ <rdar://problem/70556952>
+
+ Reviewed by Fujii Hironori.
+
+ Moving this initialization code into a central location allows other
+ top-level CMakeLists.txt files to include WebKitCommon.cmake and get
+ that same initialization.
+
+ * CMakeLists.txt:
+ * Source/cmake/WebKitCommon.cmake:
+
2020-10-23 Philippe Normand <[email protected]>
[GStreamer] Replace USE(WEBAUDIO_GSTREAMER) with USE(GSTREAMER)
Modified: trunk/Source/cmake/WebKitCommon.cmake (268990 => 268991)
--- trunk/Source/cmake/WebKitCommon.cmake 2020-10-26 18:41:09 UTC (rev 268990)
+++ trunk/Source/cmake/WebKitCommon.cmake 2020-10-26 19:54:45 UTC (rev 268991)
@@ -6,7 +6,160 @@
if (NOT HAS_RUN_WEBKIT_COMMON)
set(HAS_RUN_WEBKIT_COMMON TRUE)
+ if (NOT CMAKE_BUILD_TYPE)
+ message(WARNING "No CMAKE_BUILD_TYPE value specified, defaulting to RelWithDebInfo.")
+ set(CMAKE_BUILD_TYPE "RelWithDebInfo" CACHE STRING "Choose the type of build." FORCE)
+ else ()
+ message(STATUS "The CMake build type is: ${CMAKE_BUILD_TYPE}")
+ endif ()
+
+ set(ENABLE_WEBCORE ON)
+
+ if (NOT DEFINED ENABLE_WEBKIT)
+ set(ENABLE_WEBKIT ON)
+ endif ()
+
+ if (NOT DEFINED ENABLE_TOOLS AND EXISTS "${CMAKE_SOURCE_DIR}/Tools")
+ set(ENABLE_TOOLS ON)
+ endif ()
+
+ if (NOT DEFINED ENABLE_WEBINSPECTORUI)
+ set(ENABLE_WEBINSPECTORUI ON)
+ endif ()
+
# -----------------------------------------------------------------------------
+ # Determine which port will be built
+ # -----------------------------------------------------------------------------
+ set(ALL_PORTS
+ AppleWin
+ Efl
+ FTW
+ GTK
+ JSCOnly
+ Mac
+ PlayStation
+ WPE
+ WinCairo
+ )
+ set(PORT "NOPORT" CACHE STRING "choose which WebKit port to build (one of ${ALL_PORTS})")
+
+ list(FIND ALL_PORTS ${PORT} RET)
+ if (${RET} EQUAL -1)
+ message(FATAL_ERROR "Please choose which WebKit port to build (one of ${ALL_PORTS})")
+ endif ()
+
+ string(TOLOWER ${PORT} WEBKIT_PORT_DIR)
+
+ # -----------------------------------------------------------------------------
+ # Determine the compiler
+ # -----------------------------------------------------------------------------
+ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang")
+ set(COMPILER_IS_CLANG ON)
+ endif ()
+
+ if (${CMAKE_CXX_COMPILER_ID} STREQUAL "GNU")
+ if (${CMAKE_CXX_COMPILER_VERSION} VERSION_LESS "7.3.0")
+ message(FATAL_ERROR "GCC 7.3 or newer is required to build WebKit. Use a newer GCC version or Clang.")
+ endif ()
+ endif ()
+
+ if (CMAKE_COMPILER_IS_GNUCXX OR COMPILER_IS_CLANG)
+ set(COMPILER_IS_GCC_OR_CLANG ON)
+ endif ()
+
+ if (MSVC AND COMPILER_IS_CLANG)
+ set(COMPILER_IS_CLANG_CL ON)
+ endif ()
+
+ # -----------------------------------------------------------------------------
+ # Determine the target processor
+ # -----------------------------------------------------------------------------
+ # Use MSVC_CXX_ARCHITECTURE_ID instead of CMAKE_SYSTEM_PROCESSOR when defined,
+ # since the later one just resolves to the host processor on Windows.
+ if (MSVC_CXX_ARCHITECTURE_ID)
+ string(TOLOWER ${MSVC_CXX_ARCHITECTURE_ID} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
+ else ()
+ string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
+ endif ()
+ if (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(^aarch64|^arm64)")
+ set(WTF_CPU_ARM64 1)
+ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
+ set(WTF_CPU_ARM 1)
+ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips64")
+ set(WTF_CPU_MIPS64 1)
+ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
+ set(WTF_CPU_MIPS 1)
+ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x64|x86_64|amd64)")
+ # FORCE_32BIT is set in the build script when --32-bit is passed
+ # on a Linux/intel 64bit host. This allows us to produce 32bit
+ # binaries without setting the build up as a crosscompilation,
+ # which is the only way to modify CMAKE_SYSTEM_PROCESSOR.
+ if (FORCE_32BIT)
+ set(WTF_CPU_X86 1)
+ else ()
+ set(WTF_CPU_X86_64 1)
+ endif ()
+ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|x86)")
+ set(WTF_CPU_X86 1)
+ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc")
+ set(WTF_CPU_PPC 1)
+ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64")
+ set(WTF_CPU_PPC64 1)
+ elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "ppc64le")
+ set(WTF_CPU_PPC64LE 1)
+ else ()
+ set(WTF_CPU_UNKNOWN 1)
+ endif ()
+
+ # -----------------------------------------------------------------------------
+ # Determine the operating system
+ # -----------------------------------------------------------------------------
+ if (UNIX)
+ if (APPLE)
+ set(WTF_OS_MAC_OS_X 1)
+ elseif (CMAKE_SYSTEM_NAME MATCHES "Linux")
+ set(WTF_OS_LINUX 1)
+ else ()
+ set(WTF_OS_UNIX 1)
+ endif ()
+ elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
+ set(WTF_OS_WINDOWS 1)
+ elseif (CMAKE_SYSTEM_NAME MATCHES "Fuchsia")
+ set(WTF_OS_FUCHSIA 1)
+ else ()
+ message(FATAL_ERROR "Unknown OS '${CMAKE_SYSTEM_NAME}'")
+ endif ()
+
+ # -----------------------------------------------------------------------------
+ # Default library types
+ # -----------------------------------------------------------------------------
+ # By default, only the highest-level libraries, WebKitLegacy and WebKit, are
+ # shared, because properly building shared libraries that depend on each other
+ # can be tricky. Override these in Options*.cmake for your port as needed.
+ set(bmalloc_LIBRARY_TYPE STATIC)
+ set(WTF_LIBRARY_TYPE STATIC)
+ set(_javascript_Core_LIBRARY_TYPE STATIC)
+ set(PAL_LIBRARY_TYPE STATIC)
+ set(WebCore_LIBRARY_TYPE STATIC)
+ set(WebKitLegacy_LIBRARY_TYPE SHARED)
+ set(WebKit_LIBRARY_TYPE SHARED)
+ set(WebCoreTestSupport_LIBRARY_TYPE STATIC)
+
+ set(CMAKE_POSITION_INDEPENDENT_CODE True)
+
+ # -----------------------------------------------------------------------------
+ # Install _javascript_ shell
+ # -----------------------------------------------------------------------------
+ option(SHOULD_INSTALL_JS_SHELL "generate an installation rule to install the built _javascript_ shell")
+
+ # -----------------------------------------------------------------------------
+ # Default output directories, which can be overwritten by ports
+ #------------------------------------------------------------------------------
+ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+ set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+
+ # -----------------------------------------------------------------------------
# Find common packages (used by all ports)
# -----------------------------------------------------------------------------
if (WIN32)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes