1 # Copyright (c) 2014 The Chromium Embedded Framework Authors. All rights
2 # reserved. Use of this source code is governed by a BSD-style license that
3 # can be found in the LICENSE file.
9 # cefclient browser sources.
10 set(CEFCLIENT_BROWSER_BROWSER_SRCS
11 browser/binding_test.cc
12 browser/binding_test.h
13 browser/browser_window.cc
14 browser/browser_window.h
15 browser/bytes_write_handler.cc
16 browser/bytes_write_handler.h
17 browser/client_app_delegates_browser.cc
18 browser/client_browser.cc
19 browser/client_browser.h
20 browser/client_handler.cc
21 browser/client_handler.h
22 browser/client_handler_osr.cc
23 browser/client_handler_osr.h
24 browser/client_handler_std.cc
25 browser/client_handler_std.h
26 browser/client_types.h
27 browser/dialog_test.cc
31 browser/main_context.cc
32 browser/main_context.h
33 browser/main_context_impl.cc
34 browser/main_context_impl.h
35 browser/osr_dragdrop_events.h
36 browser/osr_renderer.cc
37 browser/osr_renderer.h
38 browser/preferences_test.cc
39 browser/preferences_test.h
41 browser/response_filter_test.cc
42 browser/response_filter_test.h
43 browser/root_window.cc
45 browser/root_window_create.cc
46 browser/root_window_manager.cc
47 browser/root_window_manager.h
48 browser/scheme_test.cc
51 browser/test_runner.cc
53 browser/urlrequest_test.cc
54 browser/urlrequest_test.h
55 browser/window_test.cc
57 browser/window_test_runner.cc
58 browser/window_test_runner.h
60 source_group(cefclient\\\\browser FILES ${CEFCLIENT_BROWSER_BROWSER_SRCS})
62 set(CEFCLIENT_BROWSER_SHARED_BROWSER_SRCS
63 ../shared/browser/client_app_browser.cc
64 ../shared/browser/client_app_browser.h
65 ../shared/browser/geometry_util.cc
66 ../shared/browser/geometry_util.h
67 ../shared/browser/main_message_loop.cc
68 ../shared/browser/main_message_loop.h
69 ../shared/browser/main_message_loop_external_pump.cc
70 ../shared/browser/main_message_loop_external_pump.h
71 ../shared/browser/main_message_loop_std.cc
72 ../shared/browser/main_message_loop_std.h
73 ../shared/browser/resource_util.cc
74 ../shared/browser/resource_util.h
75 ../shared/browser/resource_util.h
77 source_group(shared\\\\browser FILES ${CEFCLIENT_BROWSER_SHARED_BROWSER_SRCS})
79 set(CEFCLIENT_BROWSER_SRCS
80 ${CEFCLIENT_BROWSER_BROWSER_SRCS}
81 ${CEFCLIENT_BROWSER_SHARED_BROWSER_SRCS}
84 # cefclient common sources.
85 set(CEFCLIENT_COMMON_COMMON_SRCS
86 common/client_app_delegates_common.cc
87 common/scheme_test_common.cc
88 common/scheme_test_common.h
90 source_group(cefclient\\\\common FILES ${CEFCLIENT_COMMON_COMMON_SRCS})
92 set(CEFCLIENT_COMMON_SHARED_COMMON_SRCS
93 ../shared/common/client_app.cc
94 ../shared/common/client_app.h
95 ../shared/common/client_app_other.cc
96 ../shared/common/client_app_other.h
97 ../shared/common/client_switches.cc
98 ../shared/common/client_switches.h
100 source_group(shared\\\\common FILES ${CEFCLIENT_COMMON_SHARED_COMMON_SRCS})
102 set(CEFCLIENT_COMMON_SRCS
103 ${CEFCLIENT_COMMON_COMMON_SRCS}
104 ${CEFCLIENT_COMMON_SHARED_COMMON_SRCS}
107 # cefclient renderer sources.
108 set(CEFCLIENT_RENDERER_RENDERER_SRCS
109 renderer/client_app_delegates_renderer.cc
110 renderer/client_renderer.cc
111 renderer/client_renderer.h
112 renderer/performance_test.cc
113 renderer/performance_test.h
114 renderer/performance_test_setup.h
115 renderer/performance_test_tests.cc
117 source_group(cefclient\\\\renderer FILES ${CEFCLIENT_RENDERER_RENDERER_SRCS})
119 set(CEFCLIENT_RENDERER_SHARED_RENDERER_SRCS
120 ../shared/renderer/client_app_renderer.cc
121 ../shared/renderer/client_app_renderer.h
123 source_group(shared\\\\renderer FILES ${CEFCLIENT_RENDERER_SHARED_RENDERER_SRCS})
125 set(CEFCLIENT_RENDERER_SRCS
126 ${CEFCLIENT_RENDERER_RENDERER_SRCS}
127 ${CEFCLIENT_RENDERER_SHARED_RENDERER_SRCS}
130 #cefclient Linux sources
131 set(CEFCLIENT_LINUX_SRCS
134 source_group(cefclient FILES ${CEFCLIENT_LINUX_SRCS})
136 set(CEFCLIENT_LINUX_BROWSER_SRCS
137 browser/browser_window_osr_gtk.cc
138 browser/browser_window_osr_gtk.h
139 browser/browser_window_std_gtk.cc
140 browser/browser_window_std_gtk.h
141 browser/dialog_handler_gtk.cc
142 browser/dialog_handler_gtk.h
143 browser/main_context_impl_posix.cc
144 browser/print_handler_gtk.cc
145 browser/print_handler_gtk.h
146 browser/resource_util_linux.cc
147 browser/root_window_gtk.cc
148 browser/root_window_gtk.h
149 browser/root_window_views.cc
150 browser/root_window_views.h
151 browser/temp_window_x11.cc
152 browser/temp_window_x11.h
153 browser/views_menu_bar.cc
154 browser/views_menu_bar.h
155 browser/views_style.cc
156 browser/views_style.h
157 browser/views_window.cc
158 browser/views_window.h
159 browser/window_test_runner_gtk.cc
160 browser/window_test_runner_gtk.h
161 browser/window_test_runner_views.cc
162 browser/window_test_runner_views.h
164 source_group(cefclient\\\\browser FILES ${CEFCLIENT_LINUX_BROWSER_SRCS})
166 set(CEFCLIENT_LINUX_SHARED_BROWSER_SRCS
167 ../shared/browser/main_message_loop_external_pump_linux.cc
168 ../shared/browser/resource_util_posix.cc
170 source_group(shared\\\\browser FILES ${CEFCLIENT_LINUX_SHARED_BROWSER_SRCS})
172 set(CEFCLIENT_LINUX_SRCS
173 ${CEFCLIENT_LINUX_SRCS}
174 ${CEFCLIENT_LINUX_BROWSER_SRCS}
175 ${CEFCLIENT_LINUX_SHARED_BROWSER_SRCS}
178 #cefclient Mac OS X sources
179 set(CEFCLIENT_MACOSX_SRCS
182 source_group(cefclient FILES ${CEFCLIENT_MACOSX_SRCS})
184 set(CEFCLIENT_MACOSX_BROWSER_SRCS
185 browser/browser_window_osr_mac.h
186 browser/browser_window_osr_mac.mm
187 browser/browser_window_std_mac.h
188 browser/browser_window_std_mac.mm
189 browser/main_context_impl_posix.cc
190 browser/root_window_mac.h
191 browser/root_window_mac.mm
192 browser/temp_window_mac.h
193 browser/temp_window_mac.mm
194 browser/text_input_client_osr_mac.h
195 browser/text_input_client_osr_mac.mm
196 browser/window_test_runner_mac.h
197 browser/window_test_runner_mac.mm
199 source_group(cefclient\\\\browser FILES ${CEFCLIENT_MACOSX_BROWSER_SRCS})
201 set(CEFCLIENT_MACOSX_SHARED_BROWSER_SRCS
202 ../shared/browser/main_message_loop_external_pump_mac.mm
203 ../shared/browser/resource_util_mac.mm
204 ../shared/browser/resource_util_posix.cc
206 source_group(shared\\\\browser FILES ${CEFCLIENT_MACOSX_SHARED_BROWSER_SRCS})
208 set(CEFCLIENT_MACOSX_SRCS
209 ${CEFCLIENT_MACOSX_SRCS}
210 ${CEFCLIENT_MACOSX_BROWSER_SRCS}
211 ${CEFCLIENT_MACOSX_SHARED_BROWSER_SRCS}
214 # cefclient Mac OS X helper sources.
215 set(CEFCLIENT_HELPER_SHARED_SRCS
216 ../shared/process_helper_mac.cc
218 source_group(shared FILES ${CEFCLIENT_HELPER_SHARED_SRCS})
220 set(CEFCLIENT_MACOSX_HELPER_SRCS
221 ${CEFCLIENT_HELPER_SHARED_SRCS}
224 #cefclient Windows sources
225 set(CEFCLIENT_WINDOWS_SRCS
228 source_group(cefclient FILES ${CEFCLIENT_WINDOWS_SRCS})
230 set(CEFCLIENT_WINDOWS_BROWSER_SRCS
231 browser/browser_window_osr_win.cc
232 browser/browser_window_osr_win.h
233 browser/browser_window_std_win.cc
234 browser/browser_window_std_win.h
235 browser/main_context_impl_win.cc
236 browser/main_message_loop_multithreaded_win.cc
237 browser/main_message_loop_multithreaded_win.h
238 browser/osr_dragdrop_win.cc
239 browser/osr_dragdrop_win.h
240 browser/osr_ime_handler_win.cc
241 browser/osr_ime_handler_win.h
242 browser/osr_window_win.cc
243 browser/osr_window_win.h
244 browser/resource_util_win_idmap.cc
245 browser/root_window_views.cc
246 browser/root_window_views.h
247 browser/root_window_win.cc
248 browser/root_window_win.h
249 browser/temp_window_win.cc
250 browser/temp_window_win.h
251 browser/views_menu_bar.cc
252 browser/views_menu_bar.h
253 browser/views_style.cc
254 browser/views_style.h
255 browser/views_window.cc
256 browser/views_window.h
257 browser/window_test_runner_views.cc
258 browser/window_test_runner_views.h
259 browser/window_test_runner_win.cc
260 browser/window_test_runner_win.h
262 source_group(cefclient\\\\browser FILES ${CEFCLIENT_WINDOWS_BROWSER_SRCS})
264 set(CEFCLIENT_WINDOWS_RESOURCES_WIN_SRCS
265 resources/win/cefclient.exe.manifest
266 resources/win/cefclient.ico
267 resources/win/cefclient.rc
268 resources/win/small.ico
270 source_group(cefclient\\\\resources\\\\win FILES ${CEFCLIENT_WINDOWS_RESOURCES_WIN_SRCS})
272 set(CEFCLIENT_WINDOWS_SHARED_BROWSER_SRCS
273 ../shared/browser/main_message_loop_external_pump_win.cc
274 ../shared/browser/resource_util_win.cc
275 ../shared/browser/util_win.cc
276 ../shared/browser/util_win.h
278 source_group(shared\\\\browser FILES ${CEFCLIENT_WINDOWS_SHARED_BROWSER_SRCS})
280 set(CEFCLIENT_WINDOWS_SRCS
281 ${CEFCLIENT_WINDOWS_SRCS}
282 ${CEFCLIENT_WINDOWS_BROWSER_SRCS}
283 ${CEFCLIENT_WINDOWS_RESOURCES_WIN_SRCS}
284 ${CEFCLIENT_WINDOWS_SHARED_BROWSER_SRCS}
287 # cefclient resources.
288 set(CEFCLIENT_RESOURCES_RESOURCES_SRCS
289 resources/binding.html
290 resources/dialogs.html
291 resources/draggable.html
293 resources/localstorage.html
295 resources/menu_icon.1x.png
296 resources/menu_icon.2x.png
297 resources/other_tests.html
298 resources/performance.html
299 resources/performance2.html
300 resources/preferences.html
301 resources/response_filter.html
302 resources/transparency.html
303 resources/urlrequest.html
304 resources/window.html
305 resources/xmlhttprequest.html
307 source_group(cefclient\\\\resources FILES ${CEFCLIENT_RESOURCES_RESOURCES_SRCS})
309 set(CEFCLIENT_RESOURCES_RESOURCES_MAC_SRCS_MACOSX
310 resources/mac/Info.plist
311 resources/mac/cefclient.icns
313 APPEND_PLATFORM_SOURCES(CEFCLIENT_RESOURCES_RESOURCES_MAC_SRCS)
314 source_group(cefclient\\\\resources\\\\mac FILES ${CEFCLIENT_RESOURCES_RESOURCES_MAC_SRCS})
316 set(CEFCLIENT_RESOURCES_RESOURCES_MAC_ENGLISH_LPROJ_SRCS_MACOSX
317 resources/mac/English.lproj/InfoPlist.strings
318 resources/mac/English.lproj/MainMenu.xib
320 APPEND_PLATFORM_SOURCES(CEFCLIENT_RESOURCES_RESOURCES_MAC_ENGLISH_LPROJ_SRCS)
321 source_group(cefclient\\\\resources\\\\mac\\\\English.lproj FILES ${CEFCLIENT_RESOURCES_RESOURCES_MAC_ENGLISH_LPROJ_SRCS})
323 set(CEFCLIENT_RESOURCES_SHARED_RESOURCES_SRCS
324 ../shared/resources/osr_test.html
325 ../shared/resources/pdf.html
326 ../shared/resources/pdf.pdf
327 ../shared/resources/window_icon.1x.png
328 ../shared/resources/window_icon.2x.png
330 source_group(shared\\\\resources FILES ${CEFCLIENT_RESOURCES_SHARED_RESOURCES_SRCS})
332 set(CEFCLIENT_RESOURCES_SRCS
333 ${CEFCLIENT_RESOURCES_RESOURCES_SRCS}
334 ${CEFCLIENT_RESOURCES_RESOURCES_MAC_SRCS}
335 ${CEFCLIENT_RESOURCES_RESOURCES_MAC_ENGLISH_LPROJ_SRCS}
336 ${CEFCLIENT_RESOURCES_SHARED_RESOURCES_SRCS}
341 # Shared configuration.
344 # Target executable names.
345 set(CEF_TARGET "cefclient")
347 set(CEF_HELPER_TARGET "cefclient Helper")
350 # Logical target used to link the libcef library.
351 ADD_LOGICAL_TARGET("libcef_lib" "${CEF_LIB_DEBUG}" "${CEF_LIB_RELEASE}")
353 # Determine the target output directory.
354 SET_CEF_TARGET_OUT_DIR()
358 # Linux configuration.
362 # All sources required by the "cefclient" target. Generates an executable that
363 # is used for all processes.
365 ${CEFCLIENT_BROWSER_SRCS}
366 ${CEFCLIENT_COMMON_SRCS}
367 ${CEFCLIENT_RENDERER_SRCS}
368 ${CEFCLIENT_RESOURCES_SRCS}
369 ${CEFCLIENT_LINUX_SRCS}
372 # Find required libraries and update compiler/linker variables.
373 FIND_LINUX_LIBRARIES("gmodule-2.0 gtk+-2.0 gthread-2.0 gtk+-unix-print-2.0 gtkglext-1.0")
376 add_executable(${CEF_TARGET} ${CEFCLIENT_SRCS})
377 SET_EXECUTABLE_TARGET_PROPERTIES(${CEF_TARGET})
378 add_dependencies(${CEF_TARGET} libcef_dll_wrapper)
379 target_link_libraries(${CEF_TARGET} libcef_lib libcef_dll_wrapper ${CEF_STANDARD_LIBS})
381 # Set rpath so that libraries can be placed next to the executable.
382 set_target_properties(${CEF_TARGET} PROPERTIES INSTALL_RPATH "$ORIGIN")
383 set_target_properties(${CEF_TARGET} PROPERTIES BUILD_WITH_INSTALL_RPATH TRUE)
384 set_target_properties(${CEF_TARGET} PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CEF_TARGET_OUT_DIR})
386 # Copy CEF binary and resource files to the target output directory.
387 COPY_FILES("${CEF_TARGET}" "${CEF_BINARY_FILES}" "${CEF_BINARY_DIR}" "${CEF_TARGET_OUT_DIR}")
388 COPY_FILES("${CEF_TARGET}" "${CEF_RESOURCE_FILES}" "${CEF_RESOURCE_DIR}" "${CEF_TARGET_OUT_DIR}")
390 # Copy cefclient resource files to the target output directory.
391 COPY_FILES("${CEF_TARGET}" "${CEFCLIENT_RESOURCES_SRCS}" "${CMAKE_CURRENT_SOURCE_DIR}" "${CEF_TARGET_OUT_DIR}/cefclient_files")
393 # Set SUID permissions on the chrome-sandbox target.
394 SET_LINUX_SUID_PERMISSIONS("${CEF_TARGET}" "${CEF_TARGET_OUT_DIR}/chrome-sandbox")
399 # Mac OS X configuration.
403 # All sources required by the "cefclient" target. Generates an app bundle that
404 # is used only for the browser process.
406 ${CEFCLIENT_BROWSER_SRCS}
407 ${CEFCLIENT_COMMON_SRCS}
408 ${CEFCLIENT_RESOURCES_SRCS}
409 ${CEFCLIENT_MACOSX_SRCS}
412 # All sources required by the "cefclient Helper" target. Generates an app
413 # bundle that is used only for non-browser processes.
414 set(CEFCLIENT_HELPER_SRCS
415 ${CEFCLIENT_COMMON_SRCS}
416 ${CEFCLIENT_RENDERER_SRCS}
417 ${CEFCLIENT_MACOSX_HELPER_SRCS}
420 # Output paths for the app bundles.
421 set(CEF_APP "${CEF_TARGET_OUT_DIR}/${CEF_TARGET}.app")
422 set(CEF_HELPER_APP "${CEF_TARGET_OUT_DIR}/${CEF_HELPER_TARGET}.app")
424 # Variable referenced from Info.plist files.
425 set(PRODUCT_NAME "${CEF_TARGET}")
427 # Helper executable target.
428 add_executable(${CEF_HELPER_TARGET} MACOSX_BUNDLE ${CEFCLIENT_HELPER_SRCS})
429 SET_EXECUTABLE_TARGET_PROPERTIES(${CEF_HELPER_TARGET})
430 add_dependencies(${CEF_HELPER_TARGET} libcef_dll_wrapper)
431 target_link_libraries(${CEF_HELPER_TARGET} libcef_lib libcef_dll_wrapper ${CEF_STANDARD_LIBS})
432 set_target_properties(${CEF_HELPER_TARGET} PROPERTIES
433 MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/resources/mac/helper-Info.plist
436 # Fix the framework rpath in the helper executable.
437 FIX_MACOSX_HELPER_FRAMEWORK_RPATH(${CEF_HELPER_TARGET})
439 # Main executable target.
440 add_executable(${CEF_TARGET} MACOSX_BUNDLE ${CEFCLIENT_RESOURCES_SRCS} ${CEFCLIENT_SRCS})
441 SET_EXECUTABLE_TARGET_PROPERTIES(${CEF_TARGET})
442 add_dependencies(${CEF_TARGET} libcef_dll_wrapper "${CEF_HELPER_TARGET}")
443 target_link_libraries(${CEF_TARGET} libcef_lib libcef_dll_wrapper ${CEF_STANDARD_LIBS} "-framework OpenGL")
444 set_target_properties(${CEF_TARGET} PROPERTIES
445 RESOURCE "${CEFCLIENT_RESOURCES_SRCS}"
446 MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/resources/mac/Info.plist
449 # Copy files into the main app bundle.
453 # Copy the helper app bundle into the Frameworks directory.
454 COMMAND ${CMAKE_COMMAND} -E copy_directory
456 "${CEF_APP}/Contents/Frameworks/${CEF_HELPER_TARGET}.app"
457 # Copy the CEF framework into the Frameworks directory.
458 COMMAND ${CMAKE_COMMAND} -E copy_directory
459 "${CEF_BINARY_DIR}/Chromium Embedded Framework.framework"
460 "${CEF_APP}/Contents/Frameworks/Chromium Embedded Framework.framework"
464 # Fix the framework rpath in the main executable.
465 FIX_MACOSX_MAIN_FRAMEWORK_RPATH(${CEF_TARGET})
467 if(NOT ${CMAKE_GENERATOR} STREQUAL "Xcode")
468 # Manually process and copy over resource files.
469 # The Xcode generator handles this via the set_target_properties RESOURCE directive.
470 # Remove these prefixes from input file paths.
474 "../shared/resources/"
476 COPY_MACOSX_RESOURCES("${CEFCLIENT_RESOURCES_SRCS}" "${PREFIXES}" "${CEF_TARGET}" "${CMAKE_CURRENT_SOURCE_DIR}" "${CEF_APP}")
482 # Windows configuration.
486 # All sources required by the "cefclient" target. Generates an executable that
487 # is used for all processes.
489 ${CEFCLIENT_BROWSER_SRCS}
490 ${CEFCLIENT_COMMON_SRCS}
491 ${CEFCLIENT_RENDERER_SRCS}
492 ${CEFCLIENT_RESOURCES_SRCS}
493 ${CEFCLIENT_WINDOWS_SRCS}
497 add_executable(${CEF_TARGET} WIN32 ${CEFCLIENT_SRCS})
498 SET_EXECUTABLE_TARGET_PROPERTIES(${CEF_TARGET})
499 add_dependencies(${CEF_TARGET} libcef_dll_wrapper)
500 target_link_libraries(${CEF_TARGET} libcef_lib libcef_dll_wrapper ${CEF_STANDARD_LIBS} glu32.lib imm32.lib opengl32.lib)
503 # Logical target used to link the cef_sandbox library.
504 ADD_LOGICAL_TARGET("cef_sandbox_lib" "${CEF_SANDBOX_LIB_DEBUG}" "${CEF_SANDBOX_LIB_RELEASE}")
505 target_link_libraries(${CEF_TARGET} cef_sandbox_lib ${CEF_SANDBOX_STANDARD_LIBS})
508 # Add the custom manifest files to the executable.
509 ADD_WINDOWS_MANIFEST("${CMAKE_CURRENT_SOURCE_DIR}/resources/win" "${CEF_TARGET}" "exe")
511 # Copy CEF binary and resource files to the target output directory.
512 COPY_FILES("${CEF_TARGET}" "${CEF_BINARY_FILES}" "${CEF_BINARY_DIR}" "${CEF_TARGET_OUT_DIR}")
513 COPY_FILES("${CEF_TARGET}" "${CEF_RESOURCE_FILES}" "${CEF_RESOURCE_DIR}" "${CEF_TARGET_OUT_DIR}")