diff --git a/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.cpp b/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.cpp index 985bc4665d..bdbfe6197f 100644 --- a/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.cpp +++ b/Code/Framework/AzFramework/AzFramework/ProjectManager/ProjectManager.cpp @@ -99,51 +99,18 @@ namespace AzFramework::ProjectManager AZ::AllocatorInstance::Create(); } { - const char projectsScript[] = "projects.py"; + AZStd::string filename = "o3de"; + AZ::IO::FixedMaxPath executablePath = AZ::Utils::GetExecutableDirectory(); + executablePath /= filename + AZ_TRAIT_OS_EXECUTABLE_EXTENSION; - AZ_Warning("ProjectManager", false, "No project provided - launching project selector."); - - if (engineRootPath.empty()) + if (!AZ::IO::SystemFile::Exists(executablePath.c_str())) { - AZ_Error("ProjectManager", false, "Couldn't find engine root"); + AZ_Error("ProjectManager", false, "%s not found", executablePath.c_str()); return false; } - auto projectManagerPath = engineRootPath / "scripts" / "project_manager"; - - if (!AZ::IO::SystemFile::Exists((projectManagerPath / projectsScript).c_str())) - { - AZ_Error("ProjectManager", false, "%s not found at %s!", projectsScript, projectManagerPath.c_str()); - return false; - } - AZ::IO::FixedMaxPathString executablePath; - AZ::Utils::GetExecutablePathReturnType result = AZ::Utils::GetExecutablePath(executablePath.data(), executablePath.capacity()); - if (result.m_pathStored != AZ::Utils::ExecutablePathResult::Success) - { - AZ_Error("ProjectManager", false, "Could not determine executable path!"); - return false; - } - AZ::IO::FixedMaxPath parentPath(executablePath.c_str()); - auto exeFolder = parentPath.ParentPath(); - AZStd::fixed_string<8> debugOption; - auto lastSep = exeFolder.Native().find_last_of(AZ_CORRECT_FILESYSTEM_SEPARATOR); - if (lastSep != AZStd::string_view::npos) - { - exeFolder = exeFolder.Native().substr(lastSep + 1); - } - if (exeFolder == "debug") - { - // We need to use the debug version of the python interpreter to load up our debug version of our libraries which work with the debug version of QT living in this folder - debugOption = "debug "; - } - AZ::IO::FixedMaxPath pythonPath = engineRootPath / "python"; - pythonPath /= AZ_TRAIT_AZFRAMEWORK_PYTHON_SHELL; - auto cmdPath = AZ::IO::FixedMaxPathString::format("%s %s%s --executable_path=%s --parent_pid=%" PRIu32, pythonPath.Native().c_str(), - debugOption.c_str(), (projectManagerPath / projectsScript).c_str(), executablePath.c_str(), AZ::Platform::GetCurrentProcessId()); AzFramework::ProcessLauncher::ProcessLaunchInfo processLaunchInfo; - - processLaunchInfo.m_commandlineParameters = cmdPath; - processLaunchInfo.m_showWindow = false; + processLaunchInfo.m_commandlineParameters = executablePath.String(); launchSuccess = AzFramework::ProcessLauncher::LaunchUnwatchedProcess(processLaunchInfo); } if (ownsSystemAllocator) diff --git a/scripts/project_manager/projects.py b/scripts/project_manager/projects.py index 51db7a6440..51ffc2be91 100755 --- a/scripts/project_manager/projects.py +++ b/scripts/project_manager/projects.py @@ -34,7 +34,7 @@ from cmake.Tools import registration o3de_folder = registration.get_o3de_folder() o3de_logs_folder = registration.get_o3de_logs_folder() -project_manager_log_file_path = o3de_log_folder / "project_manager.log" +project_manager_log_file_path = o3de_logs_folder / "project_manager.log" log_file_handler = RotatingFileHandler(filename=project_manager_log_file_path, maxBytes=1024 * 1024, backupCount=1) formatter = logging.Formatter('%(asctime)s | %(levelname)s : %(message)s') log_file_handler.setFormatter(formatter)