[CMAKE] Remove Nix from CMake scripts
[WebKit-https.git] / Source / CMakeLists.txt
index 26477d9..3736eea 100644 (file)
-CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
-PROJECT(WebKit)
-
-# Set a default build type if and only if user did not define one as command
-# line options and he did not give custom CFLAGS or CXXFLAGS. Otherwise, flags
-# from default build type would overwrite user-defined ones.
-IF (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_C_FLAGS AND NOT CMAKE_CXX_FLAGS)
-    SET(CMAKE_BUILD_TYPE Release)
-ENDIF ()
-SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")
-
 # -----------------------------------------------------------------------------
-# Default library type
+# Add module directories
 # -----------------------------------------------------------------------------
-IF (NOT ENABLE_WEBKIT AND NOT ENABLE_WEBKIT2)
-    SET(ENABLE_WEBKIT On)
-ENDIF ()
+add_subdirectory(WTF)
 
-SET(JAVASCRIPTCORE_DIR "${CMAKE_SOURCE_DIR}/JavaScriptCore")
-SET(WEBCORE_DIR "${CMAKE_SOURCE_DIR}/WebCore")
-SET(WEBKIT_DIR "${CMAKE_SOURCE_DIR}/WebKit")
-SET(WEBKIT2_DIR "${CMAKE_SOURCE_DIR}/WebKit2")
+add_subdirectory(JavaScriptCore)
 
-SET(THIRDPARTY_DIR "${CMAKE_SOURCE_DIR}/ThirdParty")
-SET(TOOLS_DIR "${CMAKE_SOURCE_DIR}/../Tools")
+if (ENABLE_API_TESTS)
+    add_subdirectory(cmake/gtest)
+endif ()
 
-SET(DERIVED_SOURCES_DIR "${CMAKE_BINARY_DIR}/DerivedSources")
-SET(DERIVED_SOURCES_JAVASCRIPTCORE_DIR "${CMAKE_BINARY_DIR}/DerivedSources/JavaScriptCore")
-SET(DERIVED_SOURCES_WEBCORE_DIR "${CMAKE_BINARY_DIR}/DerivedSources/WebCore")
-SET(DERIVED_SOURCES_WEBKIT2_DIR "${CMAKE_BINARY_DIR}/DerivedSources/WebKit2")
+if (ENABLE_WEBCORE)
+    add_subdirectory(WebCore)
+endif ()
 
-INCLUDE(WebKitMacros)
-INCLUDE(WebKitFS)
-INCLUDE(WebKitHelpers)
-INCLUDE(WebKitFeatures)
-
-# -----------------------------------------------------------------------------
-# Determine which port will be built
-# -----------------------------------------------------------------------------
-SET(ALL_PORTS Efl WinCE)
-SET(PORT "NOPORT" CACHE STRING "choose which WebKit port to build (one of ${ALL_PORTS})")
+if (ENABLE_WEBKIT)
+    add_subdirectory(WebKit)
+endif ()
 
-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 ()
+if (ENABLE_WEBKIT2)
+    add_subdirectory(WebKit2)
+endif ()
 
-# -----------------------------------------------------------------------------
-# Find common packages (used by all ports)
-# -----------------------------------------------------------------------------
-FIND_PACKAGE(BISON REQUIRED)
-FIND_PACKAGE(FLEX REQUIRED)
-FIND_PACKAGE(Gperf REQUIRED)
-FIND_PACKAGE(Perl REQUIRED)
-FIND_PACKAGE(PythonInterp REQUIRED)
-
-# -----------------------------------------------------------------------------
-# Determine the target processor
-# -----------------------------------------------------------------------------
-STRING(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
-IF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
-    SET(WTF_CPU_ARM 1)
-ELSEIF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
-    SET(WTF_CPU_MIPS 1)
-ELSEIF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64)")
-    SET(WTF_CPU_X86_64 1)
-ELSEIF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|x86)")
-    SET(WTF_CPU_X86 1)
-ELSE ()
-    MESSAGE(FATAL_ERROR "Unknown CPU '${CMAKE_SYSTEM_PROCESSOR}'")
-ENDIF ()
+WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS()
 
 # -----------------------------------------------------------------------------
-# Determine the operating system
-# -----------------------------------------------------------------------------
-IF (CMAKE_SYSTEM_NAME MATCHES "Linux")
-    SET(WTF_OS_UNIX 1)
-
-    IF (APPLE)
-        SET(WTF_OS_MAC_OS_X 1)
-    ENDIF ()
-ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows")
-    SET(WTF_OS_WINDOWS 1)
-ELSE ()
-    MESSAGE(FATAL_ERROR "Unknown OS '${CMAKE_SYSTEM_NAME}'")
-ENDIF ()
-
-# -----------------------------------------------------------------------------
-# Default target names (can be overrriden in Options${PORT}.cmake file)
-# -----------------------------------------------------------------------------
-SET(JSC_EXECUTABLE_NAME JSC)
-SET(WTF_LIBRARY_NAME WTF)
-SET(JavaScriptCore_LIBRARY_NAME JavaScriptCore)
-SET(WebCore_LIBRARY_NAME WebCore)
-SET(WebKit_LIBRARY_NAME WebKit)
-SET(WebKit2_LIBRARY_NAME WebKit2)
-
-# -----------------------------------------------------------------------------
-# Default library types
-# -----------------------------------------------------------------------------
-OPTION(SHARED_CORE "build WTF, JavaScriptCore and WebCore as shared libraries")
-
-IF (SHARED_CORE)
-    SET(WTF_LIBRARY_TYPE SHARED)
-    SET(JavaScriptCore_LIBRARY_TYPE SHARED)
-    SET(WebCore_LIBRARY_TYPE SHARED)
-ELSE ()
-    SET(WTF_LIBRARY_TYPE STATIC)
-    SET(JavaScriptCore_LIBRARY_TYPE STATIC)
-    SET(WebCore_LIBRARY_TYPE STATIC)
-ENDIF ()
-
-SET(WebKit_LIBRARY_TYPE SHARED)
-SET(WebKit2_LIBRARY_TYPE SHARED)
-
-# -----------------------------------------------------------------------------
-# Port-specific options
-# -----------------------------------------------------------------------------
-INCLUDE(OptionsCommon)
-INCLUDE(Options${PORT})
-
-# -----------------------------------------------------------------------------
-# Define packaging
-# -----------------------------------------------------------------------------
-INCLUDE(WebKitPackaging)
-
-# -----------------------------------------------------------------------------
-# Add module directories
+# Set compiler flags for all targets
 # -----------------------------------------------------------------------------
-ADD_SUBDIRECTORY(JavaScriptCore)
-ADD_SUBDIRECTORY(WebCore)
+if (${PORT} STREQUAL "Efl")
+    set(ADDITIONAL_FLAGS ENABLE_WERROR)
+endif ()
 
-IF (ENABLE_WEBKIT)
-    ADD_SUBDIRECTORY(WebKit)
-ENDIF ()
+WEBKIT_SET_EXTRA_COMPILER_FLAGS(WTF ${ADDITIONAL_FLAGS})
+WEBKIT_SET_EXTRA_COMPILER_FLAGS(JavaScriptCore ${ADDITIONAL_FLAGS})
 
-IF (ENABLE_WEBKIT2)
-    ADD_SUBDIRECTORY(WebKit2)
-ENDIF ()
+if (ENABLE_WEBCORE)
+    WEBKIT_SET_EXTRA_COMPILER_FLAGS(WebCoreTestSupport ${ADDITIONAL_FLAGS})
+    WEBKIT_SET_EXTRA_COMPILER_FLAGS(WebCore ${ADDITIONAL_FLAGS})
+endif ()
 
-# -----------------------------------------------------------------------------
-# Add test browser if exists
-# -----------------------------------------------------------------------------
-INCLUDE_IF_EXISTS(${TOOLS_DIR}/CMakeLists${PORT}.txt)
-
-# -----------------------------------------------------------------------------
-# Set compiler flags for all targets
-# -----------------------------------------------------------------------------
-WEBKIT_SET_EXTRA_COMPILER_FLAGS(${WTF_LIBRARY_NAME})
-WEBKIT_SET_EXTRA_COMPILER_FLAGS(${JavaScriptCore_LIBRARY_NAME})
-WEBKIT_SET_EXTRA_COMPILER_FLAGS(${WebCore_LIBRARY_NAME})
-
-IF (ENABLE_WEBKIT)
-    WEBKIT_SET_EXTRA_COMPILER_FLAGS(${WebKit_LIBRARY_NAME})
-ENDIF ()
+if (ENABLE_WEBKIT)
+    WEBKIT_SET_EXTRA_COMPILER_FLAGS(WebKit ${ADDITIONAL_FLAGS})
+endif ()
 
-IF (ENABLE_WEBKIT2)
-    WEBKIT_SET_EXTRA_COMPILER_FLAGS(${WebKit2_LIBRARY_NAME})
-ENDIF ()
+if (ENABLE_WEBKIT2)
+    WEBKIT_SET_EXTRA_COMPILER_FLAGS(WebKit2 ${ADDITIONAL_FLAGS})
+endif ()
 
 # -----------------------------------------------------------------------------
 # Create the configuration file
 # -----------------------------------------------------------------------------
-CONFIGURE_FILE(cmakeconfig.h.cmake ${CMAKE_BINARY_DIR}/cmakeconfig.h @ONLY)
-
-# -----------------------------------------------------------------------------
-# Prints a summary of all enabled/disabled features
-# -----------------------------------------------------------------------------
-WEBKIT_PRINT_FEATURES()
+configure_file(cmakeconfig.h.cmake ${CMAKE_BINARY_DIR}/cmakeconfig.h @ONLY)