Unify build_native via eng/native/build-commons (#1753)
authorAdeel Mujahid <adeelbm@outlook.com>
Thu, 23 Jan 2020 08:47:40 +0000 (10:47 +0200)
committerJan Vorlicek <janvorli@microsoft.com>
Thu, 23 Jan 2020 08:47:40 +0000 (09:47 +0100)
commit879e5964a9fe57eb96d0e0d313dd05d58a3351c7
treed47a62b53ba4d7f048d0a6f02ce61bfe1ad64078
parentc6e91455a206d391ed6a23c9208645cff3a058f6
Unify build_native via eng/native/build-commons (#1753)

* Unify build_native via eng/native/build-commons
In order to add new platform, architecture, compiler or its newer
version, there are currently multiple places to update, which can be
deduplicated.

This patch unifies:

* directories creation
* prerequisites checking
* `version.c` generation
* native build invocation
* common argument parsing
* building help menu

for various build scripts under coreclr, installer and libraries.

The common entry-point script is now `eng/native/build-commons.sh` and
rest of the scripts under `eng/native` are implementation detail.

Also extracted CMake platform detection in
`eng/native/configureplatform.cmake`, to share with coreclr and
`installer/corehost`.

* Use if [[ cond ]] in all places
33 files changed:
eng/native/build-commons.sh [new file with mode: 0755]
eng/native/configureplatform.cmake [new file with mode: 0644]
eng/native/functions.cmake [moved from src/coreclr/functions.cmake with 100% similarity]
eng/native/gen-buildsys.sh
eng/native/init-distro-rid.sh [moved from src/coreclr/init-distro-rid.sh with 100% similarity, mode: 0644]
eng/pipelines/installer/jobs/base-job.yml
eng/pipelines/libraries/base-job.yml
eng/pipelines/libraries/build-job.yml
src/coreclr/CMakeLists.txt
src/coreclr/_build-commons.sh
src/coreclr/build-packages.sh
src/coreclr/build-test.sh
src/coreclr/build.cmd
src/coreclr/build.sh
src/coreclr/configurecompiler.cmake
src/coreclr/tests/setup-stress-dependencies.sh
src/installer/corehost/CMakeLists.txt
src/installer/corehost/Windows/gen-buildsys-win.bat
src/installer/corehost/build.proj
src/installer/corehost/build.sh
src/installer/corehost/cli/apphost/CMakeLists.txt
src/installer/corehost/cli/comhost/CMakeLists.txt
src/installer/corehost/cli/common.cmake
src/installer/corehost/cli/ijwhost/CMakeLists.txt
src/installer/corehost/cli/test/nativehost/CMakeLists.txt
src/installer/corehost/cli/test_fx_ver/CMakeLists.txt
src/installer/corehost/cli/winrthost/CMakeLists.txt
src/installer/functions.cmake
src/installer/settings.cmake
src/libraries/Native/Unix/CMakeLists.txt
src/libraries/Native/build-native.cmd
src/libraries/Native/build-native.proj
src/libraries/Native/build-native.sh