CMakeLists.txt 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503
  1. set(SOURCES
  2. Bindings/CSSStyleDeclarationWrapperCustom.cpp
  3. Bindings/EventListenerWrapper.cpp
  4. Bindings/EventTargetWrapperFactory.cpp
  5. Bindings/EventWrapperFactory.cpp
  6. Bindings/HTMLCollectionWrapperCustom.cpp
  7. Bindings/ImageConstructor.cpp
  8. Bindings/LocationObject.cpp
  9. Bindings/MainThreadVM.cpp
  10. Bindings/NavigatorObject.cpp
  11. Bindings/NodeWrapperFactory.cpp
  12. Bindings/ScriptExecutionContext.cpp
  13. Bindings/WindowObject.cpp
  14. Bindings/Wrappable.cpp
  15. CSS/CSSImportRule.cpp
  16. CSS/CSSRule.cpp
  17. CSS/CSSStyleDeclaration.cpp
  18. CSS/CSSStyleRule.cpp
  19. CSS/CSSStyleSheet.cpp
  20. CSS/ComputedCSSStyleDeclaration.cpp
  21. CSS/DefaultStyleSheetSource.cpp
  22. CSS/Length.cpp
  23. CSS/MediaQueryList.cpp
  24. CSS/Parser/Parser.cpp
  25. CSS/Parser/StyleRules.cpp
  26. CSS/Parser/Token.cpp
  27. CSS/Parser/Tokenizer.cpp
  28. CSS/PropertyID.cpp
  29. CSS/PropertyID.h
  30. CSS/QuirksModeStyleSheetSource.cpp
  31. CSS/Screen.cpp
  32. CSS/Selector.cpp
  33. CSS/SelectorEngine.cpp
  34. CSS/StyleInvalidator.cpp
  35. CSS/StyleProperties.cpp
  36. CSS/StyleResolver.cpp
  37. CSS/StyleSheet.cpp
  38. CSS/StyleSheetList.cpp
  39. CSS/StyleValue.cpp
  40. CSS/ValueID.cpp
  41. CSS/ValueID.h
  42. Cookie/ParsedCookie.cpp
  43. DOM/AbortController.cpp
  44. DOM/AbortSignal.cpp
  45. DOM/CharacterData.cpp
  46. DOM/CharacterData.idl
  47. DOM/Comment.cpp
  48. DOM/DOMImplementation.cpp
  49. DOM/Document.cpp
  50. DOM/DocumentFragment.cpp
  51. DOM/DocumentType.cpp
  52. DOM/Element.cpp
  53. DOM/ElementFactory.cpp
  54. DOM/Event.cpp
  55. DOM/EventDispatcher.cpp
  56. DOM/EventListener.cpp
  57. DOM/EventTarget.cpp
  58. DOM/HTMLCollection.cpp
  59. DOM/Node.cpp
  60. DOM/ParentNode.cpp
  61. DOM/Position.cpp
  62. DOM/ProcessingInstruction.cpp
  63. DOM/Range.cpp
  64. DOM/ShadowRoot.cpp
  65. DOM/Text.cpp
  66. DOM/Text.idl
  67. DOM/Timer.cpp
  68. DOM/Window.cpp
  69. DOMTreeModel.cpp
  70. Dump.cpp
  71. FontCache.cpp
  72. HTML/AttributeNames.cpp
  73. HTML/BrowsingContextContainer.cpp
  74. HTML/CanvasRenderingContext2D.cpp
  75. HTML/DOMParser.cpp
  76. HTML/EventLoop/EventLoop.cpp
  77. HTML/EventLoop/Task.cpp
  78. HTML/EventLoop/TaskQueue.cpp
  79. HTML/EventNames.cpp
  80. HTML/FormAssociatedElement.cpp
  81. HTML/GlobalEventHandlers.cpp
  82. HTML/History.cpp
  83. HTML/HTMLAnchorElement.cpp
  84. HTML/HTMLAreaElement.cpp
  85. HTML/HTMLAudioElement.cpp
  86. HTML/HTMLBRElement.cpp
  87. HTML/HTMLBaseElement.cpp
  88. HTML/HTMLBlinkElement.cpp
  89. HTML/HTMLBodyElement.cpp
  90. HTML/HTMLButtonElement.cpp
  91. HTML/HTMLCanvasElement.cpp
  92. HTML/HTMLDListElement.cpp
  93. HTML/HTMLDataElement.cpp
  94. HTML/HTMLDataListElement.cpp
  95. HTML/HTMLDetailsElement.cpp
  96. HTML/HTMLDialogElement.cpp
  97. HTML/HTMLDirectoryElement.cpp
  98. HTML/HTMLDivElement.cpp
  99. HTML/HTMLElement.cpp
  100. HTML/HTMLEmbedElement.cpp
  101. HTML/HTMLFieldSetElement.cpp
  102. HTML/HTMLFontElement.cpp
  103. HTML/HTMLFormElement.cpp
  104. HTML/HTMLFrameElement.cpp
  105. HTML/HTMLFrameSetElement.cpp
  106. HTML/HTMLHRElement.cpp
  107. HTML/HTMLHeadElement.cpp
  108. HTML/HTMLHeadingElement.cpp
  109. HTML/HTMLHtmlElement.cpp
  110. HTML/HTMLIFrameElement.cpp
  111. HTML/HTMLImageElement.cpp
  112. HTML/HTMLInputElement.cpp
  113. HTML/HTMLLIElement.cpp
  114. HTML/HTMLLabelElement.cpp
  115. HTML/HTMLLegendElement.cpp
  116. HTML/HTMLLinkElement.cpp
  117. HTML/HTMLMapElement.cpp
  118. HTML/HTMLMarqueeElement.cpp
  119. HTML/HTMLMediaElement.cpp
  120. HTML/HTMLMenuElement.cpp
  121. HTML/HTMLMetaElement.cpp
  122. HTML/HTMLMeterElement.cpp
  123. HTML/HTMLModElement.cpp
  124. HTML/HTMLOListElement.cpp
  125. HTML/HTMLObjectElement.cpp
  126. HTML/HTMLOptGroupElement.cpp
  127. HTML/HTMLOptionElement.cpp
  128. HTML/HTMLOutputElement.cpp
  129. HTML/HTMLParagraphElement.cpp
  130. HTML/HTMLParamElement.cpp
  131. HTML/HTMLPictureElement.cpp
  132. HTML/HTMLPreElement.cpp
  133. HTML/HTMLProgressElement.cpp
  134. HTML/HTMLQuoteElement.cpp
  135. HTML/HTMLScriptElement.cpp
  136. HTML/HTMLSelectElement.cpp
  137. HTML/HTMLSlotElement.cpp
  138. HTML/HTMLSourceElement.cpp
  139. HTML/HTMLSpanElement.cpp
  140. HTML/HTMLStyleElement.cpp
  141. HTML/HTMLTableCaptionElement.cpp
  142. HTML/HTMLTableCellElement.cpp
  143. HTML/HTMLTableColElement.cpp
  144. HTML/HTMLTableElement.cpp
  145. HTML/HTMLTableRowElement.cpp
  146. HTML/HTMLTableSectionElement.cpp
  147. HTML/HTMLTemplateElement.cpp
  148. HTML/HTMLTextAreaElement.cpp
  149. HTML/HTMLTimeElement.cpp
  150. HTML/HTMLTitleElement.cpp
  151. HTML/HTMLTrackElement.cpp
  152. HTML/HTMLUListElement.cpp
  153. HTML/HTMLUnknownElement.cpp
  154. HTML/HTMLVideoElement.cpp
  155. HTML/ImageData.cpp
  156. HTML/Parser/Entities.cpp
  157. HTML/Parser/HTMLDocumentParser.cpp
  158. HTML/Parser/HTMLEncodingDetection.cpp
  159. HTML/Parser/HTMLToken.cpp
  160. HTML/Parser/HTMLTokenizer.cpp
  161. HTML/Parser/ListOfActiveFormattingElements.cpp
  162. HTML/Parser/StackOfOpenElements.cpp
  163. HTML/Scripting/ClassicScript.cpp
  164. HTML/Scripting/Script.cpp
  165. HTML/SubmitEvent.cpp
  166. HTML/SyntaxHighlighter/SyntaxHighlighter.cpp
  167. HTML/TagNames.cpp
  168. HTML/WebSocket.cpp
  169. HighResolutionTime/Performance.cpp
  170. InProcessWebView.cpp
  171. Layout/BlockBox.cpp
  172. Layout/BlockFormattingContext.cpp
  173. Layout/Box.cpp
  174. Layout/BoxModelMetrics.cpp
  175. Layout/BreakNode.cpp
  176. Layout/ButtonBox.cpp
  177. Layout/CanvasBox.cpp
  178. Layout/CheckBox.cpp
  179. Layout/FlexFormattingContext.cpp
  180. Layout/FormattingContext.cpp
  181. Layout/FrameBox.cpp
  182. Layout/ImageBox.cpp
  183. Layout/InitialContainingBlock.cpp
  184. Layout/InlineFormattingContext.cpp
  185. Layout/InlineNode.cpp
  186. Layout/Label.cpp
  187. Layout/LayoutPosition.cpp
  188. Layout/LineBox.cpp
  189. Layout/LineBoxFragment.cpp
  190. Layout/ListItemBox.cpp
  191. Layout/ListItemMarkerBox.cpp
  192. Layout/Node.cpp
  193. Layout/RadioButton.cpp
  194. Layout/ReplacedBox.cpp
  195. Layout/SVGBox.cpp
  196. Layout/SVGGraphicsBox.cpp
  197. Layout/SVGPathBox.cpp
  198. Layout/SVGSVGBox.cpp
  199. Layout/TableBox.cpp
  200. Layout/TableCellBox.cpp
  201. Layout/TableFormattingContext.cpp
  202. Layout/TableRowBox.cpp
  203. Layout/TableRowGroupBox.cpp
  204. Layout/TextNode.cpp
  205. Layout/TreeBuilder.cpp
  206. LayoutTreeModel.cpp
  207. Loader/CSSLoader.cpp
  208. Loader/ContentFilter.cpp
  209. Loader/FrameLoader.cpp
  210. Loader/ImageLoader.cpp
  211. Loader/ImageResource.cpp
  212. Loader/LoadRequest.cpp
  213. Loader/Resource.cpp
  214. Loader/ResourceLoader.cpp
  215. Namespace.cpp
  216. NavigationTiming/PerformanceTiming.cpp
  217. OutOfProcessWebView.cpp
  218. Page/BrowsingContext.cpp
  219. Page/EditEventHandler.cpp
  220. Page/EventHandler.cpp
  221. Page/Page.cpp
  222. Painting/BorderPainting.cpp
  223. Painting/StackingContext.cpp
  224. SVG/SVGElement.cpp
  225. SVG/SVGGeometryElement.cpp
  226. SVG/SVGGraphicsElement.cpp
  227. SVG/SVGPathElement.cpp
  228. SVG/SVGSVGElement.cpp
  229. SVG/TagNames.cpp
  230. StylePropertiesModel.cpp
  231. UIEvents/EventNames.cpp
  232. UIEvents/MouseEvent.cpp
  233. URLEncoder.cpp
  234. WebAssembly/WebAssemblyInstanceConstructor.cpp
  235. WebAssembly/WebAssemblyInstanceObject.cpp
  236. WebAssembly/WebAssemblyInstanceObjectPrototype.cpp
  237. WebAssembly/WebAssemblyMemoryConstructor.cpp
  238. WebAssembly/WebAssemblyMemoryPrototype.cpp
  239. WebAssembly/WebAssemblyModuleConstructor.cpp
  240. WebAssembly/WebAssemblyModuleObject.cpp
  241. WebAssembly/WebAssemblyObject.cpp
  242. WebAssembly/WebAssemblyTableConstructor.cpp
  243. WebAssembly/WebAssemblyTableObject.cpp
  244. WebAssembly/WebAssemblyTablePrototype.cpp
  245. WebContentClient.cpp
  246. XHR/EventNames.cpp
  247. XHR/XMLHttpRequest.cpp
  248. )
  249. set(GENERATED_SOURCES
  250. ../../Services/RequestServer/RequestClientEndpoint.h
  251. ../../Services/RequestServer/RequestServerEndpoint.h
  252. ../../Services/WebContent/WebContentClientEndpoint.h
  253. ../../Services/WebContent/WebContentServerEndpoint.h
  254. )
  255. serenity_lib(LibWeb web)
  256. target_link_libraries(LibWeb LibCore LibJS LibMarkdown LibGemini LibGUI LibGfx LibTextCodec LibProtocol LibImageDecoderClient LibWasm)
  257. function(libweb_js_wrapper class)
  258. get_filename_component(basename "${class}" NAME)
  259. set(BINDINGS_SOURCES
  260. "Bindings/${basename}Wrapper.h"
  261. "Bindings/${basename}Wrapper.cpp"
  262. "Bindings/${basename}Constructor.h"
  263. "Bindings/${basename}Constructor.cpp"
  264. "Bindings/${basename}Prototype.h"
  265. "Bindings/${basename}Prototype.cpp"
  266. )
  267. set(BINDINGS_TYPES
  268. header
  269. implementation
  270. constructor-header
  271. constructor-implementation
  272. prototype-header
  273. prototype-implementation
  274. )
  275. target_sources(LibWeb PRIVATE ${BINDINGS_SOURCES})
  276. # FIXME: cmake_minimum_required(3.17) for ZIP_LISTS
  277. list(LENGTH BINDINGS_SOURCES num_bindings)
  278. math(EXPR bindings_end "${num_bindings} - 1")
  279. foreach(iter RANGE "${bindings_end}")
  280. list(GET BINDINGS_SOURCES ${iter} bindings_src)
  281. list(GET BINDINGS_TYPES ${iter} bindings_type)
  282. add_custom_command(
  283. OUTPUT "${bindings_src}"
  284. COMMAND "$<TARGET_FILE:WrapperGenerator>" "--${bindings_type}" "${CMAKE_CURRENT_SOURCE_DIR}/${class}.idl" > "${bindings_src}.tmp"
  285. COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${bindings_src}.tmp" "${bindings_src}"
  286. COMMAND "${CMAKE_COMMAND}" -E remove "${bindings_src}.tmp"
  287. VERBATIM
  288. DEPENDS WrapperGenerator
  289. MAIN_DEPENDENCY ${class}.idl
  290. )
  291. endforeach()
  292. add_custom_target(generate_${basename}Wrapper.h DEPENDS Bindings/${basename}Wrapper.h)
  293. add_dependencies(all_generated generate_${basename}Wrapper.h)
  294. add_custom_target(generate_${basename}Wrapper.cpp DEPENDS Bindings/${basename}Wrapper.cpp)
  295. add_dependencies(all_generated generate_${basename}Wrapper.cpp)
  296. add_custom_target(generate_${basename}Constructor.h DEPENDS Bindings/${basename}Constructor.h)
  297. add_dependencies(all_generated generate_${basename}Constructor.h)
  298. add_custom_target(generate_${basename}Constructor.cpp DEPENDS Bindings/${basename}Constructor.cpp)
  299. add_dependencies(all_generated generate_${basename}Constructor.cpp)
  300. add_custom_target(generate_${basename}Prototype.h DEPENDS Bindings/${basename}Prototype.h)
  301. add_dependencies(all_generated generate_${basename}Prototype.h)
  302. add_custom_target(generate_${basename}Prototype.cpp DEPENDS Bindings/${basename}Prototype.cpp)
  303. add_dependencies(all_generated generate_${basename}Prototype.cpp)
  304. endfunction()
  305. libweb_js_wrapper(CSS/CSSStyleDeclaration)
  306. libweb_js_wrapper(CSS/CSSStyleSheet)
  307. libweb_js_wrapper(CSS/MediaQueryList)
  308. libweb_js_wrapper(CSS/Screen)
  309. libweb_js_wrapper(CSS/StyleSheet)
  310. libweb_js_wrapper(CSS/StyleSheetList)
  311. libweb_js_wrapper(DOM/AbortController)
  312. libweb_js_wrapper(DOM/AbortSignal)
  313. libweb_js_wrapper(DOM/CharacterData)
  314. libweb_js_wrapper(DOM/Comment)
  315. libweb_js_wrapper(DOM/Document)
  316. libweb_js_wrapper(DOM/DocumentFragment)
  317. libweb_js_wrapper(DOM/DocumentType)
  318. libweb_js_wrapper(DOM/DOMException)
  319. libweb_js_wrapper(DOM/DOMImplementation)
  320. libweb_js_wrapper(DOM/Element)
  321. libweb_js_wrapper(DOM/Event)
  322. libweb_js_wrapper(DOM/EventTarget)
  323. libweb_js_wrapper(DOM/HTMLCollection)
  324. libweb_js_wrapper(DOM/ProcessingInstruction)
  325. libweb_js_wrapper(DOM/ShadowRoot)
  326. libweb_js_wrapper(DOM/Node)
  327. libweb_js_wrapper(DOM/Range)
  328. libweb_js_wrapper(DOM/Text)
  329. libweb_js_wrapper(HTML/CanvasRenderingContext2D)
  330. libweb_js_wrapper(HTML/CloseEvent)
  331. libweb_js_wrapper(HTML/DOMParser)
  332. libweb_js_wrapper(HTML/History)
  333. libweb_js_wrapper(HTML/HTMLAnchorElement)
  334. libweb_js_wrapper(HTML/HTMLAreaElement)
  335. libweb_js_wrapper(HTML/HTMLAudioElement)
  336. libweb_js_wrapper(HTML/HTMLBaseElement)
  337. libweb_js_wrapper(HTML/HTMLBodyElement)
  338. libweb_js_wrapper(HTML/HTMLBRElement)
  339. libweb_js_wrapper(HTML/HTMLButtonElement)
  340. libweb_js_wrapper(HTML/HTMLCanvasElement)
  341. libweb_js_wrapper(HTML/HTMLDataElement)
  342. libweb_js_wrapper(HTML/HTMLDataListElement)
  343. libweb_js_wrapper(HTML/HTMLDetailsElement)
  344. libweb_js_wrapper(HTML/HTMLDialogElement)
  345. libweb_js_wrapper(HTML/HTMLDirectoryElement)
  346. libweb_js_wrapper(HTML/HTMLDivElement)
  347. libweb_js_wrapper(HTML/HTMLDListElement)
  348. libweb_js_wrapper(HTML/HTMLElement)
  349. libweb_js_wrapper(HTML/HTMLEmbedElement)
  350. libweb_js_wrapper(HTML/HTMLFieldSetElement)
  351. libweb_js_wrapper(HTML/HTMLFontElement)
  352. libweb_js_wrapper(HTML/HTMLFormElement)
  353. libweb_js_wrapper(HTML/HTMLFrameElement)
  354. libweb_js_wrapper(HTML/HTMLFrameSetElement)
  355. libweb_js_wrapper(HTML/HTMLHeadElement)
  356. libweb_js_wrapper(HTML/HTMLHeadingElement)
  357. libweb_js_wrapper(HTML/HTMLHRElement)
  358. libweb_js_wrapper(HTML/HTMLHtmlElement)
  359. libweb_js_wrapper(HTML/HTMLIFrameElement)
  360. libweb_js_wrapper(HTML/HTMLImageElement)
  361. libweb_js_wrapper(HTML/HTMLInputElement)
  362. libweb_js_wrapper(HTML/HTMLLabelElement)
  363. libweb_js_wrapper(HTML/HTMLLegendElement)
  364. libweb_js_wrapper(HTML/HTMLLIElement)
  365. libweb_js_wrapper(HTML/HTMLLinkElement)
  366. libweb_js_wrapper(HTML/HTMLMapElement)
  367. libweb_js_wrapper(HTML/HTMLMarqueeElement)
  368. libweb_js_wrapper(HTML/HTMLMediaElement)
  369. libweb_js_wrapper(HTML/HTMLMenuElement)
  370. libweb_js_wrapper(HTML/HTMLMetaElement)
  371. libweb_js_wrapper(HTML/HTMLMeterElement)
  372. libweb_js_wrapper(HTML/HTMLModElement)
  373. libweb_js_wrapper(HTML/HTMLObjectElement)
  374. libweb_js_wrapper(HTML/HTMLOListElement)
  375. libweb_js_wrapper(HTML/HTMLOptGroupElement)
  376. libweb_js_wrapper(HTML/HTMLOptionElement)
  377. libweb_js_wrapper(HTML/HTMLOutputElement)
  378. libweb_js_wrapper(HTML/HTMLParagraphElement)
  379. libweb_js_wrapper(HTML/HTMLParamElement)
  380. libweb_js_wrapper(HTML/HTMLPictureElement)
  381. libweb_js_wrapper(HTML/HTMLPreElement)
  382. libweb_js_wrapper(HTML/HTMLProgressElement)
  383. libweb_js_wrapper(HTML/HTMLQuoteElement)
  384. libweb_js_wrapper(HTML/HTMLScriptElement)
  385. libweb_js_wrapper(HTML/HTMLSelectElement)
  386. libweb_js_wrapper(HTML/HTMLSlotElement)
  387. libweb_js_wrapper(HTML/HTMLSourceElement)
  388. libweb_js_wrapper(HTML/HTMLSpanElement)
  389. libweb_js_wrapper(HTML/HTMLStyleElement)
  390. libweb_js_wrapper(HTML/HTMLTableCaptionElement)
  391. libweb_js_wrapper(HTML/HTMLTableCellElement)
  392. libweb_js_wrapper(HTML/HTMLTableColElement)
  393. libweb_js_wrapper(HTML/HTMLTableElement)
  394. libweb_js_wrapper(HTML/HTMLTableRowElement)
  395. libweb_js_wrapper(HTML/HTMLTableSectionElement)
  396. libweb_js_wrapper(HTML/HTMLTemplateElement)
  397. libweb_js_wrapper(HTML/HTMLTextAreaElement)
  398. libweb_js_wrapper(HTML/HTMLTimeElement)
  399. libweb_js_wrapper(HTML/HTMLTitleElement)
  400. libweb_js_wrapper(HTML/HTMLTrackElement)
  401. libweb_js_wrapper(HTML/HTMLUListElement)
  402. libweb_js_wrapper(HTML/HTMLUnknownElement)
  403. libweb_js_wrapper(HTML/HTMLVideoElement)
  404. libweb_js_wrapper(HTML/ImageData)
  405. libweb_js_wrapper(HTML/MessageEvent)
  406. libweb_js_wrapper(HTML/SubmitEvent)
  407. libweb_js_wrapper(HTML/WebSocket)
  408. libweb_js_wrapper(HighResolutionTime/Performance)
  409. libweb_js_wrapper(NavigationTiming/PerformanceTiming)
  410. libweb_js_wrapper(SVG/SVGElement)
  411. libweb_js_wrapper(SVG/SVGGeometryElement)
  412. libweb_js_wrapper(SVG/SVGGraphicsElement)
  413. libweb_js_wrapper(SVG/SVGPathElement)
  414. libweb_js_wrapper(SVG/SVGSVGElement)
  415. libweb_js_wrapper(UIEvents/MouseEvent)
  416. libweb_js_wrapper(UIEvents/UIEvent)
  417. libweb_js_wrapper(XHR/ProgressEvent)
  418. libweb_js_wrapper(XHR/XMLHttpRequest)
  419. libweb_js_wrapper(XHR/XMLHttpRequestEventTarget)
  420. add_custom_command(
  421. OUTPUT CSS/PropertyID.h
  422. COMMAND ${CMAKE_COMMAND} -E make_directory CSS
  423. COMMAND "$<TARGET_FILE:Generate_CSS_PropertyID_h>" "${CMAKE_CURRENT_SOURCE_DIR}/CSS/Properties.json" > CSS/PropertyID.h.tmp
  424. COMMAND "${CMAKE_COMMAND}" -E copy_if_different CSS/PropertyID.h.tmp CSS/PropertyID.h
  425. COMMAND "${CMAKE_COMMAND}" -E remove CSS/PropertyID.h.tmp
  426. VERBATIM
  427. DEPENDS Generate_CSS_PropertyID_h
  428. MAIN_DEPENDENCY CSS/Properties.json
  429. )
  430. add_custom_target(generate_PropertyID.h DEPENDS CSS/PropertyID.h)
  431. add_dependencies(all_generated generate_PropertyID.h)
  432. add_custom_command(
  433. OUTPUT CSS/PropertyID.cpp
  434. COMMAND ${CMAKE_COMMAND} -E make_directory CSS
  435. COMMAND "$<TARGET_FILE:Generate_CSS_PropertyID_cpp>" "${CMAKE_CURRENT_SOURCE_DIR}/CSS/Properties.json" > CSS/PropertyID.cpp.tmp
  436. COMMAND "${CMAKE_COMMAND}" -E copy_if_different CSS/PropertyID.cpp.tmp CSS/PropertyID.cpp
  437. COMMAND "${CMAKE_COMMAND}" -E remove CSS/PropertyID.cpp.tmp
  438. VERBATIM
  439. DEPENDS Generate_CSS_PropertyID_cpp
  440. MAIN_DEPENDENCY CSS/Properties.json
  441. )
  442. add_custom_target(generate_PropertyID.cpp DEPENDS CSS/PropertyID.cpp)
  443. add_dependencies(all_generated generate_PropertyID.cpp)
  444. add_custom_command(
  445. OUTPUT CSS/ValueID.h
  446. COMMAND "${CMAKE_COMMAND}" -E make_directory CSS
  447. COMMAND "$<TARGET_FILE:Generate_CSS_ValueID_h>" "${CMAKE_CURRENT_SOURCE_DIR}/CSS/Identifiers.json" > CSS/ValueID.h.tmp
  448. COMMAND "${CMAKE_COMMAND}" -E copy_if_different CSS/ValueID.h.tmp CSS/ValueID.h
  449. COMMAND "${CMAKE_COMMAND}" -E remove CSS/ValueID.h.tmp
  450. VERBATIM
  451. DEPENDS Generate_CSS_ValueID_h
  452. MAIN_DEPENDENCY CSS/Identifiers.json
  453. )
  454. add_custom_target(generate_ValueID.h DEPENDS CSS/ValueID.h)
  455. add_dependencies(all_generated generate_ValueID.h)
  456. add_custom_command(
  457. OUTPUT CSS/ValueID.cpp
  458. COMMAND "${CMAKE_COMMAND}" -E make_directory CSS
  459. COMMAND "$<TARGET_FILE:Generate_CSS_ValueID_cpp>" "${CMAKE_CURRENT_SOURCE_DIR}/CSS/Identifiers.json" > CSS/ValueID.cpp.tmp
  460. COMMAND "${CMAKE_COMMAND}" -E copy_if_different CSS/ValueID.cpp.tmp CSS/ValueID.cpp
  461. COMMAND "${CMAKE_COMMAND}" -E remove CSS/ValueID.cpp.tmp
  462. VERBATIM
  463. DEPENDS Generate_CSS_ValueID_cpp
  464. MAIN_DEPENDENCY CSS/Identifiers.json
  465. )
  466. add_custom_target(generate_ValueID.cpp DEPENDS CSS/ValueID.cpp)
  467. add_dependencies(all_generated generate_ValueID.cpp)
  468. add_custom_command(
  469. OUTPUT CSS/DefaultStyleSheetSource.cpp
  470. COMMAND "${CMAKE_COMMAND}" -E make_directory CSS
  471. COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/Scripts/GenerateStyleSheetSource.sh" default_stylesheet_source "${CMAKE_CURRENT_SOURCE_DIR}/CSS/Default.css" > CSS/DefaultStyleSheetSource.cpp.tmp
  472. COMMAND "${CMAKE_COMMAND}" -E copy_if_different CSS/DefaultStyleSheetSource.cpp.tmp CSS/DefaultStyleSheetSource.cpp
  473. COMMAND "${CMAKE_COMMAND}" -E remove CSS/DefaultStyleSheetSource.cpp.tmp
  474. VERBATIM
  475. DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/Scripts/GenerateStyleSheetSource.sh"
  476. MAIN_DEPENDENCY CSS/Default.css
  477. )
  478. add_custom_target(generate_DefaultStyleSheetSource.cpp DEPENDS CSS/DefaultStyleSheetSource.cpp)
  479. add_dependencies(all_generated generate_DefaultStyleSheetSource.cpp)
  480. add_custom_command(
  481. OUTPUT CSS/QuirksModeStyleSheetSource.cpp
  482. COMMAND "${CMAKE_COMMAND}" -E make_directory CSS
  483. COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/Scripts/GenerateStyleSheetSource.sh" quirks_mode_stylesheet_source "${CMAKE_CURRENT_SOURCE_DIR}/CSS/QuirksMode.css" > CSS/QuirksModeStyleSheetSource.cpp.tmp
  484. COMMAND "${CMAKE_COMMAND}" -E copy_if_different CSS/QuirksModeStyleSheetSource.cpp.tmp CSS/QuirksModeStyleSheetSource.cpp
  485. COMMAND "${CMAKE_COMMAND}" -E remove CSS/QuirksModeStyleSheetSource.cpp.tmp
  486. VERBATIM
  487. DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/Scripts/GenerateStyleSheetSource.sh"
  488. MAIN_DEPENDENCY CSS/Default.css
  489. )
  490. add_custom_target(generate_QuirksModeStyleSheetSource.cpp DEPENDS CSS/QuirksModeStyleSheetSource.cpp)
  491. add_dependencies(all_generated generate_QuirksModeStyleSheetSource.cpp)
  492. add_subdirectory(DumpLayoutTree)