Jelajahi Sumber

HPCC-21712 Antlr3c built from website-antlr3 submodule

Signed-off-by: Michael Gardner <michael.gardner@lexisnexisrisk.com>
Michael Gardner 6 tahun lalu
induk
melakukan
103056bd69

+ 1 - 1
cmake_modules/FindANTLR.cmake

@@ -26,7 +26,7 @@ include(UseJava)
 set(ANTLR_BUILDTIME_DEP "antlr-3.4-complete" CACHE STRING "ANTLR buildtime jar file name.")
 set(ANTLR_RUNTIME_DEP "antlr-runtime-3.4" CACHE STRING "ANTLR runtime jar file name.")
 set(ANTLR_PATH "${HPCC_SOURCE_DIR}/esp/services/ws_sql/website-antlr3/download" CACHE PATH "Location of ANTLR jar files.")
-set(ANTLR_PKG_FIND_ERROR_MSG "Could not locate jars.\nPlease run `git submodules update --init --recursive`\n")
+set(ANTLR_PKG_FIND_ERROR_MSG "Could not locate jars.\nPlease run `git submodule update --init --recursive`\n")
 
 
 find_jar(ANTLR_BUILDTIME_JAR ${ANTLR_BUILDTIME_DEP} PATHS ${ANTLR_PATH})

+ 1 - 1
esp/services/ws_sql/CMakeLists.txt

@@ -90,7 +90,7 @@ if(WSSQL_SERVICE)
         ${HPCC_SOURCE_DIR}/common/dllserver
         ${HPCC_SOURCE_DIR}/common/deftype
         ${HPCC_SOURCE_DIR}/ecl/hql
-        ${CMAKE_CURRENT_BINARY_DIR}/antlr3c/include
+        ${libantlr3c_includes}
         ${ESPSCM_GENERATED_DIR}
         ${CMAKE_CURRENT_SOURCE_DIR}/SQL2ECL
         )

+ 32 - 13
esp/services/ws_sql/antlr3c.cmake

@@ -38,27 +38,46 @@ else()
     set(osdir "unknown")
 endif()
 
-include(ExternalProject)
-ExternalProject_Add(
-    antlr3c
-    URL "http://www.antlr3.org/download/C/libantlr3c-3.4.tar.gz"
-    DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}
-    SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/antlr3c/runtime/C
-    CONFIGURE_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/antlr3c/runtime/C/configure ${ANTLRcCONFIGURE_COMMAND_PARAMS} --prefix=${CMAKE_CURRENT_BINARY_DIR}/antlr3c
-    PREFIX ${CMAKE_CURRENT_BINARY_DIR}/antlr3c
-    BUILD_COMMAND ${CMAKE_MAKE_PROGRAM}
-    BUILD_IN_SOURCE 1
+add_custom_command(
+    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4
+    COMMAND tar -xzf ${CMAKE_CURRENT_SOURCE_DIR}/website-antlr3/download/C/libantlr3c-3.4.tar.gz
+    DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/website-antlr3/download
+    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+    )
+
+add_custom_command(
+    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4/Makefile
+    COMMAND ./configure ${ANTLRcCONFIGURE_COMMAND_PARAMS} --prefix=${CMAKE_CURRENT_BINARY_DIR}/antlr3c
+    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4
+    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4
+    ) 
+
+add_custom_command(
+    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4/.libs/${ANTLR3c_lib}
+    COMMAND ${CMAKE_MAKE_PROGRAM}
+    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4/Makefile
+    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4
+    )
+
+add_custom_target(antlr3c
+    DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4/.libs/${ANTLR3c_lib}
+    COMMENT "Building external library ${ANTLR3c_lib}"
+    )
+
+set(libantlr3c_includes
+    ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4
+    ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4/include
     )
 
 add_library(libantlr3c SHARED IMPORTED GLOBAL)
-set_property(TARGET libantlr3c PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/antlr3c/lib/${ANTLR3c_lib})
+set_property(TARGET libantlr3c PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4/.libs/${ANTLR3c_lib})
 add_dependencies(libantlr3c antlr3c)
 
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/antlr3c/lib/${ANTLR3c_lib}
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4/.libs/${ANTLR3c_lib}
     DESTINATION ${LIB_DIR}/external
     COMPONENT Runtime
     )
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/antlr3c/runtime/C/COPYING
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libantlr3c-3.4/COPYING
     DESTINATION ${LIB_DIR}/external
     COMPONENT Runtime
     RENAME antlr3c-bsd-license.txt