summaryrefslogtreecommitdiff
path: root/cmake/FindANTLR.cmake
blob: 5f574247b9403ceefce41b6c59cec0af2546b838 (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
45
46
47
48
49
50
51
52
53
# Find ANTLR
# ANTLR_FOUND - system has ANTLR lib
# ANTLR_BINARY - the ANTLR binary
# ANTLR_INCLUDE_DIR - the ANTLR include directory
# ANTLR_LIBRARIES - Libraries needed to use ANTLR


# Check default location of ANTLR built with contrib/get-antlr-3.4.
# If the user provides a directory we will not search the default paths and
# fail if ANTLR was not found in the specified directory.
if(NOT ANTLR_HOME)
  set(ANTLR_HOME ${PROJECT_SOURCE_DIR}/antlr-3.4)
  set(CHECK_SYSTEM_VERSION TRUE)
endif()

find_program(ANTLR_BINARY
  NAMES antlr3
  PATHS ${ANTLR_HOME}/bin
  NO_DEFAULT_PATH)
find_path(ANTLR_INCLUDE_DIR
  NAMES antlr3.h
  PATHS ${ANTLR_HOME}/include
  NO_DEFAULT_PATH)
find_library(ANTLR_LIBRARIES
  NAMES antlr3c antlr3c-static
  PATHS ${ANTLR_HOME}/lib
  NO_DEFAULT_PATH)

if(CHECK_SYSTEM_VERSION)
  find_program(ANTLR_BINARY NAMES antlr3)
  find_path(ANTLR_INCLUDE_DIR NAMES antlr3.h)
  find_library(ANTLR_LIBRARIES NAMES antlr3c)
endif()

# Check if antlr3FileStreamNew is available. If not we have to
# define CVC4_ANTLR3_OLD_INPUT_STREAM (src/parser/CMakeLists.txt).
if(ANTLR_INCLUDE_DIR)
  include(CheckSymbolExists)
  set(CMAKE_REQUIRED_INCLUDES ${ANTLR_INCLUDE_DIR})
  set(CMAKE_REQUIRED_LIBRARIES ${ANTLR_LIBRARIES})
  check_symbol_exists(
    antlr3FileStreamNew "antlr3defs.h" HAVE_ANTLR3_FILE_STREAM_NEW)
endif()

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
  ANTLR DEFAULT_MSG ANTLR_BINARY ANTLR_INCLUDE_DIR ANTLR_LIBRARIES)

mark_as_advanced(ANTLR_BINARY ANTLR_INCLUDE_DIR ANTLR_LIBRARIES
                 HAVE_ANTLR3_FILE_STREAM_NEW)
if(ANTLR_LIBRARIES)
  message(STATUS "Found ANTLR libs: ${ANTLR_LIBRARIES}")
endif()
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback