1
MACRO (INCLUDE_IF_EXISTS _file)
3
MESSAGE(STATUS "Using platform-specific CMakeLists: ${_file}")
6
MESSAGE(STATUS "Platform-specific CMakeLists not found: ${_file}")
11
# Append the given dependencies to the source file
12
MACRO (ADD_SOURCE_DEPENDENCIES _source _deps)
14
GET_SOURCE_FILE_PROPERTY(_tmp ${_source} OBJECT_DEPENDS)
20
LIST(APPEND _tmp "${f}")
23
SET_SOURCE_FILES_PROPERTIES(${_source} PROPERTIES OBJECT_DEPENDS "${_tmp}")
27
# Helper macro which wraps generate-bindings.pl script.
28
# _output_source is a list name which will contain generated sources.(eg. WebCore_SOURCES)
29
# _input_files are IDL files to generate.
30
# _base_dir is base directory where script is called.
31
# _idl_includes is value of --include argument. (eg. --include=${WEBCORE_DIR}/bindings/js)
32
# _features is a value of --defines argument.
33
# _destination is a value of --outputDir argument.
34
# _prefix is a prefix of output files. (eg. JS - it makes JSXXX.cpp JSXXX.h from XXX.idl)
35
# _generator is a value of --generator argument.
36
# _supplemental_dependency_file is a value of --supplementalDependencyFile. (optional)
37
MACRO (GENERATE_BINDINGS _output_source _input_files _base_dir _idl_includes _features _destination _prefix _generator)
38
SET(BINDING_GENERATOR ${WEBCORE_DIR}/bindings/scripts/generate-bindings.pl)
40
SET(_supplemental_dependency_file ${ARGN})
41
IF (_supplemental_dependency_file)
42
SET(_supplemental_dependency --supplementalDependencyFile ${_supplemental_dependency_file})
45
FOREACH (_file ${_input_files})
46
GET_FILENAME_COMPONENT (_name ${_file} NAME_WE)
49
OUTPUT ${_destination}/${_prefix}${_name}.cpp ${_destination}/${_prefix}${_name}.h
50
MAIN_DEPENDENCY ${_file}
51
DEPENDS ${BINDING_GENERATOR} ${SCRIPTS_BINDINGS} ${_supplemental_dependency_file}
52
COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${BINDING_GENERATOR} --defines "${_features}" --generator ${_generator} ${_idl_includes} --outputDir "${_destination}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" ${_supplemental_dependency} ${_file}
53
WORKING_DIRECTORY ${_base_dir}
56
LIST(APPEND ${_output_source} ${_destination}/${_prefix}${_name}.cpp)
61
MACRO (GENERATE_FONT_NAMES _infile)
62
SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl)
63
SET(_arguments --fonts ${_infile})
64
SET(_outputfiles ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitFontFamilyNames.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitFontFamilyNames.h)
67
OUTPUT ${_outputfiles}
68
MAIN_DEPENDENCY ${_infile}
69
DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS}
70
COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR} ${_arguments}
75
MACRO (GENERATE_EVENT_FACTORY _infile _outfile)
76
SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_event_factory.pl)
79
OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_outfile}
80
MAIN_DEPENDENCY ${_infile}
81
DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS}
82
COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --input ${_infile} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR}
87
MACRO (GENERATE_EXCEPTION_CODE_DESCRIPTION _infile _outfile)
88
SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_dom_exceptions.pl)
91
OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_outfile}
92
MAIN_DEPENDENCY ${_infile}
93
DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS}
94
COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --input ${_infile} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR}
99
MACRO (GENERATE_SETTINGS_MACROS _infile _outfile)
100
SET(NAMES_GENERATOR ${WEBCORE_DIR}/page/make_settings.pl)
103
OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_outfile}
104
MAIN_DEPENDENCY ${_infile}
105
DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS}
106
COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --input ${_infile} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR}
111
MACRO (GENERATE_DOM_NAMES _namespace _attrs)
112
SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl)
113
SET(_arguments --attrs ${_attrs})
114
SET(_outputfiles ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}Names.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}Names.h)
120
SET(_extradef "${_extradef} ${f}")
127
SET(_arguments "${_arguments}" --tags ${_tags} --factory --wrapperFactory)
128
SET(_outputfiles "${_outputfiles}" ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}ElementFactory.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}ElementFactory.h ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_namespace}ElementWrapperFactory.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/JS${_namespace}ElementWrapperFactory.h)
132
SET(_additionArguments "${_additionArguments}" --extraDefines=${_extradef})
136
OUTPUT ${_outputfiles}
137
DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} ${_attrs} ${_tags}
138
COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --preprocessor "${CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS}" --outputDir ${DERIVED_SOURCES_WEBCORE_DIR} ${_arguments} ${_additionArguments}
143
# - Create hash table *.lut.h
144
# GENERATE_HASH_LUT(input_file output_file)
145
MACRO (GENERATE_HASH_LUT _input _output)
146
SET(HASH_LUT_GENERATOR "${JAVASCRIPTCORE_DIR}/create_hash_table")
148
FOREACH (_tmp ${ARGN})
149
IF (${_tmp} STREQUAL "MAIN_DEPENDENCY")
150
SET(_main_dependency ${_input})
156
MAIN_DEPENDENCY ${_main_dependency}
157
DEPENDS ${_input} ${HASH_LUT_GENERATOR}
158
COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} -i > ${_output}
163
MACRO (GENERATE_GRAMMAR _prefix _input _output_header _output_source _features)
164
# This is a workaround for winflexbison, which does not work corretly when
165
# run in a different working directory than the installation directory.
166
GET_FILENAME_COMPONENT(_working_directory ${BISON_EXECUTABLE} PATH)
169
OUTPUT ${_output_header} ${_output_source}
170
MAIN_DEPENDENCY ${_input}
172
COMMAND ${PERL_EXECUTABLE} -I ${WEBCORE_DIR}/bindings/scripts ${WEBCORE_DIR}/css/makegrammar.pl --outputDir ${DERIVED_SOURCES_WEBCORE_DIR} --extraDefines "${_features}" --preprocessor "${CODE_GENERATOR_PREPROCESSOR}" --bison "${BISON_EXECUTABLE}" --symbolsPrefix ${_prefix} ${_input}
173
WORKING_DIRECTORY ${_working_directory}
177
MACRO(MAKE_HASH_TOOLS _source)
178
GET_FILENAME_COMPONENT(_name ${_source} NAME_WE)
180
IF (${_source} STREQUAL "DocTypeStrings")
181
SET(_hash_tools_h "${DERIVED_SOURCES_WEBCORE_DIR}/HashTools.h")
183
SET(_hash_tools_h "")
187
OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}.cpp ${_hash_tools_h}
188
MAIN_DEPENDENCY ${_source}.gperf
189
COMMAND ${PERL_EXECUTABLE} ${WEBCORE_DIR}/make-hash-tools.pl ${DERIVED_SOURCES_WEBCORE_DIR} ${_source}.gperf
196
MACRO (WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS)
197
INCLUDE_IF_EXISTS(${CMAKE_CURRENT_SOURCE_DIR}/Platform${PORT}.cmake)
200
MACRO (WEBKIT_WRAP_SOURCELIST)
201
FOREACH (_file ${ARGN})
202
GET_FILENAME_COMPONENT(_basename ${_file} NAME_WE)
203
GET_FILENAME_COMPONENT(_path ${_file} PATH)
205
IF (NOT _file MATCHES "${DERIVED_SOURCES_WEBCORE_DIR}")
206
STRING(REGEX REPLACE "/" "\\\\\\\\" _sourcegroup "${_path}")
207
SOURCE_GROUP("${_sourcegroup}" FILES ${_file})
211
SET(_moc_filename ${DERIVED_SOURCES_WEBCORE_DIR}/${_basename}.moc)
213
FILE(READ ${_file} _contents)
215
STRING(REGEX MATCHALL "#include[ ]+\"${_basename}\\.moc\"" _match "${_contents}")
217
QT4_GENERATE_MOC(${_file} ${_moc_filename})
218
ADD_SOURCE_DEPENDENCIES(${_file} ${_moc_filename})
223
SOURCE_GROUP("DerivedSources" REGULAR_EXPRESSION "${DERIVED_SOURCES_WEBCORE_DIR}")
227
MACRO (WEBKIT_CREATE_FORWARDING_HEADER _target_directory _file)
228
GET_FILENAME_COMPONENT(_absolute "${_file}" ABSOLUTE)
229
GET_FILENAME_COMPONENT(_name "${_file}" NAME)
230
SET(_content "#include \"${_absolute}\"\n")
231
SET(_filename "${_target_directory}/${_name}")
233
IF (EXISTS "${_filename}")
234
FILE(READ "${_filename}" _old_content)
237
IF (NOT _old_content STREQUAL _content)
238
FILE(WRITE "${_filename}" "${_content}")
242
MACRO (WEBKIT_CREATE_FORWARDING_HEADERS _framework)
243
SET(_processing_directories 0)
244
SET(_processing_files 0)
245
SET(_target_directory "${DERIVED_SOURCES_DIR}/ForwardingHeaders/${_framework}")
247
FILE(GLOB _files "${_target_directory}/*.h")
248
FOREACH (_file ${_files})
249
FILE(READ "${_file}" _content)
250
STRING(REGEX MATCH "^#include \"([^\"]*)\"" _matched ${_content})
251
IF (_matched AND NOT EXISTS "${CMAKE_MATCH_1}")
252
FILE(REMOVE "${_file}")
256
FOREACH (_currentArg ${ARGN})
257
IF ("${_currentArg}" STREQUAL "DIRECTORIES")
258
SET(_processing_directories 1)
259
SET(_processing_files 0)
260
ELSEIF ("${_currentArg}" STREQUAL "FILES")
261
SET(_processing_directories 0)
262
SET(_processing_files 1)
263
ELSEIF (_processing_directories)
264
FILE(GLOB _files "${_currentArg}/*.h")
265
FOREACH (_file ${_files})
266
WEBKIT_CREATE_FORWARDING_HEADER(${_target_directory} ${_file})
268
ELSEIF (_processing_files)
269
WEBKIT_CREATE_FORWARDING_HEADER(${_target_directory} ${_currentArg})