Adam Langley | 07100c6 | 2015-01-16 15:20:54 -0800 | [diff] [blame] | 1 | cmake_minimum_required (VERSION 2.8.10) |
Adam Langley | 95c29f3 | 2014-06-20 12:00:00 -0700 | [diff] [blame] | 2 | |
| 3 | project (BoringSSL) |
| 4 | |
Brian Smith | 1d75c8b | 2015-01-23 17:25:44 -0800 | [diff] [blame^] | 5 | if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
Adam Langley | 07100c6 | 2015-01-16 15:20:54 -0800 | [diff] [blame] | 6 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -ggdb") |
| 7 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Werror -ggdb -std=c++0x") |
Adam Langley | 95c29f3 | 2014-06-20 12:00:00 -0700 | [diff] [blame] | 8 | elseif(MSVC) |
| 9 | # Disable warnings for implicit integer narrowing. |
| 10 | set(CMAKE_C_FLAGS "/wd4267") |
David Benjamin | eee7306 | 2014-10-31 16:01:29 -0400 | [diff] [blame] | 11 | set(CMAKE_CXX_FLAGS "/wd4267") |
Adam Langley | 95c29f3 | 2014-06-20 12:00:00 -0700 | [diff] [blame] | 12 | endif() |
| 13 | |
Brian Smith | 1d75c8b | 2015-01-23 17:25:44 -0800 | [diff] [blame^] | 14 | if((CMAKE_COMPILER_IS_GNUCXX AND CMAKE_C_COMPILER_VERSION VERSION_GREATER "4.5.99") OR |
| 15 | CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
Adam Langley | 07100c6 | 2015-01-16 15:20:54 -0800 | [diff] [blame] | 16 | set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wshadow") |
| 17 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wshadow") |
| 18 | endif() |
| 19 | |
Adam Langley | eb7d2ed | 2014-07-30 16:02:14 -0700 | [diff] [blame] | 20 | add_definitions(-DBORINGSSL_IMPLEMENTATION) |
| 21 | |
Adam Langley | 95c29f3 | 2014-06-20 12:00:00 -0700 | [diff] [blame] | 22 | if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86_64") |
| 23 | set(ARCH "x86_64") |
Piotr Sikora | 1d8adf1 | 2014-07-31 03:09:49 -0700 | [diff] [blame] | 24 | elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "amd64") |
| 25 | set(ARCH "x86_64") |
Adam Langley | 95c29f3 | 2014-06-20 12:00:00 -0700 | [diff] [blame] | 26 | elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "AMD64") |
| 27 | # cmake reports AMD64 on Windows, but we might be building for 32-bit. |
| 28 | if (CMAKE_CL_64) |
| 29 | set(ARCH "x86_64") |
| 30 | else() |
| 31 | set(ARCH "x86") |
| 32 | endif() |
| 33 | elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "x86") |
| 34 | set(ARCH "x86") |
Piotr Sikora | 1d8adf1 | 2014-07-31 03:09:49 -0700 | [diff] [blame] | 35 | elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i386") |
| 36 | set(ARCH "x86") |
Lukas Tribus | d83f38c | 2014-08-11 13:27:44 -0700 | [diff] [blame] | 37 | elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "i686") |
| 38 | set(ARCH "x86") |
Adam Langley | 95c29f3 | 2014-06-20 12:00:00 -0700 | [diff] [blame] | 39 | elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "arm") |
| 40 | set(ARCH "arm") |
Adam Langley | 3e65265 | 2015-01-09 15:44:37 -0800 | [diff] [blame] | 41 | elseif (${CMAKE_SYSTEM_PROCESSOR} STREQUAL "aarch64") |
| 42 | set(ARCH "aarch64") |
Adam Langley | 95c29f3 | 2014-06-20 12:00:00 -0700 | [diff] [blame] | 43 | else() |
| 44 | message(FATAL_ERROR "Unknown processor:" ${CMAKE_SYSTEM_PROCESSOR}) |
| 45 | endif() |
| 46 | |
Nico Weber | deb5284 | 2014-11-18 12:14:46 -0800 | [diff] [blame] | 47 | if (${ARCH} STREQUAL "x86" AND APPLE) |
| 48 | # With CMake 2.8.x, ${CMAKE_SYSTEM_PROCESSOR} evalutes to i386 on OS X, |
| 49 | # but clang defaults to 64-bit builds on OS X unless otherwise told. |
| 50 | # Set ARCH to x86_64 so clang and CMake agree. This is fixed in CMake 3. |
| 51 | set(ARCH "x86_64") |
| 52 | endif() |
| 53 | |
Adam Langley | 95c29f3 | 2014-06-20 12:00:00 -0700 | [diff] [blame] | 54 | add_subdirectory(crypto) |
| 55 | add_subdirectory(ssl) |
| 56 | add_subdirectory(ssl/test) |
| 57 | add_subdirectory(tool) |