diff options
-rw-r--r-- | etc/evergreen.yml | 84 | ||||
-rw-r--r-- | site_scons/libdeps_next.py | 2 | ||||
-rw-r--r-- | site_scons/site_tools/next/ninja.py | 11 |
3 files changed, 94 insertions, 3 deletions
diff --git a/etc/evergreen.yml b/etc/evergreen.yml index a0ef4bf2f3b..d152e9712fb 100644 --- a/etc/evergreen.yml +++ b/etc/evergreen.yml @@ -1891,6 +1891,11 @@ functions: extra_args="$extra_args --release" fi + if [ "Windows_NT" = "$OS" ]; then + vcvars="$(vswhere -latest -property installationPath | tr '\\' '/' | dos2unix.exe)/VC/Auxiliary/Build/" + export PATH="$(echo "$(cd "$vcvars" && cmd /C "vcvarsall.bat amd64 && C:/cygwin/bin/bash -c 'echo \$PATH'")" | tail -n +6)":$PATH + fi + ${activate_virtualenv} chmod -R ugo-w ./src @@ -3576,7 +3581,50 @@ tasks: params: working_dir: src shell: bash - script: ninja -f build.ninja + script: | + ${activate_virtualenv} + if [ "Windows_NT" = "$OS" ]; then + vcvars="$(vswhere -latest -property installationPath | tr '\\' '/' | dos2unix.exe)/VC/Auxiliary/Build/" + cd "$vcvars" && cmd /K "vcvarsall.bat amd64 && cd ${workdir}\src" + fi + python -m pip install ninja + ninja install-core + +- name: compile_ninja_next + commands: + - func: "scons compile" + vars: + task_install_action: + default + task_compile_flags: >- + --build-tools=next + --ninja + targets: + generate-ninja + - command: shell.exec + params: + working_dir: src + shell: bash + script: | + ${activate_virtualenv} + if [ "Windows_NT" = "$OS" ]; then + vcvars="$(vswhere -latest -property installationPath | tr '\\' '/' | dos2unix.exe)/VC/Auxiliary/Build/" + cd "$vcvars" && cmd /K "vcvarsall.bat amd64 && cd ${workdir}\src" + fi + python -m pip install ninja + ninja install-core + + +- name: compile_build_tools_next + commands: + - func: "scons compile" + vars: + task_install_action: + default + task_compile_flags: >- + --build-tools=next + targets: + install-core ## compile_all - build all scons targets ## - name: compile_all @@ -8424,6 +8472,17 @@ task_groups: - package - <<: *compile_task_group_template + name: compile_ninja_next_TG + tasks: + - compile_build_tools_next + - compile_ninja_next + +- <<: *compile_task_group_template + name: compile_build_tools_next_TG + tasks: + - compile_build_tools_next + +- <<: *compile_task_group_template name: compile_ninja_TG tasks: - compile_ninja @@ -8826,6 +8885,9 @@ buildvariants: - name: compile_all_run_unittests_TG distros: - ubuntu1804-build + - name: compile_ninja_next_TG + distros: + - ubuntu1804-build - name: compile_ninja_TG - name: .aggfuzzer .common - name: audit @@ -9280,6 +9342,9 @@ buildvariants: - name: compile_all_run_unittests_TG distros: - ubuntu2004-large + - name: compile_ninja_next_TG + distros: + - ubuntu2004-large - name: compile_ninja_TG - name: .aggfuzzer .common !.multiversion - name: audit @@ -9643,6 +9708,9 @@ buildvariants: - name: compile_all_run_unittests_TG distros: - windows-64-vs2019-large + - name: compile_build_tools_next_TG + distros: + - windows-64-vs2019-large - name: .aggregation !.auth !.encrypt - name: aggregation_expression_multiversion_fuzzer_gen - name: aggregation_expression_optimization_fuzzer_gen @@ -9716,6 +9784,9 @@ buildvariants: - name: compile_TG distros: - windows-64-vs2019-large + - name: compile_build_tools_next_TG + distros: + - windows-64-vs2019-large # - name: burn_in_tests_gen # - name: buildscripts_test - name: noPassthrough_gen @@ -9941,6 +10012,9 @@ buildvariants: - name: compile_TG distros: - windows-64-vs2019-large + - name: compile_ninja_next_TG + distros: + - windows-64-vs2019-large - name: audit # Do not add more tasks to this list. @@ -10007,6 +10081,7 @@ buildvariants: num_scons_link_jobs_available: 0.99 tasks: - name: compile_all_run_unittests_TG + - name: compile_build_tools_next_TG - name: aggregation - name: auth_gen - name: causally_consistent_jscore_txns_passthrough @@ -10038,6 +10113,7 @@ buildvariants: resmoke_jobs_max: 6 tasks: - name: compile_all_run_unittests_TG + - name: compile_ninja_next_TG - name: audit - name: auth_audit_gen - name: causally_consistent_jscore_txns_passthrough @@ -11000,6 +11076,9 @@ buildvariants: - name: compile_all_run_unittests_TG distros: - rhel70 + - name: compile_build_tools_next_TG + distros: + - rhel70 - name: .aggfuzzer - name: audit - name: auth_audit_gen @@ -11246,6 +11325,9 @@ buildvariants: - name: compile_TG distros: - ubuntu1604-build + - name: compile_build_tools_next_TG + distros: + - ubuntu1604-build - name: jsCore - name: .read_write_concern !.write !.aggregation - name: replica_sets_jscore_passthrough diff --git a/site_scons/libdeps_next.py b/site_scons/libdeps_next.py index 51a8376ab3c..5206eb83b8a 100644 --- a/site_scons/libdeps_next.py +++ b/site_scons/libdeps_next.py @@ -1099,7 +1099,7 @@ def setup_environment(env, emitting_shared=False, linting='on', sanitize_typeinf ) env.Prepend(_LIBFLAGS="$_LIBDEPS_TAGS $_LIBDEPS $_SYSLIBDEPS ") - env.Prepend(ARFLAGS="$_LIBDEPS_TAGS ") + env.Prepend(ARFLAGS="$_LIBDEPS_TAGS") for builder_name in ("Program", "SharedLibrary", "LoadableModule", "SharedArchive"): try: update_scanner(env["BUILDERS"][builder_name]) diff --git a/site_scons/site_tools/next/ninja.py b/site_scons/site_tools/next/ninja.py index 17254013914..46a80d3369a 100644 --- a/site_scons/site_tools/next/ninja.py +++ b/site_scons/site_tools/next/ninja.py @@ -1102,9 +1102,18 @@ def get_command(env, node, action): # pylint: disable=too-many-branches implicit.append(provider_dep) continue + # in some case the tool could be in the local directory and be suppled without the ext + # such as in windows, so append the executable suffix and check. + prog_suffix = sub_env.get('PROGSUFFIX', '') + provider_dep_ext = provider_dep if provider_dep.endswith(prog_suffix) else provider_dep + prog_suffix + if os.path.exists(provider_dep_ext): + implicit.append(provider_dep_ext) + continue + # Many commands will assume the binary is in the path, so # we accept this as a possible input from a given command. - provider_dep_abspath = sub_env.WhereIs(provider_dep) + + provider_dep_abspath = sub_env.WhereIs(provider_dep) or sub_env.WhereIs(provider_dep, path=os.environ["PATH"]) if provider_dep_abspath: implicit.append(provider_dep_abspath) continue |