# Copyright (c) 2014 The Chromium Embedded Framework Authors. All rights # reserved. Use of this source code is governed by a BSD-style license that # can be found in the LICENSE file. # OVERVIEW # # CMake is a cross-platform open-source build system that can generate project # files in many different formats. It can be downloaded from # http://www.cmake.org or installed via a platform package manager. # # CMake-generated project formats that have been tested with this CEF binary # distribution include: # # Linux: Ninja, Unix Makefiles # MacOS: Ninja, Xcode 8+ (x86_64) or Xcode 12.2+ (ARM64) # Windows: Ninja, Visual Studio 2015+ # # Ninja is a cross-platform open-source tool for running fast builds using # pre-installed platform toolchains (GNU, clang, Xcode or MSVC). It can be # downloaded from http://martine.github.io/ninja/ or installed via a platform # package manager. # # CMAKE STRUCTURE # # This CEF binary distribution includes the following CMake files: # # CMakeLists.txt Bootstrap that sets up the CMake environment. # cmake/*.cmake CEF configuration files shared by all targets. # libcef_dll/CMakeLists.txt Defines the libcef_dll_wrapper target. # tests/*/CMakeLists.txt Defines the test application target. # # See the "TODO:" comments below for guidance on how to integrate this CEF # binary distribution into a new or existing CMake project. # # BUILD REQUIREMENTS # # The below requirements must be met to build this CEF binary distribution. # # - CMake version 2.8.12.1 or newer. # # - Linux requirements: # Currently supported distributions include Debian Wheezy, Ubuntu Precise, and # related. Ubuntu 18.04 64-bit is recommended. Newer versions will likely also # work but may not have been tested. # Required packages include: # build-essential # libgtk2.0-dev (required by the cefclient target only) # libgtkglext1-dev (required by the cefclient target only) # # - MacOS requirements: # Xcode 8 or newer building on MacOS 10.11 (El Capitan) or newer for x86_64. # Xcode 12.2 or newer building on MacOS 10.15.4 (Catalina) or newer for ARM64. # Only 64-bit builds are supported. The Xcode command-line tools must also be # installed. # # - Windows requirements: # Visual Studio 2015 Update 2 or newer building on Windows 7 or newer. Visual # Studio 2019 and Windows 10 64-bit are recommended. # # BUILD EXAMPLES # # The below commands will generate project files and create a Debug build of all # CEF targets using CMake and the platform toolchain. # # Start by creating and entering the CMake build output directory: # > cd path/to/cef_binary_* # > mkdir build && cd build # # To perform a Linux build using a 32-bit CEF binary distribution on a 32-bit # Linux platform or a 64-bit CEF binary distribution on a 64-bit Linux platform: # Using Unix Makefiles: # > cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug .. # > make -j4 cefclient cefsimple # # Using Ninja: # > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug .. # > ninja cefclient cefsimple # # To perform a MacOS build using a 64-bit CEF binary distribution: # Using the Xcode IDE: # > cmake -G "Xcode" -DPROJECT_ARCH="x86_64" .. # Open build\cef.xcodeproj in Xcode and select Product > Build. # # Using Ninja: # > cmake -G "Ninja" -DPROJECT_ARCH="x86_64" -DCMAKE_BUILD_TYPE=Debug .. # > ninja cefclient cefsimple # # To perform a MacOS build using an ARM64 CEF binary distribution: # Using the Xcode IDE: # > cmake -G "Xcode" -DPROJECT_ARCH="arm64" .. # Open build\cef.xcodeproj in Xcode and select Product > Build. # # Using Ninja: # > cmake -G "Ninja" -DPROJECT_ARCH="arm64" -DCMAKE_BUILD_TYPE=Debug .. # > ninja cefclient cefsimple # # To perform a Windows build using a 32-bit CEF binary distribution: # Using the Visual Studio 2019 IDE: # > cmake -G "Visual Studio 16" -A Win32 .. # Open build\cef.sln in Visual Studio and select Build > Build Solution. # # Using Ninja with Visual Studio 2019 command-line tools: # (this path may be different depending on your Visual Studio installation) # > "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars32.bat" # > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug .. # > ninja cefclient cefsimple # # To perform a Windows build using a 64-bit CEF binary distribution: # Using the Visual Studio 2019 IDE: # > cmake -G "Visual Studio 16" -A x64 .. # Open build\cef.sln in Visual Studio and select Build > Build Solution. # # Using Ninja with Visual Studio 2019 command-line tools: # (this path may be different depending on your Visual Studio installation) # > "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat" # > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug .. # > ninja cefclient cefsimple # # To perform a Windows build using an ARM64 CEF binary distribution: # Using the Visual Studio 2019 IDE: # > cmake -G "Visual Studio 16" -A arm64 .. # Open build\cef.sln in Visual Studio and select Build > Build Solution. # # Using Ninja with Visual Studio 2019 command-line tools: # (this path may be different depending on your Visual Studio installation) # > "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvarsamd64_arm64.bat" # > cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug .. # > ninja cefsimple # # Global setup. # cmake_minimum_required(VERSION 2.8.12.1) # Only generate Debug and Release configuration types. set(CMAKE_CONFIGURATION_TYPES Debug Release) # Project name. # TODO: Change this line to match your project name when you copy this file. project(cef) # Use folders in the resulting project files. set_property(GLOBAL PROPERTY OS_FOLDERS ON) # # CEF_ROOT setup. # This variable must be set to locate the binary distribution. # TODO: Choose one of the below examples and comment out the rest. # # Example 1: The current directory contains both the complete binary # distribution and your project. # A. Comment in these lines: # set(CEF_ROOT "${CMAKE_CURRENT_SOURCE_DIR}") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CEF_ROOT}/cmake") # Example 2: The binary distribution is in a separate directory from your # project. Locate the binary distribution using the CEF_ROOT CMake # variable. # A. Create a directory structure for your project like the following: # myproject/ # CMakeLists.txt <= top-level CMake configuration # mytarget/ # CMakeLists.txt <= CMake configuration for `mytarget` # ... other `mytarget` source files # B. Copy this file to "myproject/CMakeLists.txt" as the top-level CMake # configuration. # C. Create the target-specific "myproject/mytarget/CMakeLists.txt" file for # your application. See the included cefclient and cefsimple CMakeLists.txt # files as an example. # D. Comment in these lines: # # set(CEF_ROOT "c:/path/to/cef_binary_3.2704.xxxx.gyyyyyyy_windows32") # set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CEF_ROOT}/cmake") # Example 3: The binary distribution is in a separate directory from your # project. Locate the binary distribution using the CEF_ROOT # environment variable. # A. Create a directory structure for your project like the following: # myproject/ # CMakeLists.txt <= top-level CMake configuration # cmake/ # FindCEF.cmake <= CEF CMake configuration entry point # mytarget/ # CMakeLists.txt <= CMake configuration for `mytarget` # ... other `mytarget` source files # B. Copy this file to "myproject/CMakeLists.txt" as the top-level CMake # configuration. # C. Copy the cmake/FindCEF.cmake file to "myproject/cmake/FindCEF.cmake". # D. Create the target-specific "myproject/mytarget/CMakeLists.txt" file for # your application. See the included cefclient and cefsimple CMakeLists.txt # files as an example. # E. Set the CEF_ROOT environment variable before executing CMake. For example: # > set CEF_ROOT=c:\path\to\cef_binary_3.2704.xxxx.gyyyyyyy_windows32 # F. Comment in these lines: # # set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") # # Load the CEF configuration. # # Execute FindCEF.cmake which must exist in CMAKE_MODULE_PATH. find_package(CEF REQUIRED) # # Define CEF-based targets. # # Include the libcef_dll_wrapper target. # Comes from the libcef_dll/CMakeLists.txt file in the binary distribution # directory. add_subdirectory(${CEF_LIBCEF_DLL_WRAPPER_PATH} libcef_dll_wrapper) # Include application targets. # Comes from the /CMakeLists.txt file in the current directory. # TODO: Change these lines to match your project target when you copy this file. if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tests") add_subdirectory(tests/cefsimple) add_subdirectory(tests/gtest) add_subdirectory(tests/ceftests) endif() if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/tests/cefclient") add_subdirectory(tests/cefclient) endif() # Display configuration settings. PRINT_CEF_CONFIG()