فهرست منبع

HPCC-11045 Add options for ECL Watch Build

Allow SKIP, SOURCES and IF_MISSING (only build if missing)

Fixes HPCC-11045

Signed-off-by: Gordon Smith <gordon.smith@lexisnexis.com>
Gordon Smith 11 سال پیش
والد
کامیت
ffde103dd9
3فایلهای تغییر یافته به همراه55 افزوده شده و 20 حذف شده
  1. 1 15
      esp/CMakeLists.txt
  2. 5 5
      esp/build.sh
  3. 49 0
      esp/src/CMakeLists.txt

+ 1 - 15
esp/CMakeLists.txt

@@ -17,6 +17,7 @@ HPCC_ADD_SUBDIRECTORY (bindings)
 HPCC_ADD_SUBDIRECTORY (clients "PLATFORM")
 HPCC_ADD_SUBDIRECTORY (eclwatch "PLATFORM")
 HPCC_ADD_SUBDIRECTORY (files "PLATFORM")
+HPCC_ADD_SUBDIRECTORY (src "PLATFORM")
 HPCC_ADD_SUBDIRECTORY (platform "PLATFORM")
 HPCC_ADD_SUBDIRECTORY (protocols)
 HPCC_ADD_SUBDIRECTORY (scm)
@@ -26,18 +27,3 @@ HPCC_ADD_SUBDIRECTORY (test "PLATFORM")
 HPCC_ADD_SUBDIRECTORY (tools "CLIENTTOOLS")
 HPCC_ADD_SUBDIRECTORY (xslt "PLATFORM")
 
-if ( PLATFORM )
-    set(ECLWATCH_BUILD_DEST "${CMAKE_CURRENT_BINARY_DIR}/tmp/files")
-    set(ECLWATCH_BUILD_OUT "${CMAKE_CURRENT_BINARY_DIR}/eclwatch_build_out.txt")
-    set(ECLWATCH_BUILD_ERR "${CMAKE_CURRENT_BINARY_DIR}/eclwatch_build_err.txt")
-    install ( CODE "
-        message(\"Run Dojo build tool...\")
-        message(\"Dojo build:  Build Target - ${ECLWATCH_BUILD_DEST}\")
-        message(\"Dojo build:  Output log - ${ECLWATCH_BUILD_OUT}\")
-        message(\"Dojo build:  Error log - ${ECLWATCH_BUILD_ERR}\")
-        execute_process(COMMAND \"${CMAKE_CURRENT_SOURCE_DIR}/build.sh\" \"${ECLWATCH_BUILD_DEST}\" OUTPUT_FILE \"${ECLWATCH_BUILD_OUT}\" ERROR_FILE \"${ECLWATCH_BUILD_ERR}\")
-        execute_process(COMMAND \"tail\" \"--lines=4\" \"${ECLWATCH_BUILD_DEST}/build-report.txt\")
-        message(\"\")
-    " COMPONENT Runtime)
-    Install ( DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/tmp/files" DESTINATION componentfiles COMPONENT Runtime USE_SOURCE_PERMISSIONS PATTERN "build-report.txt" EXCLUDE PATTERN "*.map" EXCLUDE  PATTERN "*.uncompressed.js" EXCLUDE)
-endif ( PLATFORM )

+ 5 - 5
esp/build.sh

@@ -25,17 +25,17 @@ PROFILE="$BASEDIR/profiles/eclwatch.profile.js"
 
 # Configuration over. Main application start up!
 
-if [ ! -d "$TOOLSDIR" ]; then
-    echo "Can't find Dojo build tools -- did you initialise submodules? (git submodule update --init --recursive)"
-    exit 1
-fi
-
 echo "Building application with $PROFILE to $DISTDIR."
 
 echo -n "Cleaning old files..."
 rm -rf "$DISTDIR"
 echo " Done"
 
+if [ ! -d "$TOOLSDIR" ]; then
+    echo "Can't find Dojo build tools -- did you initialise submodules? (git submodule update --init --recursive)"
+    exit 1
+fi
+
 mkdir -p "$DISTDIR"
 cp -r "$SRCDIR/CodeMirror2" "$DISTDIR/CodeMirror2"
 

+ 49 - 0
esp/src/CMakeLists.txt

@@ -0,0 +1,49 @@
+################################################################################
+#    HPCC SYSTEMS software Copyright (C) 2012 HPCC Systems.
+#
+#    Licensed under the Apache License, Version 2.0 (the "License");
+#    you may not use this file except in compliance with the License.
+#    You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#    Unless required by applicable law or agreed to in writing, software
+#    distributed under the License is distributed on an "AS IS" BASIS,
+#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#    See the License for the specific language governing permissions and
+#    limitations under the License.
+################################################################################
+
+project ( eclwatch ) 
+
+set ( ECLWATCH_BUILD_STRATEGY "" CACHE STRING "Override ECL Watch Build Strategy ('SKIP', 'SOURCES', 'IF_MISSING')" )
+if ( "${ECLWATCH_BUILD_STRATEGY}" STREQUAL "SKIP" )
+    message ( "-- ECL Watch:  Skipping..." )
+elseif ( "${ECLWATCH_BUILD_STRATEGY}" STREQUAL "SOURCES" )
+    message( "-- ECL Watch:  Packaging Sources..." )
+    install ( DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/" DESTINATION componentfiles/files COMPONENT Runtime USE_SOURCE_PERMISSIONS PATTERN "CMakeLists.txt" EXCLUDE )
+else ()
+    message ( "-- ECL Watch:  Packaging Optimized/Built Sources..." )
+    set ( ECLWATCH_BUILD_DEST "${CMAKE_CURRENT_BINARY_DIR}/build" )
+    set ( ECLWATCH_BUILD_OUT "${CMAKE_CURRENT_BINARY_DIR}/eclwatch_build_out.txt" )
+    set ( ECLWATCH_BUILD_ERR "${CMAKE_CURRENT_BINARY_DIR}/eclwatch_build_err.txt" )
+    install ( CODE "
+        if ( ( NOT \"${ECLWATCH_BUILD_STRATEGY}\" STREQUAL \"IF_MISSING\" ) OR ( NOT EXISTS \"${ECLWATCH_BUILD_DEST}\" ) )
+            message ( \"-- ECL Watch:  Rebuilding Site\" )
+            message ( \"---- Build Target: ${ECLWATCH_BUILD_DEST}\" )
+            message ( \"---- Output log:   ${ECLWATCH_BUILD_OUT}\" )
+            message ( \"---- Error log:    ${ECLWATCH_BUILD_ERR}\" )
+            if ( NOT EXISTS \"${CMAKE_CURRENT_SOURCE_DIR}/util/buildscripts\" )
+                message ( FATAL_ERROR \"Can't find Dojo build tools -- did you initialise submodules? (git submodule update --init --recursive)\" )
+            else ()
+                execute_process ( COMMAND \"${CMAKE_CURRENT_SOURCE_DIR}/../build.sh\" \"${ECLWATCH_BUILD_DEST}\" OUTPUT_FILE \"${ECLWATCH_BUILD_OUT}\" ERROR_FILE \"${ECLWATCH_BUILD_ERR}\" )
+                execute_process ( COMMAND \"tail\" \"--lines=4\" \"${ECLWATCH_BUILD_DEST}/build-report.txt\" )
+                message ( \"\" )
+            endif ()
+        else ()
+            message( \"-- ECL Watch:  Reusing (old) Site\" )
+        endif ()
+    " COMPONENT Runtime)
+    Install ( DIRECTORY "${ECLWATCH_BUILD_DEST}/" DESTINATION componentfiles/files COMPONENT Runtime USE_SOURCE_PERMISSIONS PATTERN "build-report.txt" EXCLUDE PATTERN "*.map" EXCLUDE  PATTERN "*.uncompressed.js" EXCLUDE )
+endif ()
+