aboutsummaryrefslogtreecommitdiff
path: root/third_party/CMakeLists.txt
blob: 9ef4a22fc6e4ba9a0e234801a029a2a1678b4854 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Suppress all warnings from third-party projects.
set_property(DIRECTORY APPEND PROPERTY COMPILE_OPTIONS -w)

# Set alternate root directory for third party sources.
set(EFFCEE_THIRD_PARTY_ROOT_DIR "${CMAKE_CURRENT_SOURCE_DIR}" CACHE STRING
  "Root location of all third_party projects")

# Find googletest and gmock
if(${googletest-distribution_SOURCE_DIR})
  set(EFFCEE_GOOGLETEST_DIR "${googletest-distribution_SOURCE_DIR}" CACHE STRING
	  "Location of googletest source")
else()
  set(EFFCEE_GOOGLETEST_DIR "${EFFCEE_THIRD_PARTY_ROOT_DIR}/googletest" CACHE STRING
          "Location of googletest source")
endif()

# Find re2
if(RE2_SOURCE_DIR)
  set(EFFCEE_RE2_DIR "${RE2_SOURCE_DIR}" CACHE STRING "Location of re2 source" FORCE)
else()
  set(EFFCEE_RE2_DIR "${EFFCEE_THIRD_PARTY_ROOT_DIR}/re2" CACHE STRING
    "Location of re2 source")
endif()

# Configure third party projects.
if(EFFCEE_BUILD_TESTING)
  if (NOT TARGET gmock)
    if (IS_DIRECTORY ${EFFCEE_GOOGLETEST_DIR})
      add_subdirectory(${EFFCEE_GOOGLETEST_DIR} googletest EXCLUDE_FROM_ALL)
    endif()
  endif()
  if (NOT TARGET gmock)
    message(FATAL_ERROR "gmock was not found - required for tests")
  endif()
endif()

if (NOT TARGET re2)
  if (IS_DIRECTORY ${EFFCEE_RE2_DIR})
    add_subdirectory(${EFFCEE_RE2_DIR} re2 EXCLUDE_FROM_ALL)
  endif()
endif()
if (NOT TARGET re2)
  message(FATAL_ERROR "re2 was not found - required for compilation")
endif()