diff --git a/CMakeScripts/FindANTLR.cmake b/CMakeScripts/FindANTLR.cmake
new file mode 100644
index 0000000000000000000000000000000000000000..7a96424f9a45f94b78b097cb850a2c8970686755
--- /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 0000000000000000000000000000000000000000..5ec6abc6e68ec1f42df6bfbbc7745265c10bb8fe
--- /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 1a86bd6fec1b525e7593cea9311a6ef7553c26b4..5fb4b1d4f9aff3264aa941faa5c10c4f1d5078f4 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