blob: de649c4b9aa4e43bf2c5c86d44e85c85764de019 [file] [log] [blame]
find_package(ICU REQUIRED)
find_package(Threads REQUIRED)
set(PROJECT_VERSION_MAJOR 1)
set(PROJECT_VERSION_MINOR 0)
set(PROJECT_VERSION_MICRO 0)
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_MICRO})
WEBKIT_OPTION_BEGIN()
WEBKIT_OPTION_DEFINE(ENABLE_STATIC_JSC "Whether to build JavaScriptCore as a static library." PUBLIC OFF)
WEBKIT_OPTION_DEFAULT_PORT_VALUE(ENABLE_FTL_JIT PUBLIC ON)
WEBKIT_OPTION_END()
set(ALL_EVENT_LOOP_TYPES
GLib
Generic
)
set(DEFAULT_EVENT_LOOP_TYPE "Generic")
set(EVENT_LOOP_TYPE ${DEFAULT_EVENT_LOOP_TYPE} CACHE STRING "Implementation of event loop to be used in JavaScriptCore (one of ${ALL_EVENT_LOOP_TYPES})")
set(ENABLE_WEBCORE OFF)
set(ENABLE_WEBKIT OFF)
set(ENABLE_WEBKIT2 OFF)
set(ENABLE_API_TESTS ON)
if (WTF_CPU_X86 OR WTF_CPU_X86_64)
SET_AND_EXPOSE_TO_BUILD(USE_UDIS86 1)
endif ()
if (ENABLE_STATIC_JSC)
set(JavaScriptCore_LIBRARY_TYPE STATIC)
endif ()
string(TOLOWER ${EVENT_LOOP_TYPE} LOWERCASE_EVENT_LOOP_TYPE)
if (LOWERCASE_EVENT_LOOP_TYPE STREQUAL "glib")
find_package(GLIB 2.36 REQUIRED COMPONENTS gio gobject)
SET_AND_EXPOSE_TO_BUILD(USE_GLIB 1)
SET_AND_EXPOSE_TO_BUILD(USE_GLIB_EVENT_LOOP 1)
SET_AND_EXPOSE_TO_BUILD(WTF_DEFAULT_EVENT_LOOP 0)
else ()
SET_AND_EXPOSE_TO_BUILD(USE_GENERIC_EVENT_LOOP 1)
SET_AND_EXPOSE_TO_BUILD(WTF_DEFAULT_EVENT_LOOP 0)
endif ()
# From OptionsGTK.cmake
if (CMAKE_MAJOR_VERSION LESS 3)
# Before CMake 3 it was necessary to use a build script instead of using cmake --build directly
# to preserve colors and pretty-printing.
build_command(COMMAND_LINE_TO_BUILD)
# build_command unconditionally adds -i (ignore errors) for make, and there's
# no reasonable way to turn that off, so we just replace it with -k, which has
# the same effect, except that the return code will indicate that an error occurred.
# See: http://www.cmake.org/cmake/help/v3.0/command/build_command.html
string(REPLACE " -i" " -k" COMMAND_LINE_TO_BUILD ${COMMAND_LINE_TO_BUILD})
file(WRITE
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/build.sh
"#!/bin/sh\n"
"${COMMAND_LINE_TO_BUILD} $@"
)
file(COPY ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/build.sh
DESTINATION ${CMAKE_BINARY_DIR}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE
)
endif ()