From 5684a59f9b9618e6eb352cfaba13993457927292 Mon Sep 17 00:00:00 2001 From: Adam Wardynski <award@.(win7-laptop)> Date: Sat, 13 Nov 2010 22:39:41 +0100 Subject: [PATCH] Add ANTLR and ICU as project dependencies --- CMakeScripts/FindANTLR.cmake | 44 ++++++++++++++++++++ CMakeScripts/FindICU.cmake | 78 ++++++++++++++++++++++++++++++++++++ libwccl/CMakeLists.txt | 8 ++++ 3 files changed, 130 insertions(+) create mode 100644 CMakeScripts/FindANTLR.cmake create mode 100644 CMakeScripts/FindICU.cmake diff --git a/CMakeScripts/FindANTLR.cmake b/CMakeScripts/FindANTLR.cmake new file mode 100644 index 0000000..7a96424 --- /dev/null +++ b/CMakeScripts/FindANTLR.cmake @@ -0,0 +1,44 @@ +# Finds the ANother Tool for Language Recognition (ANTLR) Library +# +# ANTLR_FOUND - True if ANTLR has been found. +# +# ANTLR_INCLUDE_DIR - Directory to include to get ANTLR headers +# +# ANTLR_LIBRARY - libraries to link + +if (ANTLR_INCLUDE_DIR AND ANTLR_LIBRARY) +# in cache already + set(ANTLR_FOUND TRUE) +else (ANTLR_INCLUDE_DIR AND ANTLR_LIBRARY) + +# Look for the header file. + find_path( + ANTLR_INCLUDE_DIR + NAMES antlr/ANTLRUtil.hpp + DOC "Include directory for the ANTLR library") + mark_as_advanced(ANTLR_INCLUDE_DIR) + +# Look for the library. + find_library( + ANTLR_LIBRARY + NAMES antlr + DOC "Library to link against for ANTLR") + mark_as_advanced(ANTLR_LIBRARY) + + if (ANTLR_INCLUDE_DIR AND ANTLR_LIBRARY) + set(ANTLR_FOUND TRUE) + endif (ANTLR_INCLUDE_DIR AND ANTLR_LIBRARY) +endif (ANTLR_INCLUDE_DIR AND ANTLR_LIBRARY) + +if (ANTLR_FOUND) + if( NOT ANTLR_FIND_QUIETLY ) + message( STATUS "Found ANTLR header files in ${ANTLR_INCLUDE_DIR}") + message( STATUS "Found ANTLR library: ${ANTLR_LIBRARY}") + endif ( NOT ANTLR_FIND_QUIETLY ) +else (ANTLR_FOUND) + if (ANTLR_FIND_REQUIRED) + message( FATAL_ERROR "Could not find ANTLR" ) + else (ANTLR_FIND_REQUIRED) + message( STATUS "Optional package ANTLR was not found" ) + endif (ANTLR_FIND_REQUIRED) +endif (ANTLR_FOUND) diff --git a/CMakeScripts/FindICU.cmake b/CMakeScripts/FindICU.cmake new file mode 100644 index 0000000..5ec6abc --- /dev/null +++ b/CMakeScripts/FindICU.cmake @@ -0,0 +1,78 @@ +# Finds the International Components for Unicode (ICU) Library +# +# ICU_FOUND - True if ICU found. +# ICU_I18N_FOUND - True if ICU's internationalization library found. +# ICU_INCLUDE_DIRS - Directory to include to get ICU headers +# Note: always include ICU headers as, e.g., +# unicode/utypes.h +# ICU_LIBRARIES - Libraries to link against for the common ICU +# ICU_I18N_LIBRARIES - Libraries to link against for ICU internationaliation +# (note: in addition to ICU_LIBRARIES) + +MARK_AS_ADVANCED(ICU_DIR) + +# Look for the header file. +find_path( + ICU_INCLUDE_DIR + NAMES unicode/utypes.h + DOC "Include directory for the ICU library") +mark_as_advanced(ICU_INCLUDE_DIR) + +# Look for the library. +find_library( + ICU_LIBRARY + NAMES icuuc cygicuuc cygicuuc32 + DOC "Libraries to link against for the common parts of ICU") +mark_as_advanced(ICU_LIBRARY) + +# Copy the results to the output variables. +if(ICU_INCLUDE_DIR AND ICU_LIBRARY) + set(ICU_FOUND 1) + set(ICU_LIBRARIES ${ICU_LIBRARY}) + set(ICU_INCLUDE_DIRS ${ICU_INCLUDE_DIR}) + + set(ICU_VERSION 0) + set(ICU_MAJOR_VERSION 0) + set(ICU_MINOR_VERSION 0) + FILE(READ "${ICU_INCLUDE_DIR}/unicode/uversion.h" _ICU_VERSION_CONENTS) + STRING(REGEX REPLACE ".*#define U_ICU_VERSION_MAJOR_NUM ([0-9]+).*" "\\1" ICU_MAJOR_VERSION "${_ICU_VERSION_CONENTS}") + STRING(REGEX REPLACE ".*#define U_ICU_VERSION_MINOR_NUM ([0-9]+).*" "\\1" ICU_MINOR_VERSION "${_ICU_VERSION_CONENTS}") + + set(ICU_VERSION "${ICU_MAJOR_VERSION}.${ICU_MINOR_VERSION}") + + # Look for the ICU internationalization libraries + find_library( + ICU_I18N_LIBRARY + NAMES icuin icui18n cygicuin cygicuin32 + DOC "Libraries to link against for ICU internationalization") + mark_as_advanced(ICU_I18N_LIBRARY) + if (ICU_I18N_LIBRARY) + set(ICU_I18N_FOUND 1) + set(ICU_I18N_LIBRARIES ${ICU_I18N_LIBRARY}) + else (ICU_I18N_LIBRARY) + set(ICU_I18N_FOUND 0) + set(ICU_I18N_LIBRARIES) + endif (ICU_I18N_LIBRARY) +else(ICU_INCLUDE_DIR AND ICU_LIBRARY) + set(ICU_FOUND 0) + set(ICU_I18N_FOUND 0) + set(ICU_LIBRARIES) + set(ICU_I18N_LIBRARIES) + set(ICU_INCLUDE_DIRS) + set(ICU_VERSION) + set(ICU_MAJOR_VERSION) + set(ICU_MINOR_VERSION) +endif(ICU_INCLUDE_DIR AND ICU_LIBRARY) + +IF(ICU_FOUND) + IF( NOT ICU_FIND_QUIETLY ) + MESSAGE( STATUS "Found ICU header files in ${ICU_INCLUDE_DIRS}") + MESSAGE( STATUS "Found ICU libraries: ${ICU_LIBRARIES}") + ENDIF( NOT ICU_FIND_QUIETLY ) +ELSE(ICU_FOUND) +IF(ICU_FIND_REQUIRED) +MESSAGE( FATAL_ERROR "Could not find ICU" ) +ELSE(ICU_FIND_REQUIRED) +MESSAGE( STATUS "Optional package ICU was not found" ) +ENDIF(ICU_FIND_REQUIRED) +ENDIF(ICU_FOUND) diff --git a/libwccl/CMakeLists.txt b/libwccl/CMakeLists.txt index 1a86bd6..5fb4b1d 100644 --- a/libwccl/CMakeLists.txt +++ b/libwccl/CMakeLists.txt @@ -13,6 +13,14 @@ set(LIBS ${LIBS} ${PwrUtils_LIBRARY}) link_directories(${Boost_LIBRARY_DIRS}) set(LIBS ${LIBS} ${Boost_LIBRARIES}) +find_package(ICU REQUIRED) +include_directories(${ICU_INCLUDE_DIR}) +set(LIBS ${LIBS} ${ICU_LIBRARIES} ${ICU_I18N_LIBRARIES}) + +find_package(ANTLR REQUIRED) +include_directories(${ANTLR_INCLUDE_DIR}) +set(LIBS ${LIBS} ${ANTLR_LIBRARY}) + SET(libwccl_STAT_SRC exception.cpp ops/and.cpp -- GitLab