blob: a222a60e863a745595f7c4cb0194b8a38f5ac8b7 [file] [log] [blame]
# =============================================================================
# CMake module building ANTLR2 from sources
# =============================================================================
include (ExternalProject)
set (ANTLR277_DIR antlr-2.7.7)
set (ANTLR277_ARC ${ANTLR277_DIR}.tar.gz)
set (ANTLR277_URL http://www.antlr2.org/download/${ANTLR277_ARC})
if (NOT (DEFINED ANTLR2_INSTALL_DIR))
# set (ANTLR2_INSTALL_DIR /home/lapitre_is148245/efm/symbex_hipp/org.eclipse.efm-symbex/org.eclipse.efm.symbex/build_gui/contrib)
set (ANTLR2_INSTALL_DIR ${CMAKE_BINARY_DIR}/contrib)
set (ANTLR2_INSTALL_LIB_DIR ${ANTLR2_INSTALL_DIR}/lib)
set (ANTLR2_INSTALL_INCLUDE_DIR ${ANTLR2_INSTALL_DIR}/include)
MESSAGE( ANTLR2_INSTALL_DIR: ${ANTLR2_INSTALL_DIR})
MESSAGE( ANTLR2_INSTALL_LIB_DIR: ${ANTLR2_INSTALL_LIB_DIR})
MESSAGE( ANTLR2_INSTALL_INCLUDE_DIR: ${ANTLR2_INSTALL_INCLUDE_DIR})
endif()
set (ANTLR2_CONFIGURE configure)
set (ANTLR2_CONFIGURE ${ANTLR2_CONFIGURE} --prefix=${ANTLR2_INSTALL_DIR})
# Fine tunning of installation directories
#set (ANTLR2_CONFIGURE ${ANTLR2_CONFIGURE} --libdir=${ANTLR2_INSTALL_LIB_DIR} --includedir=${ANTLR2_INSTALL_INCLUDE_DIR})
externalproject_add (antlr2
# Download step
DOWNLOAD_DIR ${CMAKE_BINARY_DIR}
URL ${ANTLR277_URL}
PREFIX antlr2
# Patch step
PATCH_COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/cmake/antlr2-patch/lib/cpp/antlr/CharScanner.hpp ${CMAKE_BINARY_DIR}/antlr2/src/antlr2/lib/cpp/antlr
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/cmake/antlr2-patch/scripts/config.guess ${CMAKE_BINARY_DIR}/antlr2/src/antlr2/scripts
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_SOURCE_DIR}/cmake/antlr2-patch/scripts/config.sub ${CMAKE_BINARY_DIR}/antlr2/src/antlr2/scripts
# Configure step
CONFIGURE_COMMAND ${CMAKE_BINARY_DIR}/antlr2/src/antlr2/${ANTLR2_CONFIGURE}
# Build step
BUILD_COMMAND make
# Install step
INSTALL_COMMAND make install
)
# These variables ca be used by the client code of this module (ex: FindModule)
set (ANTLR2_INCLUDE_DIR ${ANTLR2_INSTALL_INCLUDE_DIR})
set (ANTLR2_LIBRARIES libantlr.a)