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 MACRO (GENERATE_FONT_NAMES _infile)
28 SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl)
29 SET(_arguments --fonts ${_infile})
30 SET(_outputfiles ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitFontFamilyNames.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/WebKitFontFamilyNames.h)
33 OUTPUT ${_outputfiles}
34 MAIN_DEPENDENCY ${_infile}
35 DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS}
36 COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR} ${_arguments}
41 MACRO (GENERATE_EVENT_FACTORY _infile _outfile)
42 SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_event_factory.pl)
45 OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_outfile}
46 MAIN_DEPENDENCY ${_infile}
47 DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS}
48 COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --input ${_infile} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR}
53 MACRO (GENERATE_EXCEPTION_CODE_DESCRIPTION _infile _outfile)
54 SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_dom_exceptions.pl)
57 OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_outfile}
58 MAIN_DEPENDENCY ${_infile}
59 DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS}
60 COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --input ${_infile} --outputDir ${DERIVED_SOURCES_WEBCORE_DIR}
65 MACRO (GENERATE_DOM_NAMES _namespace _attrs)
66 SET(NAMES_GENERATOR ${WEBCORE_DIR}/dom/make_names.pl)
67 SET(_arguments --attrs ${_attrs})
68 SET(_outputfiles ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}Names.cpp ${DERIVED_SOURCES_WEBCORE_DIR}/${_namespace}Names.h)
74 SET(_extradef "${_extradef} ${f}")
81 SET(_arguments "${_arguments}" --tags ${_tags} --factory --wrapperFactory)
82 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)
86 SET(_additionArguments "${_additionArguments}" --extraDefines=${_extradef})
90 OUTPUT ${_outputfiles}
91 DEPENDS ${NAMES_GENERATOR} ${SCRIPTS_BINDINGS} ${_attrs} ${_tags}
92 COMMAND ${PERL_EXECUTABLE} -I${WEBCORE_DIR}/bindings/scripts ${NAMES_GENERATOR} --preprocessor "${CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS}" --outputDir ${DERIVED_SOURCES_WEBCORE_DIR} ${_arguments} ${_additionArguments}
97 # - Create hash table *.lut.h
98 # GENERATE_HASH_LUT(input_file output_file)
99 MACRO (GENERATE_HASH_LUT _input _output)
100 SET(HASH_LUT_GENERATOR "${JAVASCRIPTCORE_DIR}/create_hash_table")
102 FOREACH (_tmp ${ARGN})
103 IF (${_tmp} STREQUAL "MAIN_DEPENDENCY")
104 SET(_main_dependency ${_input})
110 MAIN_DEPENDENCY ${_main_dependency}
111 DEPENDS ${_input} ${HASH_LUT_GENERATOR}
112 COMMAND ${PERL_EXECUTABLE} ${HASH_LUT_GENERATOR} ${_input} -i > ${_output}
117 MACRO (GENERATE_GRAMMAR _prefix _input _output_header _output_source)
119 OUTPUT ${_output_header} ${_output_source}
120 MAIN_DEPENDENCY ${_input}
121 COMMAND ${BISON_EXECUTABLE} -p ${_prefix} ${_input} -o ${_output_source} --defines=${_output_header}
125 MACRO(MAKE_HASH_TOOLS _source)
126 GET_FILENAME_COMPONENT(_name ${_source} NAME_WE)
128 IF (${_source} STREQUAL "DocTypeStrings")
129 SET(_hash_tools_h "${DERIVED_SOURCES_WEBCORE_DIR}/HashTools.h")
131 SET(_hash_tools_h "")
135 OUTPUT ${DERIVED_SOURCES_WEBCORE_DIR}/${_name}.cpp ${_hash_tools_h}
136 MAIN_DEPENDENCY ${_source}.gperf
137 COMMAND ${PERL_EXECUTABLE} ${WEBCORE_DIR}/make-hash-tools.pl ${DERIVED_SOURCES_WEBCORE_DIR} ${_source}.gperf
144 MACRO (WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS)
145 INCLUDE_IF_EXISTS(${CMAKE_CURRENT_SOURCE_DIR}/Platform${PORT}.cmake)
148 MACRO (WEBKIT_WRAP_SOURCELIST)
149 FOREACH (_file ${ARGN})
150 GET_FILENAME_COMPONENT(_basename ${_file} NAME_WE)
151 GET_FILENAME_COMPONENT(_path ${_file} PATH)
153 IF (NOT _file MATCHES "${DERIVED_SOURCES_WEBCORE_DIR}")
154 STRING(REGEX REPLACE "/" "\\\\\\\\" _sourcegroup "${_path}")
155 SOURCE_GROUP("${_sourcegroup}" FILES ${_file})
159 SET(_moc_filename ${DERIVED_SOURCES_WEBCORE_DIR}/${_basename}.moc)
161 FILE(READ ${_file} _contents)
163 STRING(REGEX MATCHALL "#include[ ]+\"${_basename}\\.moc\"" _match "${_contents}")
165 QT4_GENERATE_MOC(${_file} ${_moc_filename})
166 ADD_SOURCE_DEPENDENCIES(${_file} ${_moc_filename})
171 SOURCE_GROUP("DerivedSources" REGULAR_EXPRESSION "${DERIVED_SOURCES_WEBCORE_DIR}")
175 MACRO (WEBKIT_CREATE_FORWARDING_HEADER _target_directory _file)
176 GET_FILENAME_COMPONENT(_absolute "${_file}" ABSOLUTE)
177 GET_FILENAME_COMPONENT(_name "${_file}" NAME)
178 SET(_content "#include \"${_absolute}\"\n")
179 SET(_filename "${_target_directory}/${_name}")
181 IF (EXISTS "${_filename}")
182 FILE(READ "${_filename}" _old_content)
185 IF (NOT _old_content STREQUAL _content)
186 FILE(WRITE "${_filename}" "${_content}")
190 MACRO (WEBKIT_CREATE_FORWARDING_HEADERS _framework)
191 SET(_processing_directories 0)
192 SET(_processing_files 0)
193 SET(_target_directory "${DERIVED_SOURCES_DIR}/ForwardingHeaders/${_framework}")
195 FILE(GLOB _files "${_target_directory}/*.h")
196 FOREACH (_file ${_files})
197 FILE(READ "${_file}" _content)
198 STRING(REGEX MATCH "^#include \"([^\"]*)\"" _matched ${_content})
199 IF (_matched AND NOT EXISTS "${CMAKE_MATCH_1}")
200 FILE(REMOVE "${_file}")
204 FOREACH (_currentArg ${ARGN})
205 IF ("${_currentArg}" STREQUAL "DIRECTORIES")
206 SET(_processing_directories 1)
207 SET(_processing_files 0)
208 ELSEIF ("${_currentArg}" STREQUAL "FILES")
209 SET(_processing_directories 0)
210 SET(_processing_files 1)
211 ELSEIF (_processing_directories)
212 FILE(GLOB _files "${_currentArg}/*.h")
213 FOREACH (_file ${_files})
214 WEBKIT_CREATE_FORWARDING_HEADER(${_target_directory} ${_file})
216 ELSEIF (_processing_files)
217 WEBKIT_CREATE_FORWARDING_HEADER(${_target_directory} ${_currentArg})