diff options
Diffstat (limited to 'build2/install/operation.cxx')
-rw-r--r-- | build2/install/operation.cxx | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/build2/install/operation.cxx b/build2/install/operation.cxx deleted file mode 100644 index 6ad1899..0000000 --- a/build2/install/operation.cxx +++ /dev/null @@ -1,84 +0,0 @@ -// file : build2/install/operation.cxx -*- C++ -*- -// copyright : Copyright (c) 2014-2019 Code Synthesis Ltd -// license : MIT; see accompanying LICENSE file - -#include <build2/install/operation.hxx> - -using namespace std; -using namespace butl; - -namespace build2 -{ - namespace install - { - static operation_id - install_pre (const values& params, meta_operation_id mo, const location& l) - { - if (!params.empty ()) - fail (l) << "unexpected parameters for operation install"; - - // Run update as a pre-operation, unless we are disfiguring. - // - return mo != disfigure_id ? update_id : 0; - } - - // Note that we run both install and uninstall serially. The reason for - // this is all the fuzzy things we are trying to do like removing empty - // outer directories if they are empty. If we do this in parallel, then - // those things get racy. Also, since all we do here is creating/removing - // files, there is not going to be much speedup from doing it in parallel. - - const operation_info op_install { - install_id, - 0, - "install", - "install", - "installing", - "installed", - "has nothing to install", // We cannot "be installed". - execution_mode::first, - 0, - &install_pre, - nullptr - }; - - // Note that we run update as a pre-operation, just like install. Which - // may seem bizarre at first. We do it to obtain the exact same dependency - // graph as install so that we uninstall exactly the same set of files as - // install would install. Note that just matching the rules without - // executing them may not be enough: for example, a presence of an ad hoc - // group member may only be discovered after executing the rule (e.g., VC - // link.exe only creates a DLL's import library if there are any exported - // symbols). - // - const operation_info op_uninstall { - uninstall_id, - 0, - "uninstall", - "uninstall", - "uninstalling", - "uninstalled", - "is not installed", - execution_mode::last, - 0, - &install_pre, - nullptr - }; - - // Also the explicit update-for-install operation alias. - // - const operation_info op_update_for_install { - update_id, // Note: not update_for_install_id. - install_id, - op_update.name, - op_update.name_do, - op_update.name_doing, - op_update.name_did, - op_update.name_done, - op_update.mode, - op_update.concurrency, - op_update.pre, - op_update.post - }; - } -} |