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
9 changes: 8 additions & 1 deletion apps/deps_common.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,14 @@ APP_NAME=deps_common
CMD_EXEC_DIR=${RCB_APP_BUILD_DIR}

CMD_INSTALL = pip install pybind11 "cmake<4.0" ninja matplotlib pandas huggingface_hub
CMD_POST_INSTALL=echo "export ROCM_HOME=${ROCM_HOME}" > ${ROCM_HOME}/bin/init_env_rocm.sh

CMD_POST_INSTALL_LINUX=echo "export ROCM_HOME=${ROCM_HOME}" > ${ROCM_HOME}/bin/init_env_rocm.sh
echo "export PATH=\${ROCM_HOME}/bin:\${ROCM_HOME}/lib/llvm/bin:\${PATH}" >> ${ROCM_HOME}/bin/init_env_rocm.sh
echo "export LD_LIBRARY_PATH=\${ROCM_HOME}/lib:\${ROCM_HOME}/lib/llvm/lib" >> ${ROCM_HOME}/bin/init_env_rocm.sh
echo "export TRITON_HIP_LLD_PATH=\${ROCM_HOME}/lib/llvm/bin/ld.lld" >> ${ROCM_HOME}/bin/init_env_rocm.sh

CMD_POST_INSTALL_WINDOWS=setlocal
echo set "ROCM_HOME=$ROCM_HOME" >> $ROCM_HOME\bin\init_env_rocm.bat
echo set "PATH=$ROCM_HOME\bin;$ROCM_HOME\lib\llvm\bin;$ROCM_HOME\lib;$ROCM_HOME\lib\llvm\lib;$PATH" >> $ROCM_HOME\bin\init_env_rocm.bat
echo set "TRITON_HIP_LLD_PATH=$ROCM_HOME\lib\llvm\bin\ld.lld" >> $ROCM_HOME\bin\init_env_rocm.bat
endlocal
52 changes: 28 additions & 24 deletions lib_python/app_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,20 @@ def _get_app_info_boolean_value(self, config_key):
return ret


#return either os specific or generic version of command depending which is available.
#if both versions of command exist in app-config file, then the os-specific is selected.
def _get_cmd_phase_allowing_os_override(self, cmd_generic):
if self.is_posix:
cmd_os = cmd_generic + rcb_const.RCB__APP_CFG__CMD_PHASE_EXTENSION_LINUX
else:
cmd_os = cmd_generic + rcb_const.RCB__APP_CFG__CMD_PHASE_EXTENSION_WINDOWS
if self.has_option(rcb_const.RCB__APP_CFG__SECTION_APP_INFO, cmd_os):
ret = self._get_app_info_config_value(cmd_os)
else:
ret = self._get_app_info_config_value(cmd_generic)
return ret


def __init__(
self,
rock_builder_root_dir,
Expand Down Expand Up @@ -180,12 +194,12 @@ def __init__(
else:
prop_name = rcb_const.RCB__APP_CFG__KEY__PROP_IS_BUILD_ENABLED_WINDOWS
if self.has_option(rcb_const.RCB__APP_CFG__SECTION_APP_INFO, prop_name):
self.enable_on_os = self._get_app_info_config_value(prop_name)
self.enable_on_os = self._get_app_info_boolean_value(prop_name)
else:
# check only if OS specific property version is not used
prop_name = rcb_const.RCB__APP_CFG__KEY__PROP_IS_BUILD_ENABLED
if self.has_option(rcb_const.RCB__APP_CFG__SECTION_APP_INFO, prop_name):
self.enable_on_os = self._get_app_info_config_value(prop_name)
self.enable_on_os = self._get_app_info_boolean_value(prop_name)
else:
self.enable_on_os = True

Expand Down Expand Up @@ -216,28 +230,18 @@ def __init__(
self.env_setup_cmd.extend(temp_env_list)
else:
self.env_setup_cmd = temp_env_list
self.CMD_INIT = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_INIT)
self.CMD_CLEAN = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_CLEAN)
self.CMD_HIPIFY = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_HIPIFY)
self.CMD_PRE_CONFIG = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_PRE_CONFIG)
self.CMD_CONFIG = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_CONFIG)
self.CMD_POST_CONFIG = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_POST_CONFIG)

# here we want to check if specific CMD_BUILD_LINUX or CMD_BUILD_WINDOWS option is set
# otherwise we use generic "CMD_BUILD" option
if self.is_posix:
if self.has_option(rcb_const.RCB__APP_CFG__SECTION_APP_INFO, rcb_const.RCB__APP_CFG__KEY__CMD_BUILD_LINUX):
self.CMD_BUILD = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_BUILD_LINUX)
else:
self.CMD_BUILD = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_BUILD)
else:
if self.has_option(rcb_const.RCB__APP_CFG__SECTION_APP_INFO, rcb_const.RCB__APP_CFG__KEY__CMD_BUILD_WINDOWS):
self.CMD_BUILD = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_BUILD_WINDOWS)
else:
self.CMD_BUILD = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_BUILD)
self.CMD_CMAKE_CONFIG = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_CMAKE_CONFIG)
self.CMD_INSTALL = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_INSTALL)
self.CMD_POST_INSTALL = self._get_app_info_config_value(rcb_const.RCB__APP_CFG__KEY__CMD_POST_INSTALL)
# here we want to check if specific CMD_XXX_LINUX or CMD_XXX_WINDOWS option is set
# otherwise we use generic "CMD_XXX" option
self.CMD_INIT = self._get_cmd_phase_allowing_os_override(rcb_const.RCB__APP_CFG__KEY__CMD_INIT)
self.CMD_CLEAN = self._get_cmd_phase_allowing_os_override(rcb_const.RCB__APP_CFG__KEY__CMD_CLEAN)
self.CMD_HIPIFY = self._get_cmd_phase_allowing_os_override(rcb_const.RCB__APP_CFG__KEY__CMD_HIPIFY)
self.CMD_PRE_CONFIG = self._get_cmd_phase_allowing_os_override(rcb_const.RCB__APP_CFG__KEY__CMD_PRE_CONFIG)
self.CMD_CONFIG = self._get_cmd_phase_allowing_os_override(rcb_const.RCB__APP_CFG__KEY__CMD_CONFIG)
self.CMD_POST_CONFIG = self._get_cmd_phase_allowing_os_override(rcb_const.RCB__APP_CFG__KEY__CMD_POST_CONFIG)
self.CMD_BUILD = self._get_cmd_phase_allowing_os_override(rcb_const.RCB__APP_CFG__KEY__CMD_BUILD)
self.CMD_CMAKE_CONFIG = self._get_cmd_phase_allowing_os_override(rcb_const.RCB__APP_CFG__KEY__CMD_CMAKE_CONFIG)
self.CMD_INSTALL = self._get_cmd_phase_allowing_os_override(rcb_const.RCB__APP_CFG__KEY__CMD_INSTALL)
self.CMD_POST_INSTALL = self._get_cmd_phase_allowing_os_override(rcb_const.RCB__APP_CFG__KEY__CMD_POST_INSTALL)

self.app_root_dir_path = Path(rock_builder_root_dir)
self.app_src_dir_path = app_src_dir
Expand Down
3 changes: 3 additions & 0 deletions lib_python/rcb_constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,9 @@

RCB__APP_CFG__KEY__CMD_EXEC_DIR = "CMD_EXEC_DIR"

RCB__APP_CFG__CMD_PHASE_EXTENSION_LINUX = "_LINUX"
RCB__APP_CFG__CMD_PHASE_EXTENSION_WINDOWS = "_WINDOWS"

RCB__APP_CFG__KEY__CMD_INIT = "CMD_INIT"
RCB__APP_CFG__KEY__CMD_CLEAN = "CMD_CLEAN"
RCB__APP_CFG__KEY__CMD_CHECKOUT = "CMD_CHECKOUT"
Expand Down
10 changes: 8 additions & 2 deletions lib_python/repo_management.py
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,10 @@ def _handle_RCB_CALLBACK__INSTALL_PYTHON_WHEEL(self, CMD_INSTALL):
ret = False
return ret

def _handle_command_exec(self, exec_phase_name, exec_cmd, cmd_exec_dir):
def _handle_command_exec(self,
exec_phase_name,
exec_cmd,
cmd_exec_dir):
ret = True
if exec_cmd:
exec_cmd = os.path.expandvars(exec_cmd)
Expand Down Expand Up @@ -758,7 +761,10 @@ def do_cmake_install(self):
return ret

def do_post_install(self, CMD_POST_INSTALL):
return self._exec_subprocess_cmd(CMD_POST_INSTALL, self.app_exec_dir)
ret = self._handle_command_exec("post_install",
CMD_POST_INSTALL,
self.app_exec_dir)
return ret

def do_save_patches(self):
ret = True
Expand Down