New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add more complete linux build instructions #101631
base: main
Are you sure you want to change the base?
Changes from all commits
c742746
ff5a2b9
130b59e
1b06568
ad5a56f
725c4b7
8d286b4
eb71ca4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
build-essential | ||
clang | ||
cmake | ||
curl | ||
gettext | ||
git | ||
libicu-dev | ||
libkrb5-dev | ||
liblldb-dev | ||
liblttng-ust-dev | ||
libssl-dev | ||
libunwind8-dev | ||
lld | ||
lldb | ||
llvm | ||
locales | ||
ninja-build | ||
python-is-python3 | ||
zlib1g-dev |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -39,6 +39,9 @@ check_prereqs() | |||||
# We try again with the PKG_CONFIG_PATH in place, if pkg-config still can't find OpenSSL, exit with an error, cmake won't find OpenSSL either | ||||||
pkg-config openssl || { echo >&2 "Please install openssl before running this script, see https://github.com/dotnet/runtime/blob/main/docs/workflow/requirements/macos-requirements.md"; exit 1; } | ||||||
fi | ||||||
else | ||||||
# Check presence of cmake on the path | ||||||
command -v cmake 2>/dev/null || { echo >&2 "Please install cmake before running this script, see https://github.com/dotnet/runtime/blob/main/docs/workflow/requirements/linux-requirements.md"; exit 1; } | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We are already testing it in gen-buildsys.sh. Also why is this linux only? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This check is happening earlier and is clearer. Ideally I'd like this check to happen even earlier, but I think that belongs in another PR. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We used to have an upfront check for a while and it was deleted in #39044. I think if we are bringing it back, we should do it for all platforms, not just linux. CMake is needed on all platforms alike. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And this is linux-only because I think checking for pkg-config is better on Mac. What we're looking for is the thing least-likely to have been installed by-default. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If we use else
# Check presence of cmake on the path
command -v cmake 2>/dev/null || { echo >&2 "Please install cmake before running this script, see https://github.com/dotnet/runtime/tree/main/docs/workflow/requirements"; exit 1; } User can then read There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
It is rendering this check redundant which can be deleted: runtime/eng/native/gen-buildsys.sh Lines 87 to 88 in ed339b3
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Not quite the same -- that's a version check, here I'm just doing a basic check to see if it exists at all. The intent is to catch people who have not installed the prereqs at all, not people who have misconfigured prereqs. |
||||||
fi | ||||||
|
||||||
if [[ "$__UseNinja" == 1 ]]; then | ||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/eng/debian-reqs.txt no longer exists
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, that's right. Now I remembered why I structured it like this: so that users could easily see exactly what they were installing without having to scan a bash script and also without having the risk of the list going out of date. I prefer my previous solution. I'm going to revert the last commit.