Fix etmdummy.h file not found during cross crossarchitecture build
authorEgor Chesakov <Egor.Chesakov@microsoft.com>
Fri, 9 Mar 2018 18:17:54 +0000 (10:17 -0800)
committerEgor Chesakov <Egor.Chesakov@microsoft.com>
Thu, 15 Mar 2018 17:53:06 +0000 (10:53 -0700)
build.sh

index 51212f3..43502bf 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -189,56 +189,59 @@ restore_optdata()
 
 generate_event_logging_sources()
 {
-    if [ $__SkipCoreCLR == 1 ]; then
-        return
-    fi
+    __OutputDir=$1
+    __ConsumingBuildSystem=$2
+
+    __OutputIncDir="$__OutputDir/src/inc"
+    __OutputEventingDir="$__OutputDir/eventing"
+    __OutputEventProviderDir="$__OutputEventingDir/eventprovider"
 
-# Event Logging Infrastructure
-    __GeneratedIntermediate="$__IntermediatesDir/eventing"
-    __GeneratedIntermediateEventProvider="$__GeneratedIntermediate/eventprovider"
-    __GeneratedIntermediateEventPipe="$__GeneratedIntermediate/eventpipe"
+    echo "Laying out dynamically generated files consumed by $__ConsumingBuildSystem"
+    echo "Laying out dynamically generated Event test files, etmdummy stub functions, and external linkages"
 
     __PythonWarningFlags="-Wall"
     if [[ $__IgnoreWarnings == 0 ]]; then
         __PythonWarningFlags="$__PythonWarningFlags -Werror"
     fi
 
+    $PYTHON -B $__PythonWarningFlags "$__ProjectRoot/src/scripts/genEventing.py" --inc $__OutputIncDir --dummy $__OutputIncDir/etmdummy.h --man "$__ProjectRoot/src/vm/ClrEtwAll.man" --testdir "$__OutputEventProviderDir/tests"
+    if [[ $? != 0 ]]; then
+        exit 1
+    fi
 
-    if [[ $__SkipCoreCLR == 0 || $__ConfigureOnly == 1 ]]; then
-        echo "Laying out dynamically generated files consumed by the build system "
-        echo "Laying out dynamically generated Event test files, etmdummy stub functions, and external linkages"
-        $PYTHON -B $__PythonWarningFlags "$__ProjectRoot/src/scripts/genEventing.py" --inc $__IntermediatesDir/src/inc --dummy $__IntermediatesDir/src/inc/etmdummy.h --man "$__ProjectRoot/src/vm/ClrEtwAll.man" --testdir "$__GeneratedIntermediateEventProvider/tests"
-
-        if  [[ $? != 0 ]]; then
-            exit
-        fi
+    echo "Laying out dynamically generated EventPipe Implementation"
+    $PYTHON -B $__PythonWarningFlags "$__ProjectRoot/src/scripts/genEventPipe.py" --man "$__ProjectRoot/src/vm/ClrEtwAll.man" --intermediate "$__OutputEventingDir/eventpipe"
 
-        echo "Laying out dynamically generated EventPipe Implementation"
-        $PYTHON -B $__PythonWarningFlags "$__ProjectRoot/src/scripts/genEventPipe.py" --man "$__ProjectRoot/src/vm/ClrEtwAll.man" --intermediate "$__GeneratedIntermediateEventPipe"
+    # determine the logging system
+    case $__BuildOS in
+        Linux|FreeBSD)
+            echo "Laying out dynamically generated Event Logging Implementation of Lttng"
+            $PYTHON -B $__PythonWarningFlags "$__ProjectRoot/src/scripts/genLttngProvider.py" --man "$__ProjectRoot/src/vm/ClrEtwAll.man" --intermediate "$__OutputEventProviderDir"
+            if [[ $? != 0 ]]; then
+                exit 1
+            fi
+            ;;
+        *)
+            echo "Laying out dummy event logging provider"
+            $PYTHON -B $__PythonWarningFlags "$__ProjectRoot/src/scripts/genDummyProvider.py" --man "$__ProjectRoot/src/vm/ClrEtwAll.man" --intermediate "$__OutputEventProviderDir"
+            if [[ $? != 0 ]]; then
+                exit 1
+            fi
+            ;;
+    esac
+}
 
-        #determine the logging system
-        case $__BuildOS in
-            Linux|FreeBSD)
-                echo "Laying out dynamically generated Event Logging Implementation of Lttng"
-                $PYTHON -B $__PythonWarningFlags "$__ProjectRoot/src/scripts/genLttngProvider.py" --man "$__ProjectRoot/src/vm/ClrEtwAll.man" --intermediate "$__GeneratedIntermediateEventProvider"
-                if  [[ $? != 0 ]]; then
-                    exit
-                fi
-                ;;
-            *)
-                echo "Laying out dummy event logging provider"
-                $PYTHON -B $__PythonWarningFlags "$__ProjectRoot/src/scripts/genDummyProvider.py" --man "$__ProjectRoot/src/vm/ClrEtwAll.man" --intermediate "$__GeneratedIntermediateEventProvider"
-                if  [[ $? != 0 ]]; then
-                    exit
-                fi
-                ;;
-        esac
+generate_event_logging()
+{
+    # Event Logging Infrastructure
+    if [[ $__SkipCoreCLR == 0 || $__ConfigureOnly == 1 ]]; then
+        generate_event_logging_sources "$__IntermediatesDir" "the native build system"
+    fi
 
-        if [[ $__CrossBuild == 1 ]]; then
-            cp -r $__GeneratedIntermediate $__CrossCompIntermediatesDir
-        fi
+    if [[ $__CrossBuild == 1 && $__DoCrossArchBuild == 1 ]]; then
+        generate_event_logging_sources "$__CrossCompIntermediatesDir" "the crossarch build system"
     fi
-}
+ }
 
 build_native()
 {
@@ -951,7 +954,7 @@ check_prereqs
 restore_optdata
 
 # Generate event logging infrastructure sources
-generate_event_logging_sources
+generate_event_logging
 
 # Build the coreclr (native) components.
 __ExtraCmakeArgs="-DCLR_CMAKE_TARGET_OS=$__BuildOS -DCLR_CMAKE_PACKAGES_DIR=$__PackagesDir -DCLR_CMAKE_PGO_INSTRUMENT=$__PgoInstrument -DCLR_CMAKE_OPTDATA_VERSION=$__PgoOptDataVersion -DCLR_CMAKE_PGO_OPTIMIZE=$__PgoOptimize"