aboutsummaryrefslogtreecommitdiff
path: root/eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/build/NdkCommandLauncher.java
diff options
context:
space:
mode:
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/build/NdkCommandLauncher.java')
-rw-r--r--eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/build/NdkCommandLauncher.java133
1 files changed, 0 insertions, 133 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/build/NdkCommandLauncher.java b/eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/build/NdkCommandLauncher.java
deleted file mode 100644
index 0a1f7dc81..000000000
--- a/eclipse/plugins/com.android.ide.eclipse.ndk/src/com/android/ide/eclipse/ndk/internal/build/NdkCommandLauncher.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * Licensed under the Eclipse Public License, Version 1.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.eclipse.org/org/documents/epl-v10.php
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.ide.eclipse.ndk.internal.build;
-
-import com.android.ide.eclipse.adt.AdtPlugin;
-import com.android.ide.eclipse.ndk.internal.NdkManager;
-
-import org.eclipse.cdt.core.CommandLauncher;
-import org.eclipse.cdt.utils.CygPath;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-
-@SuppressWarnings("restriction") // for AdtPlugin internal classes
-public class NdkCommandLauncher extends CommandLauncher {
- private static CygPath sCygPath = null;
-
- private static final List<String> WINDOWS_NATIVE_EXECUTABLES = Arrays.asList(
- "exe", //$NON-NLS-1$
- "cmd", //$NON-NLS-1$
- "bat" //$NON-NLS-1$
- );
-
- static {
- if (Platform.OS_WIN32.equals(Platform.getOS())) {
- try {
- sCygPath = new CygPath();
- } catch (IOException e) {
- AdtPlugin.printErrorToConsole("Unable to launch cygpath. Is Cygwin on the path?",
- e);
- }
- }
- }
-
- @Override
- public Process execute(IPath commandPath, String[] args, String[] env, IPath changeToDirectory,
- IProgressMonitor monitor)
- throws CoreException {
- if (!commandPath.isAbsolute())
- commandPath = new Path(NdkManager.getNdkLocation()).append(commandPath);
-
- if (Platform.getOS().equals(Platform.OS_WIN32)) {
- // convert cygwin paths to standard paths
- if (sCygPath != null && commandPath.toString().startsWith("/cygdrive")) { //$NON-NLS-1$
- try {
- String path = sCygPath.getFileName(commandPath.toString());
- commandPath = new Path(path);
- } catch (IOException e) {
- AdtPlugin.printErrorToConsole(
- "Unexpected error while transforming cygwin path.", e);
- }
- }
-
- if (isWindowsExecutable(commandPath)) {
- // append necessary extension
- commandPath = appendExecutableExtension(commandPath);
- } else {
- // Invoke using Cygwin shell if this is not a native windows executable
- String[] newargs = new String[args.length + 1];
- newargs[0] = commandPath.toOSString();
- System.arraycopy(args, 0, newargs, 1, args.length);
-
- commandPath = new Path("sh"); //$NON-NLS-1$
- args = newargs;
- }
- }
-
- return super.execute(commandPath, args, env, changeToDirectory, monitor);
- }
-
- private boolean isWindowsExecutable(IPath commandPath) {
- String ext = commandPath.getFileExtension();
- if (isWindowsExecutableExtension(ext)) {
- return true;
- }
-
- ext = findWindowsExecutableExtension(commandPath);
- if (ext != null) {
- return true;
- }
-
- return false;
- }
-
- private IPath appendExecutableExtension(IPath commandPath) {
- if (isWindowsExecutableExtension(commandPath.getFileExtension())) {
- return commandPath;
- }
-
- String ext = findWindowsExecutableExtension(commandPath);
- if (ext != null) {
- return commandPath.addFileExtension(ext);
- }
-
- return commandPath;
- }
-
- private String findWindowsExecutableExtension(IPath command) {
- for (String e: WINDOWS_NATIVE_EXECUTABLES) {
- File exeFile = command.addFileExtension(e).toFile();
- if (exeFile.exists()) {
- return e;
- }
- }
-
- return null;
- }
-
- private boolean isWindowsExecutableExtension(String extension) {
- return extension != null && WINDOWS_NATIVE_EXECUTABLES.contains(extension);
- }
-}