# Copyright (c) 2014The Chromium Embedded Framework Authors. All rights
# reserved. Use of this source code is governed by a BSD-style license that
# can be foundin the LICENSE file.
# OVERVIEW
#
# CMake is a cross-platform open-source build system that can generate project
# filesinmany 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
# Mac OS X: Ninja, Xcode5+# Windows: Ninja, Visual Studio2010+#
# Ninja is a cross-platform open-source tool forrunning 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 forguidance 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.1or newer.
#
#-Linux requirements:
# Currently supported distributions include Debian Wheezy, Ubuntu Precise, and
# related. Ubuntu14.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)
#
#-Mac OS X requirements:
# Xcode5 or newer building on Mac OS X 10.9 (Mavericks) or newer. Xcode 8.3# and OS X10.12 are recommended. The Xcode command-line tools must also be
# installed. Only64-bit builds are supported on OS X.
#
#-Windows requirements:
# Visual Studio2010 or newer building on Windows 7or newer. Visual Studio
#2015 Update 3 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 a32-bit CEF binary distribution on a 32-bit
# Linux platform or a64-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 Mac OS X build using a64-bit CEF binary distribution:
# Using the Xcode IDE:
#> cmake -G "Xcode" -DPROJECT_ARCH="x86_64"..
# Open build\cef.xcodeprojin Xcode and select Product >Build.
#
# Using Ninja:
#> cmake -G "Ninja" -DPROJECT_ARCH="x86_64" -DCMAKE_BUILD_TYPE=Debug ..
#>ninja cefclient cefsimple
#
# To perform a Windows build using a32-bit CEF binary distribution:
# Using the Visual Studio2015IDE:
#> cmake -G "Visual Studio 14"..
# Open build\cef.slnin Visual Studio and select Build >Build Solution.
#
# Using Ninja with Visual Studio2015 command-line tools:
# (this path may be different depending on your Visual Studio installation)
#> "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat"#> cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug ..
#>ninja cefclient cefsimple
#
# To perform a Windows build using a64-bit CEF binary distribution:
# Using the Visual Studio2015IDE:
#> cmake -G "Visual Studio 14 Win64"..
# Open build\cef.slnin Visual Studio and select Build >Build Solution.
#
# Using Ninja with Visual Studio2015 command-line tools:
# (this path may be different depending on your Visual Studio installation)
#> "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\amd64\vcvars64.bat"#> cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Debug ..
#>ninja cefclient cefsimple
#
# Global setup.
#
cmake_minimum_required(VERSION2.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 thisfile.
project(cef)
# Use foldersinthe resulting project files.
set_property(GLOBAL PROPERTY OS_FOLDERS ON)
#
# CEF_ROOT setup.
# This variable must be set tolocatethe binary distribution.
# TODO: Choose one of the below examples and comment out the rest.
#
# Example1: The current directory contains both the complete binary
# distribution and your project.
# A. Commentinthese lines:
#
set(CEF_ROOT"${CMAKE_CURRENT_SOURCE_DIR}")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}"${CEF_ROOT}/cmake")
# Example2: The binary distribution is ina separate directory from your
# project. Locate the binary distribution using the CEF_ROOT CMake
# variable.
# A. Create a directory structureforyour project like the following:
# myproject/# CMakeLists.txt<= top-level CMake configuration
# mytarget/# CMakeLists.txt<= CMake configuration for`mytarget`
# ... other `mytarget` source files
# B. Copy thisfile 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. Commentinthese lines:
#
# set(CEF_ROOT"c:/path/to/cef_binary_3.2704.xxxx.gyyyyyyy_windows32")
# set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}"${CEF_ROOT}/cmake")
# Example3: The binary distribution is ina separate directory from your
# project. Locate the binary distribution using the CEF_ROOT
# environment variable.
# A. Create a directory structureforyour 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 thisfile 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. Commentinthese lines:
#
# set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}"${CMAKE_CURRENT_SOURCE_DIR}/cmake")
#
# Load the CEF configuration.
#
# Execute FindCEF.cmakewhich must exist inCMAKE_MODULE_PATH.
find_package(CEF REQUIRED)
#
# Define CEF-based targets.
#
# Include the libcef_dll_wrapper target.
# Comes from the libcef_dll/CMakeLists.txt file inthe binary distribution
# directory.
add_subdirectory(${CEF_LIBCEF_DLL_WRAPPER_PATH} libcef_dll_wrapper)
# Include application targets.
# Comes from the/CMakeLists.txt file inthe current directory.
# TODO: Change these lines to match your project target when you copy thisfile.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()