Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/workflow/requirements/freebsd-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -56,7 +56,7 @@ Install the following packages:
* openssl (optional)
* python39
* libinotify
* ninja (optional, enables building native code with ninja instead of make)
* ninja

```sh
sudo pkg install --yes libunwind icu libinotify lttng-ust krb5 cmake openssl ninja
Expand Down
4 changes: 2 additions & 2 deletions docs/workflow/requirements/linux-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -47,7 +47,7 @@ The packages you need to install are shown in the following list:
- `lld`
- `lldb`
- `llvm`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python-is-python3`

Expand DownExpand Up@@ -116,7 +116,7 @@ Install the following packages for the toolchain:
- `lldb`
- `llvm`
- `lttng-ust-devel`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `openssl-devel`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python`
Expand Down
2 changes: 1 addition & 1 deletion docs/workflow/requirements/macos-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ To build the runtime repo, you will also need to install the following dependenc
- `icu4c`
- `pkg-config`
- `python3`
- `ninja` (This one is optional. It is an alternative tool to `make` for building native code)
- `ninja`
Comment thread
steveisok marked this conversation as resolved.

You can install them separately, or you can alternatively opt to install *[Homebrew](https://brew.sh/)* and use the `install-dependencies.sh` script provided by the repo, which takes care of everything for you. If you go by this route, once you have *Homebrew* up and running on your machine, run the following command from the root of the repo to download and install all the necessary dependencies at once:

Expand Down
25 changes: 15 additions & 10 deletions eng/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ usage()
echo " --gccx.y Optional argument to build using gcc version x.y."
echo " --portablebuild Optional argument: set to false to force a non-portable build."
echo " --keepnativesymbols Optional argument: set to true to keep native symbols/debuginfo in generated binaries."
echo " --ninja Optional argument: set to true to use Ninja instead of Make to run the native build."
echo " --ninja Optional argument: use Ninja instead of Make (default: true, use --ninja false to disable)."
echo " --pgoinstrument Optional argument: build PGO-instrumented runtime"
echo " --fsanitize Optional argument: Specify native sanitizers to instrument the native build with. Supported values are: 'address'."
echo ""
Expand DownExpand Up@@ -166,6 +166,9 @@ source $scriptroot/common/native/init-os-and-arch.sh

hostArch=$arch

# Default to using Ninja for faster builds (can be overridden with --ninja false)
useNinja=true

Comment thread
steveisok marked this conversation as resolved.
# Check if an action is passed in
declare -a actions=("b" "build" "r" "restore" "rebuild" "testnobuild" "sign" "publish" "clean")
actInt=($(comm -12 <(printf '%s\n' "${actions[@]/#/-}" | sort) <(printf '%s\n' "${@/#--/-}" | sort)))
Expand DownExpand Up@@ -496,20 +499,17 @@ while [[ $# -gt 0 ]]; do


-ninja)
if [ -z ${2+x} ]; then
arguments+=("/p:Ninja=true")
if [ -z ${2+x} ] || [[ "$2" == -* ]]; then
useNinja=true
shift 1
else
ninja="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [ "$ninja" = true ]; then
arguments+=("/p:Ninja=true")
shift 2
elif [ "$ninja" = false ]; then
shift 2
if [ "$ninja" = false ]; then
arguments+=("/p:Ninja=false")
shift 2
useNinja=false
else
arguments+=("/p:Ninja=true")
shift 1
useNinja=true
fi
fi
Comment thread
steveisok marked this conversation as resolved.
;;
Comment thread
steveisok marked this conversation as resolved.
Expand DownExpand Up@@ -582,6 +582,11 @@ arguments+=("-tl:false")
# disable line wrapping so that C&P from the console works well
arguments+=("-clp:ForceNoAlign")

# Apply ninja setting
if [[ "$useNinja" == true ]]; then
arguments+=("/p:Ninja=true")
Comment thread
steveisok marked this conversation as resolved.
fi

initDistroRid "$os" "$arch" "$crossBuild"

# Disable targeting pack caching as we reference a partially constructed targeting pack and update it later.
Expand Down
25 changes: 19 additions & 6 deletions eng/native/build-commons.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -217,8 +217,8 @@ build_native()
pushd "$intermediatesDir"

buildTool="$SCAN_BUILD_COMMAND -o $__BinDir/scan-build-log $buildTool"
echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"
Comment thread
steveisok marked this conversation as resolved.

popd
Expand All@@ -234,8 +234,8 @@ build_native()
# multiple targets. Instead, directly invoke the build tool to build multiple targets in one invocation.
pushd "$intermediatesDir"

echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"

popd
Expand DownExpand Up@@ -271,7 +271,7 @@ usage()
echo " will use ROOTFS_DIR environment variable if set."
echo "-gcc: optional argument to build using gcc in PATH."
echo "-gccx.y: optional argument to build using gcc version x.y."
echo "-ninja: target ninja instead of GNU make"
echo "-ninja: target ninja instead of GNU make (default: true, use -ninja false to disable)"
echo "-numproc: set the number of build processes."
echo "-targetrid: optional argument that overrides the target rid name."
echo "-portablebuild: pass -portablebuild=false to force a non-portable build."
Expand DownExpand Up@@ -311,6 +311,9 @@ else
__NumProc=1
fi

# Default to using Ninja for faster builds
__UseNinja=1

Comment thread
steveisok marked this conversation as resolved.
Comment thread
steveisok marked this conversation as resolved.
while :; do
if [[ "$#" -le 0 ]]; then
break
Expand DownExpand Up@@ -412,7 +415,17 @@ while :; do
;;

ninja|-ninja)
__UseNinja=1
if [[ -z "${2+x}" ]] || [[ "$2" == -* ]]; then
__UseNinja=1
else
ninja_arg="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [[ "$ninja_arg" == "false" ]]; then
__UseNinja=0
else
__UseNinja=1
fi
shift
fi
;;

numproc|-numproc)
Expand Down
1 change: 0 additions & 1 deletion src/coreclr/build-runtime.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,7 +99,6 @@ __SkipRestore=""
__SourceDir="$__ProjectDir/src"
__StaticAnalyzer=0
__UnprocessedBuildArgs=
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__RequestedBuildComponents=""
Expand Down
1 change: 0 additions & 1 deletion src/tests/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -347,7 +347,6 @@ __SkipRestore=""
__SkipRestorePackages=0
__SourceDir="$__ProjectDir/src"
__UnprocessedBuildArgs=()
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__Priority=0
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Default to ninja for faster builds (mac & linux) by steveisok · Pull Request #124041 · dotnet/runtime · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/workflow/requirements/freebsd-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -56,7 +56,7 @@ Install the following packages:
* openssl (optional)
* python39
* libinotify
* ninja (optional, enables building native code with ninja instead of make)
* ninja

```sh
sudo pkg install --yes libunwind icu libinotify lttng-ust krb5 cmake openssl ninja
Expand Down
4 changes: 2 additions & 2 deletions docs/workflow/requirements/linux-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -47,7 +47,7 @@ The packages you need to install are shown in the following list:
- `lld`
- `lldb`
- `llvm`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python-is-python3`

Expand DownExpand Up@@ -116,7 +116,7 @@ Install the following packages for the toolchain:
- `lldb`
- `llvm`
- `lttng-ust-devel`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `openssl-devel`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python`
Expand Down
2 changes: 1 addition & 1 deletion docs/workflow/requirements/macos-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ To build the runtime repo, you will also need to install the following dependenc
- `icu4c`
- `pkg-config`
- `python3`
- `ninja` (This one is optional. It is an alternative tool to `make` for building native code)
- `ninja`
Comment thread
steveisok marked this conversation as resolved.

You can install them separately, or you can alternatively opt to install *[Homebrew](https://brew.sh/)* and use the `install-dependencies.sh` script provided by the repo, which takes care of everything for you. If you go by this route, once you have *Homebrew* up and running on your machine, run the following command from the root of the repo to download and install all the necessary dependencies at once:

Expand Down
25 changes: 15 additions & 10 deletions eng/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ usage()
echo " --gccx.y Optional argument to build using gcc version x.y."
echo " --portablebuild Optional argument: set to false to force a non-portable build."
echo " --keepnativesymbols Optional argument: set to true to keep native symbols/debuginfo in generated binaries."
echo " --ninja Optional argument: set to true to use Ninja instead of Make to run the native build."
echo " --ninja Optional argument: use Ninja instead of Make (default: true, use --ninja false to disable)."
echo " --pgoinstrument Optional argument: build PGO-instrumented runtime"
echo " --fsanitize Optional argument: Specify native sanitizers to instrument the native build with. Supported values are: 'address'."
echo ""
Expand DownExpand Up@@ -166,6 +166,9 @@ source $scriptroot/common/native/init-os-and-arch.sh

hostArch=$arch

# Default to using Ninja for faster builds (can be overridden with --ninja false)
useNinja=true

Comment thread
steveisok marked this conversation as resolved.
# Check if an action is passed in
declare -a actions=("b" "build" "r" "restore" "rebuild" "testnobuild" "sign" "publish" "clean")
actInt=($(comm -12 <(printf '%s\n' "${actions[@]/#/-}" | sort) <(printf '%s\n' "${@/#--/-}" | sort)))
Expand DownExpand Up@@ -496,20 +499,17 @@ while [[ $# -gt 0 ]]; do


-ninja)
if [ -z ${2+x} ]; then
arguments+=("/p:Ninja=true")
if [ -z ${2+x} ] || [[ "$2" == -* ]]; then
useNinja=true
shift 1
else
ninja="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [ "$ninja" = true ]; then
arguments+=("/p:Ninja=true")
shift 2
elif [ "$ninja" = false ]; then
shift 2
if [ "$ninja" = false ]; then
arguments+=("/p:Ninja=false")
shift 2
useNinja=false
else
arguments+=("/p:Ninja=true")
shift 1
useNinja=true
fi
fi
Comment thread
steveisok marked this conversation as resolved.
;;
Comment thread
steveisok marked this conversation as resolved.
Expand DownExpand Up@@ -582,6 +582,11 @@ arguments+=("-tl:false")
# disable line wrapping so that C&P from the console works well
arguments+=("-clp:ForceNoAlign")

# Apply ninja setting
if [[ "$useNinja" == true ]]; then
arguments+=("/p:Ninja=true")
Comment thread
steveisok marked this conversation as resolved.
fi

initDistroRid "$os" "$arch" "$crossBuild"

# Disable targeting pack caching as we reference a partially constructed targeting pack and update it later.
Expand Down
25 changes: 19 additions & 6 deletions eng/native/build-commons.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -217,8 +217,8 @@ build_native()
pushd "$intermediatesDir"

buildTool="$SCAN_BUILD_COMMAND -o $__BinDir/scan-build-log $buildTool"
echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"
Comment thread
steveisok marked this conversation as resolved.

popd
Expand All@@ -234,8 +234,8 @@ build_native()
# multiple targets. Instead, directly invoke the build tool to build multiple targets in one invocation.
pushd "$intermediatesDir"

echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"

popd
Expand DownExpand Up@@ -271,7 +271,7 @@ usage()
echo " will use ROOTFS_DIR environment variable if set."
echo "-gcc: optional argument to build using gcc in PATH."
echo "-gccx.y: optional argument to build using gcc version x.y."
echo "-ninja: target ninja instead of GNU make"
echo "-ninja: target ninja instead of GNU make (default: true, use -ninja false to disable)"
echo "-numproc: set the number of build processes."
echo "-targetrid: optional argument that overrides the target rid name."
echo "-portablebuild: pass -portablebuild=false to force a non-portable build."
Expand DownExpand Up@@ -311,6 +311,9 @@ else
__NumProc=1
fi

# Default to using Ninja for faster builds
__UseNinja=1

Comment thread
steveisok marked this conversation as resolved.
Comment thread
steveisok marked this conversation as resolved.
while :; do
if [[ "$#" -le 0 ]]; then
break
Expand DownExpand Up@@ -412,7 +415,17 @@ while :; do
;;

ninja|-ninja)
__UseNinja=1
if [[ -z "${2+x}" ]] || [[ "$2" == -* ]]; then
__UseNinja=1
else
ninja_arg="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [[ "$ninja_arg" == "false" ]]; then
__UseNinja=0
else
__UseNinja=1
fi
shift
fi
;;

numproc|-numproc)
Expand Down
1 change: 0 additions & 1 deletion src/coreclr/build-runtime.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,7 +99,6 @@ __SkipRestore=""
__SourceDir="$__ProjectDir/src"
__StaticAnalyzer=0
__UnprocessedBuildArgs=
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__RequestedBuildComponents=""
Expand Down
1 change: 0 additions & 1 deletion src/tests/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -347,7 +347,6 @@ __SkipRestore=""
__SkipRestorePackages=0
__SourceDir="$__ProjectDir/src"
__UnprocessedBuildArgs=()
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__Priority=0
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Default to ninja for faster builds (mac & linux) by steveisok · Pull Request #124041 · dotnet/runtime · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/workflow/requirements/freebsd-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -56,7 +56,7 @@ Install the following packages:
* openssl (optional)
* python39
* libinotify
* ninja (optional, enables building native code with ninja instead of make)
* ninja

```sh
sudo pkg install --yes libunwind icu libinotify lttng-ust krb5 cmake openssl ninja
Expand Down
4 changes: 2 additions & 2 deletions docs/workflow/requirements/linux-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -47,7 +47,7 @@ The packages you need to install are shown in the following list:
- `lld`
- `lldb`
- `llvm`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python-is-python3`

Expand DownExpand Up@@ -116,7 +116,7 @@ Install the following packages for the toolchain:
- `lldb`
- `llvm`
- `lttng-ust-devel`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `openssl-devel`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python`
Expand Down
2 changes: 1 addition & 1 deletion docs/workflow/requirements/macos-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ To build the runtime repo, you will also need to install the following dependenc
- `icu4c`
- `pkg-config`
- `python3`
- `ninja` (This one is optional. It is an alternative tool to `make` for building native code)
- `ninja`
Comment thread
steveisok marked this conversation as resolved.

You can install them separately, or you can alternatively opt to install *[Homebrew](https://brew.sh/)* and use the `install-dependencies.sh` script provided by the repo, which takes care of everything for you. If you go by this route, once you have *Homebrew* up and running on your machine, run the following command from the root of the repo to download and install all the necessary dependencies at once:

Expand Down
25 changes: 15 additions & 10 deletions eng/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ usage()
echo " --gccx.y Optional argument to build using gcc version x.y."
echo " --portablebuild Optional argument: set to false to force a non-portable build."
echo " --keepnativesymbols Optional argument: set to true to keep native symbols/debuginfo in generated binaries."
echo " --ninja Optional argument: set to true to use Ninja instead of Make to run the native build."
echo " --ninja Optional argument: use Ninja instead of Make (default: true, use --ninja false to disable)."
echo " --pgoinstrument Optional argument: build PGO-instrumented runtime"
echo " --fsanitize Optional argument: Specify native sanitizers to instrument the native build with. Supported values are: 'address'."
echo ""
Expand DownExpand Up@@ -166,6 +166,9 @@ source $scriptroot/common/native/init-os-and-arch.sh

hostArch=$arch

# Default to using Ninja for faster builds (can be overridden with --ninja false)
useNinja=true

Comment thread
steveisok marked this conversation as resolved.
# Check if an action is passed in
declare -a actions=("b" "build" "r" "restore" "rebuild" "testnobuild" "sign" "publish" "clean")
actInt=($(comm -12 <(printf '%s\n' "${actions[@]/#/-}" | sort) <(printf '%s\n' "${@/#--/-}" | sort)))
Expand DownExpand Up@@ -496,20 +499,17 @@ while [[ $# -gt 0 ]]; do


-ninja)
if [ -z ${2+x} ]; then
arguments+=("/p:Ninja=true")
if [ -z ${2+x} ] || [[ "$2" == -* ]]; then
useNinja=true
shift 1
else
ninja="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [ "$ninja" = true ]; then
arguments+=("/p:Ninja=true")
shift 2
elif [ "$ninja" = false ]; then
shift 2
if [ "$ninja" = false ]; then
arguments+=("/p:Ninja=false")
shift 2
useNinja=false
else
arguments+=("/p:Ninja=true")
shift 1
useNinja=true
fi
fi
Comment thread
steveisok marked this conversation as resolved.
;;
Comment thread
steveisok marked this conversation as resolved.
Expand DownExpand Up@@ -582,6 +582,11 @@ arguments+=("-tl:false")
# disable line wrapping so that C&P from the console works well
arguments+=("-clp:ForceNoAlign")

# Apply ninja setting
if [[ "$useNinja" == true ]]; then
arguments+=("/p:Ninja=true")
Comment thread
steveisok marked this conversation as resolved.
fi

initDistroRid "$os" "$arch" "$crossBuild"

# Disable targeting pack caching as we reference a partially constructed targeting pack and update it later.
Expand Down
25 changes: 19 additions & 6 deletions eng/native/build-commons.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -217,8 +217,8 @@ build_native()
pushd "$intermediatesDir"

buildTool="$SCAN_BUILD_COMMAND -o $__BinDir/scan-build-log $buildTool"
echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"
Comment thread
steveisok marked this conversation as resolved.

popd
Expand All@@ -234,8 +234,8 @@ build_native()
# multiple targets. Instead, directly invoke the build tool to build multiple targets in one invocation.
pushd "$intermediatesDir"

echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"

popd
Expand DownExpand Up@@ -271,7 +271,7 @@ usage()
echo " will use ROOTFS_DIR environment variable if set."
echo "-gcc: optional argument to build using gcc in PATH."
echo "-gccx.y: optional argument to build using gcc version x.y."
echo "-ninja: target ninja instead of GNU make"
echo "-ninja: target ninja instead of GNU make (default: true, use -ninja false to disable)"
echo "-numproc: set the number of build processes."
echo "-targetrid: optional argument that overrides the target rid name."
echo "-portablebuild: pass -portablebuild=false to force a non-portable build."
Expand DownExpand Up@@ -311,6 +311,9 @@ else
__NumProc=1
fi

# Default to using Ninja for faster builds
__UseNinja=1

Comment thread
steveisok marked this conversation as resolved.
Comment thread
steveisok marked this conversation as resolved.
while :; do
if [[ "$#" -le 0 ]]; then
break
Expand DownExpand Up@@ -412,7 +415,17 @@ while :; do
;;

ninja|-ninja)
__UseNinja=1
if [[ -z "${2+x}" ]] || [[ "$2" == -* ]]; then
__UseNinja=1
else
ninja_arg="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [[ "$ninja_arg" == "false" ]]; then
__UseNinja=0
else
__UseNinja=1
fi
shift
fi
;;

numproc|-numproc)
Expand Down
1 change: 0 additions & 1 deletion src/coreclr/build-runtime.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,7 +99,6 @@ __SkipRestore=""
__SourceDir="$__ProjectDir/src"
__StaticAnalyzer=0
__UnprocessedBuildArgs=
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__RequestedBuildComponents=""
Expand Down
1 change: 0 additions & 1 deletion src/tests/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -347,7 +347,6 @@ __SkipRestore=""
__SkipRestorePackages=0
__SourceDir="$__ProjectDir/src"
__UnprocessedBuildArgs=()
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__Priority=0
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Default to ninja for faster builds (mac & linux) by steveisok · Pull Request #124041 · dotnet/runtime · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/workflow/requirements/freebsd-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -56,7 +56,7 @@ Install the following packages:
* openssl (optional)
* python39
* libinotify
* ninja (optional, enables building native code with ninja instead of make)
* ninja

```sh
sudo pkg install --yes libunwind icu libinotify lttng-ust krb5 cmake openssl ninja
Expand Down
4 changes: 2 additions & 2 deletions docs/workflow/requirements/linux-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -47,7 +47,7 @@ The packages you need to install are shown in the following list:
- `lld`
- `lldb`
- `llvm`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python-is-python3`

Expand DownExpand Up@@ -116,7 +116,7 @@ Install the following packages for the toolchain:
- `lldb`
- `llvm`
- `lttng-ust-devel`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `openssl-devel`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python`
Expand Down
2 changes: 1 addition & 1 deletion docs/workflow/requirements/macos-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ To build the runtime repo, you will also need to install the following dependenc
- `icu4c`
- `pkg-config`
- `python3`
- `ninja` (This one is optional. It is an alternative tool to `make` for building native code)
- `ninja`
Comment thread
steveisok marked this conversation as resolved.

You can install them separately, or you can alternatively opt to install *[Homebrew](https://brew.sh/)* and use the `install-dependencies.sh` script provided by the repo, which takes care of everything for you. If you go by this route, once you have *Homebrew* up and running on your machine, run the following command from the root of the repo to download and install all the necessary dependencies at once:

Expand Down
25 changes: 15 additions & 10 deletions eng/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ usage()
echo " --gccx.y Optional argument to build using gcc version x.y."
echo " --portablebuild Optional argument: set to false to force a non-portable build."
echo " --keepnativesymbols Optional argument: set to true to keep native symbols/debuginfo in generated binaries."
echo " --ninja Optional argument: set to true to use Ninja instead of Make to run the native build."
echo " --ninja Optional argument: use Ninja instead of Make (default: true, use --ninja false to disable)."
echo " --pgoinstrument Optional argument: build PGO-instrumented runtime"
echo " --fsanitize Optional argument: Specify native sanitizers to instrument the native build with. Supported values are: 'address'."
echo ""
Expand DownExpand Up@@ -166,6 +166,9 @@ source $scriptroot/common/native/init-os-and-arch.sh

hostArch=$arch

# Default to using Ninja for faster builds (can be overridden with --ninja false)
useNinja=true

Comment thread
steveisok marked this conversation as resolved.
# Check if an action is passed in
declare -a actions=("b" "build" "r" "restore" "rebuild" "testnobuild" "sign" "publish" "clean")
actInt=($(comm -12 <(printf '%s\n' "${actions[@]/#/-}" | sort) <(printf '%s\n' "${@/#--/-}" | sort)))
Expand DownExpand Up@@ -496,20 +499,17 @@ while [[ $# -gt 0 ]]; do


-ninja)
if [ -z ${2+x} ]; then
arguments+=("/p:Ninja=true")
if [ -z ${2+x} ] || [[ "$2" == -* ]]; then
useNinja=true
shift 1
else
ninja="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [ "$ninja" = true ]; then
arguments+=("/p:Ninja=true")
shift 2
elif [ "$ninja" = false ]; then
shift 2
if [ "$ninja" = false ]; then
arguments+=("/p:Ninja=false")
shift 2
useNinja=false
else
arguments+=("/p:Ninja=true")
shift 1
useNinja=true
fi
fi
Comment thread
steveisok marked this conversation as resolved.
;;
Comment thread
steveisok marked this conversation as resolved.
Expand DownExpand Up@@ -582,6 +582,11 @@ arguments+=("-tl:false")
# disable line wrapping so that C&P from the console works well
arguments+=("-clp:ForceNoAlign")

# Apply ninja setting
if [[ "$useNinja" == true ]]; then
arguments+=("/p:Ninja=true")
Comment thread
steveisok marked this conversation as resolved.
fi

initDistroRid "$os" "$arch" "$crossBuild"

# Disable targeting pack caching as we reference a partially constructed targeting pack and update it later.
Expand Down
25 changes: 19 additions & 6 deletions eng/native/build-commons.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -217,8 +217,8 @@ build_native()
pushd "$intermediatesDir"

buildTool="$SCAN_BUILD_COMMAND -o $__BinDir/scan-build-log $buildTool"
echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"
Comment thread
steveisok marked this conversation as resolved.

popd
Expand All@@ -234,8 +234,8 @@ build_native()
# multiple targets. Instead, directly invoke the build tool to build multiple targets in one invocation.
pushd "$intermediatesDir"

echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"

popd
Expand DownExpand Up@@ -271,7 +271,7 @@ usage()
echo " will use ROOTFS_DIR environment variable if set."
echo "-gcc: optional argument to build using gcc in PATH."
echo "-gccx.y: optional argument to build using gcc version x.y."
echo "-ninja: target ninja instead of GNU make"
echo "-ninja: target ninja instead of GNU make (default: true, use -ninja false to disable)"
echo "-numproc: set the number of build processes."
echo "-targetrid: optional argument that overrides the target rid name."
echo "-portablebuild: pass -portablebuild=false to force a non-portable build."
Expand DownExpand Up@@ -311,6 +311,9 @@ else
__NumProc=1
fi

# Default to using Ninja for faster builds
__UseNinja=1

Comment thread
steveisok marked this conversation as resolved.
Comment thread
steveisok marked this conversation as resolved.
while :; do
if [[ "$#" -le 0 ]]; then
break
Expand DownExpand Up@@ -412,7 +415,17 @@ while :; do
;;

ninja|-ninja)
__UseNinja=1
if [[ -z "${2+x}" ]] || [[ "$2" == -* ]]; then
__UseNinja=1
else
ninja_arg="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [[ "$ninja_arg" == "false" ]]; then
__UseNinja=0
else
__UseNinja=1
fi
shift
fi
;;

numproc|-numproc)
Expand Down
1 change: 0 additions & 1 deletion src/coreclr/build-runtime.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,7 +99,6 @@ __SkipRestore=""
__SourceDir="$__ProjectDir/src"
__StaticAnalyzer=0
__UnprocessedBuildArgs=
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__RequestedBuildComponents=""
Expand Down
1 change: 0 additions & 1 deletion src/tests/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -347,7 +347,6 @@ __SkipRestore=""
__SkipRestorePackages=0
__SourceDir="$__ProjectDir/src"
__UnprocessedBuildArgs=()
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__Priority=0
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Default to ninja for faster builds (mac & linux) by steveisok · Pull Request #124041 · dotnet/runtime · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/workflow/requirements/freebsd-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -56,7 +56,7 @@ Install the following packages:
* openssl (optional)
* python39
* libinotify
* ninja (optional, enables building native code with ninja instead of make)
* ninja

```sh
sudo pkg install --yes libunwind icu libinotify lttng-ust krb5 cmake openssl ninja
Expand Down
4 changes: 2 additions & 2 deletions docs/workflow/requirements/linux-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -47,7 +47,7 @@ The packages you need to install are shown in the following list:
- `lld`
- `lldb`
- `llvm`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python-is-python3`

Expand DownExpand Up@@ -116,7 +116,7 @@ Install the following packages for the toolchain:
- `lldb`
- `llvm`
- `lttng-ust-devel`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `openssl-devel`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python`
Expand Down
2 changes: 1 addition & 1 deletion docs/workflow/requirements/macos-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ To build the runtime repo, you will also need to install the following dependenc
- `icu4c`
- `pkg-config`
- `python3`
- `ninja` (This one is optional. It is an alternative tool to `make` for building native code)
- `ninja`
Comment thread
steveisok marked this conversation as resolved.

You can install them separately, or you can alternatively opt to install *[Homebrew](https://brew.sh/)* and use the `install-dependencies.sh` script provided by the repo, which takes care of everything for you. If you go by this route, once you have *Homebrew* up and running on your machine, run the following command from the root of the repo to download and install all the necessary dependencies at once:

Expand Down
25 changes: 15 additions & 10 deletions eng/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ usage()
echo " --gccx.y Optional argument to build using gcc version x.y."
echo " --portablebuild Optional argument: set to false to force a non-portable build."
echo " --keepnativesymbols Optional argument: set to true to keep native symbols/debuginfo in generated binaries."
echo " --ninja Optional argument: set to true to use Ninja instead of Make to run the native build."
echo " --ninja Optional argument: use Ninja instead of Make (default: true, use --ninja false to disable)."
echo " --pgoinstrument Optional argument: build PGO-instrumented runtime"
echo " --fsanitize Optional argument: Specify native sanitizers to instrument the native build with. Supported values are: 'address'."
echo ""
Expand DownExpand Up@@ -166,6 +166,9 @@ source $scriptroot/common/native/init-os-and-arch.sh

hostArch=$arch

# Default to using Ninja for faster builds (can be overridden with --ninja false)
useNinja=true

Comment thread
steveisok marked this conversation as resolved.
# Check if an action is passed in
declare -a actions=("b" "build" "r" "restore" "rebuild" "testnobuild" "sign" "publish" "clean")
actInt=($(comm -12 <(printf '%s\n' "${actions[@]/#/-}" | sort) <(printf '%s\n' "${@/#--/-}" | sort)))
Expand DownExpand Up@@ -496,20 +499,17 @@ while [[ $# -gt 0 ]]; do


-ninja)
if [ -z ${2+x} ]; then
arguments+=("/p:Ninja=true")
if [ -z ${2+x} ] || [[ "$2" == -* ]]; then
useNinja=true
shift 1
else
ninja="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [ "$ninja" = true ]; then
arguments+=("/p:Ninja=true")
shift 2
elif [ "$ninja" = false ]; then
shift 2
if [ "$ninja" = false ]; then
arguments+=("/p:Ninja=false")
shift 2
useNinja=false
else
arguments+=("/p:Ninja=true")
shift 1
useNinja=true
fi
fi
Comment thread
steveisok marked this conversation as resolved.
;;
Comment thread
steveisok marked this conversation as resolved.
Expand DownExpand Up@@ -582,6 +582,11 @@ arguments+=("-tl:false")
# disable line wrapping so that C&P from the console works well
arguments+=("-clp:ForceNoAlign")

# Apply ninja setting
if [[ "$useNinja" == true ]]; then
arguments+=("/p:Ninja=true")
Comment thread
steveisok marked this conversation as resolved.
fi

initDistroRid "$os" "$arch" "$crossBuild"

# Disable targeting pack caching as we reference a partially constructed targeting pack and update it later.
Expand Down
25 changes: 19 additions & 6 deletions eng/native/build-commons.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -217,8 +217,8 @@ build_native()
pushd "$intermediatesDir"

buildTool="$SCAN_BUILD_COMMAND -o $__BinDir/scan-build-log $buildTool"
echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"
Comment thread
steveisok marked this conversation as resolved.

popd
Expand All@@ -234,8 +234,8 @@ build_native()
# multiple targets. Instead, directly invoke the build tool to build multiple targets in one invocation.
pushd "$intermediatesDir"

echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"

popd
Expand DownExpand Up@@ -271,7 +271,7 @@ usage()
echo " will use ROOTFS_DIR environment variable if set."
echo "-gcc: optional argument to build using gcc in PATH."
echo "-gccx.y: optional argument to build using gcc version x.y."
echo "-ninja: target ninja instead of GNU make"
echo "-ninja: target ninja instead of GNU make (default: true, use -ninja false to disable)"
echo "-numproc: set the number of build processes."
echo "-targetrid: optional argument that overrides the target rid name."
echo "-portablebuild: pass -portablebuild=false to force a non-portable build."
Expand DownExpand Up@@ -311,6 +311,9 @@ else
__NumProc=1
fi

# Default to using Ninja for faster builds
__UseNinja=1

Comment thread
steveisok marked this conversation as resolved.
Comment thread
steveisok marked this conversation as resolved.
while :; do
if [[ "$#" -le 0 ]]; then
break
Expand DownExpand Up@@ -412,7 +415,17 @@ while :; do
;;

ninja|-ninja)
__UseNinja=1
if [[ -z "${2+x}" ]] || [[ "$2" == -* ]]; then
__UseNinja=1
else
ninja_arg="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [[ "$ninja_arg" == "false" ]]; then
__UseNinja=0
else
__UseNinja=1
fi
shift
fi
;;

numproc|-numproc)
Expand Down
1 change: 0 additions & 1 deletion src/coreclr/build-runtime.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,7 +99,6 @@ __SkipRestore=""
__SourceDir="$__ProjectDir/src"
__StaticAnalyzer=0
__UnprocessedBuildArgs=
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__RequestedBuildComponents=""
Expand Down
1 change: 0 additions & 1 deletion src/tests/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -347,7 +347,6 @@ __SkipRestore=""
__SkipRestorePackages=0
__SourceDir="$__ProjectDir/src"
__UnprocessedBuildArgs=()
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__Priority=0
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Default to ninja for faster builds (mac & linux) by steveisok · Pull Request #124041 · dotnet/runtime · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/workflow/requirements/freebsd-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -56,7 +56,7 @@ Install the following packages:
* openssl (optional)
* python39
* libinotify
* ninja (optional, enables building native code with ninja instead of make)
* ninja

```sh
sudo pkg install --yes libunwind icu libinotify lttng-ust krb5 cmake openssl ninja
Expand Down
4 changes: 2 additions & 2 deletions docs/workflow/requirements/linux-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -47,7 +47,7 @@ The packages you need to install are shown in the following list:
- `lld`
- `lldb`
- `llvm`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python-is-python3`

Expand DownExpand Up@@ -116,7 +116,7 @@ Install the following packages for the toolchain:
- `lldb`
- `llvm`
- `lttng-ust-devel`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `openssl-devel`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python`
Expand Down
2 changes: 1 addition & 1 deletion docs/workflow/requirements/macos-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ To build the runtime repo, you will also need to install the following dependenc
- `icu4c`
- `pkg-config`
- `python3`
- `ninja` (This one is optional. It is an alternative tool to `make` for building native code)
- `ninja`
Comment thread
steveisok marked this conversation as resolved.

You can install them separately, or you can alternatively opt to install *[Homebrew](https://brew.sh/)* and use the `install-dependencies.sh` script provided by the repo, which takes care of everything for you. If you go by this route, once you have *Homebrew* up and running on your machine, run the following command from the root of the repo to download and install all the necessary dependencies at once:

Expand Down
25 changes: 15 additions & 10 deletions eng/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ usage()
echo " --gccx.y Optional argument to build using gcc version x.y."
echo " --portablebuild Optional argument: set to false to force a non-portable build."
echo " --keepnativesymbols Optional argument: set to true to keep native symbols/debuginfo in generated binaries."
echo " --ninja Optional argument: set to true to use Ninja instead of Make to run the native build."
echo " --ninja Optional argument: use Ninja instead of Make (default: true, use --ninja false to disable)."
echo " --pgoinstrument Optional argument: build PGO-instrumented runtime"
echo " --fsanitize Optional argument: Specify native sanitizers to instrument the native build with. Supported values are: 'address'."
echo ""
Expand DownExpand Up@@ -166,6 +166,9 @@ source $scriptroot/common/native/init-os-and-arch.sh

hostArch=$arch

# Default to using Ninja for faster builds (can be overridden with --ninja false)
useNinja=true

Comment thread
steveisok marked this conversation as resolved.
# Check if an action is passed in
declare -a actions=("b" "build" "r" "restore" "rebuild" "testnobuild" "sign" "publish" "clean")
actInt=($(comm -12 <(printf '%s\n' "${actions[@]/#/-}" | sort) <(printf '%s\n' "${@/#--/-}" | sort)))
Expand DownExpand Up@@ -496,20 +499,17 @@ while [[ $# -gt 0 ]]; do


-ninja)
if [ -z ${2+x} ]; then
arguments+=("/p:Ninja=true")
if [ -z ${2+x} ] || [[ "$2" == -* ]]; then
useNinja=true
shift 1
else
ninja="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [ "$ninja" = true ]; then
arguments+=("/p:Ninja=true")
shift 2
elif [ "$ninja" = false ]; then
shift 2
if [ "$ninja" = false ]; then
arguments+=("/p:Ninja=false")
shift 2
useNinja=false
else
arguments+=("/p:Ninja=true")
shift 1
useNinja=true
fi
fi
Comment thread
steveisok marked this conversation as resolved.
;;
Comment thread
steveisok marked this conversation as resolved.
Expand DownExpand Up@@ -582,6 +582,11 @@ arguments+=("-tl:false")
# disable line wrapping so that C&P from the console works well
arguments+=("-clp:ForceNoAlign")

# Apply ninja setting
if [[ "$useNinja" == true ]]; then
arguments+=("/p:Ninja=true")
Comment thread
steveisok marked this conversation as resolved.
fi

initDistroRid "$os" "$arch" "$crossBuild"

# Disable targeting pack caching as we reference a partially constructed targeting pack and update it later.
Expand Down
25 changes: 19 additions & 6 deletions eng/native/build-commons.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -217,8 +217,8 @@ build_native()
pushd "$intermediatesDir"

buildTool="$SCAN_BUILD_COMMAND -o $__BinDir/scan-build-log $buildTool"
echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"
Comment thread
steveisok marked this conversation as resolved.

popd
Expand All@@ -234,8 +234,8 @@ build_native()
# multiple targets. Instead, directly invoke the build tool to build multiple targets in one invocation.
pushd "$intermediatesDir"

echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"

popd
Expand DownExpand Up@@ -271,7 +271,7 @@ usage()
echo " will use ROOTFS_DIR environment variable if set."
echo "-gcc: optional argument to build using gcc in PATH."
echo "-gccx.y: optional argument to build using gcc version x.y."
echo "-ninja: target ninja instead of GNU make"
echo "-ninja: target ninja instead of GNU make (default: true, use -ninja false to disable)"
echo "-numproc: set the number of build processes."
echo "-targetrid: optional argument that overrides the target rid name."
echo "-portablebuild: pass -portablebuild=false to force a non-portable build."
Expand DownExpand Up@@ -311,6 +311,9 @@ else
__NumProc=1
fi

# Default to using Ninja for faster builds
__UseNinja=1

Comment thread
steveisok marked this conversation as resolved.
Comment thread
steveisok marked this conversation as resolved.
while :; do
if [[ "$#" -le 0 ]]; then
break
Expand DownExpand Up@@ -412,7 +415,17 @@ while :; do
;;

ninja|-ninja)
__UseNinja=1
if [[ -z "${2+x}" ]] || [[ "$2" == -* ]]; then
__UseNinja=1
else
ninja_arg="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [[ "$ninja_arg" == "false" ]]; then
__UseNinja=0
else
__UseNinja=1
fi
shift
fi
;;

numproc|-numproc)
Expand Down
1 change: 0 additions & 1 deletion src/coreclr/build-runtime.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,7 +99,6 @@ __SkipRestore=""
__SourceDir="$__ProjectDir/src"
__StaticAnalyzer=0
__UnprocessedBuildArgs=
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__RequestedBuildComponents=""
Expand Down
1 change: 0 additions & 1 deletion src/tests/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -347,7 +347,6 @@ __SkipRestore=""
__SkipRestorePackages=0
__SourceDir="$__ProjectDir/src"
__UnprocessedBuildArgs=()
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__Priority=0
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Default to ninja for faster builds (mac & linux) by steveisok · Pull Request #124041 · dotnet/runtime · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/workflow/requirements/freebsd-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -56,7 +56,7 @@ Install the following packages:
* openssl (optional)
* python39
* libinotify
* ninja (optional, enables building native code with ninja instead of make)
* ninja

```sh
sudo pkg install --yes libunwind icu libinotify lttng-ust krb5 cmake openssl ninja
Expand Down
4 changes: 2 additions & 2 deletions docs/workflow/requirements/linux-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -47,7 +47,7 @@ The packages you need to install are shown in the following list:
- `lld`
- `lldb`
- `llvm`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python-is-python3`

Expand DownExpand Up@@ -116,7 +116,7 @@ Install the following packages for the toolchain:
- `lldb`
- `llvm`
- `lttng-ust-devel`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `openssl-devel`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python`
Expand Down
2 changes: 1 addition & 1 deletion docs/workflow/requirements/macos-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ To build the runtime repo, you will also need to install the following dependenc
- `icu4c`
- `pkg-config`
- `python3`
- `ninja` (This one is optional. It is an alternative tool to `make` for building native code)
- `ninja`
Comment thread
steveisok marked this conversation as resolved.

You can install them separately, or you can alternatively opt to install *[Homebrew](https://brew.sh/)* and use the `install-dependencies.sh` script provided by the repo, which takes care of everything for you. If you go by this route, once you have *Homebrew* up and running on your machine, run the following command from the root of the repo to download and install all the necessary dependencies at once:

Expand Down
25 changes: 15 additions & 10 deletions eng/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ usage()
echo " --gccx.y Optional argument to build using gcc version x.y."
echo " --portablebuild Optional argument: set to false to force a non-portable build."
echo " --keepnativesymbols Optional argument: set to true to keep native symbols/debuginfo in generated binaries."
echo " --ninja Optional argument: set to true to use Ninja instead of Make to run the native build."
echo " --ninja Optional argument: use Ninja instead of Make (default: true, use --ninja false to disable)."
echo " --pgoinstrument Optional argument: build PGO-instrumented runtime"
echo " --fsanitize Optional argument: Specify native sanitizers to instrument the native build with. Supported values are: 'address'."
echo ""
Expand DownExpand Up@@ -166,6 +166,9 @@ source $scriptroot/common/native/init-os-and-arch.sh

hostArch=$arch

# Default to using Ninja for faster builds (can be overridden with --ninja false)
useNinja=true

Comment thread
steveisok marked this conversation as resolved.
# Check if an action is passed in
declare -a actions=("b" "build" "r" "restore" "rebuild" "testnobuild" "sign" "publish" "clean")
actInt=($(comm -12 <(printf '%s\n' "${actions[@]/#/-}" | sort) <(printf '%s\n' "${@/#--/-}" | sort)))
Expand DownExpand Up@@ -496,20 +499,17 @@ while [[ $# -gt 0 ]]; do


-ninja)
if [ -z ${2+x} ]; then
arguments+=("/p:Ninja=true")
if [ -z ${2+x} ] || [[ "$2" == -* ]]; then
useNinja=true
shift 1
else
ninja="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [ "$ninja" = true ]; then
arguments+=("/p:Ninja=true")
shift 2
elif [ "$ninja" = false ]; then
shift 2
if [ "$ninja" = false ]; then
arguments+=("/p:Ninja=false")
shift 2
useNinja=false
else
arguments+=("/p:Ninja=true")
shift 1
useNinja=true
fi
fi
Comment thread
steveisok marked this conversation as resolved.
;;
Comment thread
steveisok marked this conversation as resolved.
Expand DownExpand Up@@ -582,6 +582,11 @@ arguments+=("-tl:false")
# disable line wrapping so that C&P from the console works well
arguments+=("-clp:ForceNoAlign")

# Apply ninja setting
if [[ "$useNinja" == true ]]; then
arguments+=("/p:Ninja=true")
Comment thread
steveisok marked this conversation as resolved.
fi

initDistroRid "$os" "$arch" "$crossBuild"

# Disable targeting pack caching as we reference a partially constructed targeting pack and update it later.
Expand Down
25 changes: 19 additions & 6 deletions eng/native/build-commons.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -217,8 +217,8 @@ build_native()
pushd "$intermediatesDir"

buildTool="$SCAN_BUILD_COMMAND -o $__BinDir/scan-build-log $buildTool"
echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"
Comment thread
steveisok marked this conversation as resolved.

popd
Expand All@@ -234,8 +234,8 @@ build_native()
# multiple targets. Instead, directly invoke the build tool to build multiple targets in one invocation.
pushd "$intermediatesDir"

echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"

popd
Expand DownExpand Up@@ -271,7 +271,7 @@ usage()
echo " will use ROOTFS_DIR environment variable if set."
echo "-gcc: optional argument to build using gcc in PATH."
echo "-gccx.y: optional argument to build using gcc version x.y."
echo "-ninja: target ninja instead of GNU make"
echo "-ninja: target ninja instead of GNU make (default: true, use -ninja false to disable)"
echo "-numproc: set the number of build processes."
echo "-targetrid: optional argument that overrides the target rid name."
echo "-portablebuild: pass -portablebuild=false to force a non-portable build."
Expand DownExpand Up@@ -311,6 +311,9 @@ else
__NumProc=1
fi

# Default to using Ninja for faster builds
__UseNinja=1

Comment thread
steveisok marked this conversation as resolved.
Comment thread
steveisok marked this conversation as resolved.
while :; do
if [[ "$#" -le 0 ]]; then
break
Expand DownExpand Up@@ -412,7 +415,17 @@ while :; do
;;

ninja|-ninja)
__UseNinja=1
if [[ -z "${2+x}" ]] || [[ "$2" == -* ]]; then
__UseNinja=1
else
ninja_arg="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [[ "$ninja_arg" == "false" ]]; then
__UseNinja=0
else
__UseNinja=1
fi
shift
fi
;;

numproc|-numproc)
Expand Down
1 change: 0 additions & 1 deletion src/coreclr/build-runtime.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,7 +99,6 @@ __SkipRestore=""
__SourceDir="$__ProjectDir/src"
__StaticAnalyzer=0
__UnprocessedBuildArgs=
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__RequestedBuildComponents=""
Expand Down
1 change: 0 additions & 1 deletion src/tests/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -347,7 +347,6 @@ __SkipRestore=""
__SkipRestorePackages=0
__SourceDir="$__ProjectDir/src"
__UnprocessedBuildArgs=()
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__Priority=0
Expand Down
Loading
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Default to ninja for faster builds (mac & linux) by steveisok · Pull Request #124041 · dotnet/runtime · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/workflow/requirements/freebsd-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -56,7 +56,7 @@ Install the following packages:
* openssl (optional)
* python39
* libinotify
* ninja (optional, enables building native code with ninja instead of make)
* ninja

```sh
sudo pkg install --yes libunwind icu libinotify lttng-ust krb5 cmake openssl ninja
Expand Down
4 changes: 2 additions & 2 deletions docs/workflow/requirements/linux-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -47,7 +47,7 @@ The packages you need to install are shown in the following list:
- `lld`
- `lldb`
- `llvm`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python-is-python3`

Expand DownExpand Up@@ -116,7 +116,7 @@ Install the following packages for the toolchain:
- `lldb`
- `llvm`
- `lttng-ust-devel`
- `ninja-build` (Optional. Enables building native code using `ninja` instead of `make`)
- `ninja-build`
- `openssl-devel`
- `pigz` (Optional. Enables parallel gzip compression for tarball creation in `packs` subset)
- `python`
Expand Down
2 changes: 1 addition & 1 deletion docs/workflow/requirements/macos-requirements.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -20,7 +20,7 @@ To build the runtime repo, you will also need to install the following dependenc
- `icu4c`
- `pkg-config`
- `python3`
- `ninja` (This one is optional. It is an alternative tool to `make` for building native code)
- `ninja`
Comment thread
steveisok marked this conversation as resolved.

You can install them separately, or you can alternatively opt to install *[Homebrew](https://brew.sh/)* and use the `install-dependencies.sh` script provided by the repo, which takes care of everything for you. If you go by this route, once you have *Homebrew* up and running on your machine, run the following command from the root of the repo to download and install all the necessary dependencies at once:

Expand Down
25 changes: 15 additions & 10 deletions eng/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -84,7 +84,7 @@ usage()
echo " --gccx.y Optional argument to build using gcc version x.y."
echo " --portablebuild Optional argument: set to false to force a non-portable build."
echo " --keepnativesymbols Optional argument: set to true to keep native symbols/debuginfo in generated binaries."
echo " --ninja Optional argument: set to true to use Ninja instead of Make to run the native build."
echo " --ninja Optional argument: use Ninja instead of Make (default: true, use --ninja false to disable)."
echo " --pgoinstrument Optional argument: build PGO-instrumented runtime"
echo " --fsanitize Optional argument: Specify native sanitizers to instrument the native build with. Supported values are: 'address'."
echo ""
Expand DownExpand Up@@ -166,6 +166,9 @@ source $scriptroot/common/native/init-os-and-arch.sh

hostArch=$arch

# Default to using Ninja for faster builds (can be overridden with --ninja false)
useNinja=true

Comment thread
steveisok marked this conversation as resolved.
# Check if an action is passed in
declare -a actions=("b" "build" "r" "restore" "rebuild" "testnobuild" "sign" "publish" "clean")
actInt=($(comm -12 <(printf '%s\n' "${actions[@]/#/-}" | sort) <(printf '%s\n' "${@/#--/-}" | sort)))
Expand DownExpand Up@@ -496,20 +499,17 @@ while [[ $# -gt 0 ]]; do


-ninja)
if [ -z ${2+x} ]; then
arguments+=("/p:Ninja=true")
if [ -z ${2+x} ] || [[ "$2" == -* ]]; then
useNinja=true
shift 1
else
ninja="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [ "$ninja" = true ]; then
arguments+=("/p:Ninja=true")
shift 2
elif [ "$ninja" = false ]; then
shift 2
if [ "$ninja" = false ]; then
arguments+=("/p:Ninja=false")
shift 2
useNinja=false
else
arguments+=("/p:Ninja=true")
shift 1
useNinja=true
fi
fi
Comment thread
steveisok marked this conversation as resolved.
;;
Comment thread
steveisok marked this conversation as resolved.
Expand DownExpand Up@@ -582,6 +582,11 @@ arguments+=("-tl:false")
# disable line wrapping so that C&P from the console works well
arguments+=("-clp:ForceNoAlign")

# Apply ninja setting
if [[ "$useNinja" == true ]]; then
arguments+=("/p:Ninja=true")
Comment thread
steveisok marked this conversation as resolved.
fi

initDistroRid "$os" "$arch" "$crossBuild"

# Disable targeting pack caching as we reference a partially constructed targeting pack and update it later.
Expand Down
25 changes: 19 additions & 6 deletions eng/native/build-commons.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -217,8 +217,8 @@ build_native()
pushd "$intermediatesDir"

buildTool="$SCAN_BUILD_COMMAND -o $__BinDir/scan-build-log $buildTool"
echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"
Comment thread
steveisok marked this conversation as resolved.

popd
Expand All@@ -234,8 +234,8 @@ build_native()
# multiple targets. Instead, directly invoke the build tool to build multiple targets in one invocation.
pushd "$intermediatesDir"

echo "Executing $buildTool $target -j $__NumProc"
"$buildTool" $target -j "$__NumProc"
echo "Executing $buildTool -j $__NumProc $target"
"$buildTool" -j "$__NumProc" $target
exit_code="$?"

popd
Expand DownExpand Up@@ -271,7 +271,7 @@ usage()
echo " will use ROOTFS_DIR environment variable if set."
echo "-gcc: optional argument to build using gcc in PATH."
echo "-gccx.y: optional argument to build using gcc version x.y."
echo "-ninja: target ninja instead of GNU make"
echo "-ninja: target ninja instead of GNU make (default: true, use -ninja false to disable)"
echo "-numproc: set the number of build processes."
echo "-targetrid: optional argument that overrides the target rid name."
echo "-portablebuild: pass -portablebuild=false to force a non-portable build."
Expand DownExpand Up@@ -311,6 +311,9 @@ else
__NumProc=1
fi

# Default to using Ninja for faster builds
__UseNinja=1

Comment thread
steveisok marked this conversation as resolved.
Comment thread
steveisok marked this conversation as resolved.
while :; do
if [[ "$#" -le 0 ]]; then
break
Expand DownExpand Up@@ -412,7 +415,17 @@ while :; do
;;

ninja|-ninja)
__UseNinja=1
if [[ -z "${2+x}" ]] || [[ "$2" == -* ]]; then
__UseNinja=1
else
ninja_arg="$(echo "$2" | tr "[:upper:]" "[:lower:]")"
if [[ "$ninja_arg" == "false" ]]; then
__UseNinja=0
else
__UseNinja=1
fi
shift
fi
;;

numproc|-numproc)
Expand Down
1 change: 0 additions & 1 deletion src/coreclr/build-runtime.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -99,7 +99,6 @@ __SkipRestore=""
__SourceDir="$__ProjectDir/src"
__StaticAnalyzer=0
__UnprocessedBuildArgs=
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__RequestedBuildComponents=""
Expand Down
1 change: 0 additions & 1 deletion src/tests/build.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -347,7 +347,6 @@ __SkipRestore=""
__SkipRestorePackages=0
__SourceDir="$__ProjectDir/src"
__UnprocessedBuildArgs=()
__UseNinja=0
__VerboseBuild=0
__CMakeArgs=""
__Priority=0
Expand Down
Loading