From 26cea35ebe89517651bf4e08fddc948c719c8fdf Mon Sep 17 00:00:00 2001 From: Josh Tynjala Date: Tue, 20 Feb 2024 12:30:48 -0800 Subject: [PATCH] remove FlexJS (Royale is still supported, of course) --- .../java/com/as3mxml/asconfigc/ASConfigC.java | 57 ++-------- .../asconfigc/compiler/JSOutputType.java | 1 - .../asconfigc/utils/ApacheFlexJSUtils.java | 100 ------------------ .../vscode/mxml/IMXMLLibraryConstants.java | 4 - .../vscode/utils/CompilerProjectUtils.java | 5 +- .../vscode/utils/MXMLNamespaceUtils.java | 8 +- .../vscode/utils/MXMLNamespaceUtilsTests.java | 10 -- .../main/ts/commands/selectWorkspaceSDK.ts | 11 -- .../utils/findSDKInLocalFlexJSNodeModule.ts | 31 ------ .../src/main/ts/utils/findSDKShortName.ts | 5 - .../findSDKsInPathEnvironmentVariable.ts | 15 +-- .../utils/getFrameworkSDKPathWithFallbacks.ts | 5 - 12 files changed, 13 insertions(+), 239 deletions(-) delete mode 100644 asconfigc/src/main/java/com/as3mxml/asconfigc/utils/ApacheFlexJSUtils.java delete mode 100644 vscode-extension/src/main/ts/utils/findSDKInLocalFlexJSNodeModule.ts diff --git a/asconfigc/src/main/java/com/as3mxml/asconfigc/ASConfigC.java b/asconfigc/src/main/java/com/as3mxml/asconfigc/ASConfigC.java index d2123aef6..4bb7fd0e3 100644 --- a/asconfigc/src/main/java/com/as3mxml/asconfigc/ASConfigC.java +++ b/asconfigc/src/main/java/com/as3mxml/asconfigc/ASConfigC.java @@ -72,7 +72,6 @@ import com.as3mxml.asconfigc.compiler.RoyaleTarget; import com.as3mxml.asconfigc.compiler.WorkerFields; import com.as3mxml.asconfigc.htmlTemplate.HTMLTemplateOptionsParser; -import com.as3mxml.asconfigc.utils.ApacheFlexJSUtils; import com.as3mxml.asconfigc.utils.ApacheRoyaleUtils; import com.as3mxml.asconfigc.utils.ConfigUtils; import com.as3mxml.asconfigc.utils.GenericSDKUtils; @@ -262,11 +261,8 @@ public ASConfigC(ASConfigCOptions options) throws ASConfigCException { private List airDescriptorPaths; private List sourcePaths; private boolean configRequiresRoyale; - private boolean configRequiresRoyaleOrFlexJS; - private boolean configRequiresFlexJS; private boolean configRequiresAIR; private boolean sdkIsRoyale; - private boolean sdkIsFlexJS; private boolean isSWFTargetOnly; private boolean outputIsJS; private String sdkHome; @@ -618,16 +614,15 @@ private void detectConfigRequirements(String configName) { switch (configName) { case ConfigName.JS: { jsOutputType = JSOutputType.JSC; - configRequiresRoyaleOrFlexJS = true; + configRequiresRoyale = true; break; } case ConfigName.NODE: { jsOutputType = JSOutputType.NODE; - configRequiresRoyaleOrFlexJS = true; + configRequiresRoyale = true; break; } case ConfigName.ROYALE: { - // this option is not supported by FlexJS configRequiresRoyale = true; break; } @@ -850,41 +845,21 @@ private void readCompilerOptions(JsonNode compilerOptionsJson) throws ASConfigCE e.printStackTrace(new PrintWriter(stackTrace)); throw new ASConfigCException("Error: Failed to parse compiler options.\n" + stackTrace.toString()); } - // make sure that we require Royale (or FlexJS) depending on which options are - // specified + // make sure that we require Royale for certain compiler options if (compilerOptionsJson.has(CompilerOptions.JS_OUTPUT_TYPE)) { - // this option was used in FlexJS 0.7, but it was replaced with - // targets in FlexJS 0.8. - configRequiresFlexJS = true; + configRequiresRoyale = true; // if it is set explicitly, then clear the default jsOutputType = null; } if (compilerOptionsJson.has(CompilerOptions.TARGETS)) { - JsonNode targets = compilerOptionsJson.get(CompilerOptions.TARGETS); - boolean foundRoyaleTarget = false; - for (JsonNode target : targets) { - String targetAsText = target.asText(); - if (targetAsText.equals(RoyaleTarget.JS_ROYALE) - || targetAsText.equals(RoyaleTarget.JS_ROYALE_CORDOVA)) { - // these targets definitely don't work with FlexJS - configRequiresRoyale = true; - foundRoyaleTarget = true; - } - if (targetAsText.equals(RoyaleTarget.SWF)) { - isSWFTargetOnly = targets.size() == 1; - } - } - if (!foundRoyaleTarget) { - // remaining targets are supported by both Royale and FlexJS - configRequiresRoyaleOrFlexJS = true; - } + configRequiresRoyale = true; // if targets is set explicitly, then we're using a newer SDK // that doesn't need js-output-type jsOutputType = null; } if (compilerOptionsJson.has(CompilerOptions.SOURCE_MAP)) { - // source-map compiler option is supported by both Royale and FlexJS - configRequiresRoyaleOrFlexJS = true; + // source-map compiler option is supported by Royale + configRequiresRoyale = true; } } @@ -922,17 +897,12 @@ private void validateSDK() throws ASConfigCException { sdkHome = ApacheRoyaleUtils.findSDK(); } if (sdkHome == null && !configRequiresRoyale) { - sdkHome = ApacheFlexJSUtils.findSDK(); - } - if (sdkHome == null && !configRequiresRoyale && !configRequiresRoyaleOrFlexJS && !configRequiresFlexJS) { sdkHome = GenericSDKUtils.findSDK(); } if (sdkHome == null) { String envHome = "FLEX_HOME"; if (configRequiresRoyale) { envHome = "ROYALE_HOME"; - } else if (configRequiresRoyaleOrFlexJS) { - envHome = "ROYALE_HOME for Apache Royale, FLEX_HOME for Apache FlexJS"; } throw new ASConfigCException( "SDK not found. Set " + envHome + ", add SDK to PATH environment variable, or use --sdk option."); @@ -948,18 +918,7 @@ private void validateSDK() throws ASConfigCException { "Configuration options in asconfig.json require Apache Royale. Path to SDK is not valid: " + sdkHome); } - sdkIsFlexJS = ApacheFlexJSUtils.isValidSDK(sdkHomePath); - if (configRequiresRoyaleOrFlexJS && !sdkIsRoyale && !sdkIsFlexJS) { - throw new ASConfigCException( - "Configuration options in asconfig.json require Apache Royale. Path to SDK is not valid: " - + sdkHome); - } - if (configRequiresFlexJS && !sdkIsFlexJS) { - throw new ASConfigCException( - "Configuration options in asconfig.json require Apache FlexJS. Path to SDK is not valid: " - + sdkHome); - } - outputIsJS = (sdkIsRoyale || sdkIsFlexJS) && !isSWFTargetOnly; + outputIsJS = sdkIsRoyale && !isSWFTargetOnly; outputPathForTarget = outputIsJS ? jsOutputPath : swfOutputPath; if (options.verbose) { System.out.println("SDK: " + sdkHomePath); diff --git a/asconfigc/src/main/java/com/as3mxml/asconfigc/compiler/JSOutputType.java b/asconfigc/src/main/java/com/as3mxml/asconfigc/compiler/JSOutputType.java index 2827103b2..964ad0763 100644 --- a/asconfigc/src/main/java/com/as3mxml/asconfigc/compiler/JSOutputType.java +++ b/asconfigc/src/main/java/com/as3mxml/asconfigc/compiler/JSOutputType.java @@ -18,5 +18,4 @@ public class JSOutputType { public static final String JSC = "jsc"; public static final String NODE = "node"; - public static final String FLEXJS = "flexjs"; } \ No newline at end of file diff --git a/asconfigc/src/main/java/com/as3mxml/asconfigc/utils/ApacheFlexJSUtils.java b/asconfigc/src/main/java/com/as3mxml/asconfigc/utils/ApacheFlexJSUtils.java deleted file mode 100644 index 188dfe8dd..000000000 --- a/asconfigc/src/main/java/com/as3mxml/asconfigc/utils/ApacheFlexJSUtils.java +++ /dev/null @@ -1,100 +0,0 @@ -/* -Copyright 2016-2024 Bowler Hat LLC - -Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0 - -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.as3mxml.asconfigc.utils; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Path; -import java.nio.file.Paths; - -public class ApacheFlexJSUtils { - private static final String ENV_FLEX_HOME = "FLEX_HOME"; - private static final String ENV_PATH = "PATH"; - private static final String NPM_FLEXJS = "flexjs"; - private static final String JS = "js"; - private static final String BIN = "bin"; - private static final String ASJSC = "asjsc"; - private static final String FLEX_SDK_DESCRIPTION = "flex-sdk-description.xml"; - - /** - * Determines if a directory contains a valid Apache FlexJS SDK. - */ - public static boolean isValidSDK(Path absolutePath) { - if (absolutePath == null || !absolutePath.isAbsolute()) { - return false; - } - File file = absolutePath.toFile(); - if (!file.isDirectory()) { - return false; - } - Path sdkDescriptionPath = absolutePath.resolve(FLEX_SDK_DESCRIPTION); - file = sdkDescriptionPath.toFile(); - if (!file.exists() || file.isDirectory()) { - return false; - } - Path compilerPath = absolutePath.resolve(JS).resolve(BIN).resolve(ASJSC); - file = compilerPath.toFile(); - if (!file.exists() || file.isDirectory()) { - return false; - } - return true; - } - - /** - * Attempts to find a valid Apache FlexJS SDK by searching for the - * flexjs NPM module, testing the FLEX_HOME environment variable, and - * finally, testing the PATH environment variable. - */ - public static String findSDK() { - String flexHome = System.getenv(ENV_FLEX_HOME); - if (flexHome != null && isValidSDK(Paths.get(flexHome))) { - return flexHome; - } - String envPath = System.getenv(ENV_PATH); - if (envPath != null) { - String[] paths = envPath.split(File.pathSeparator); - for (String currentPath : paths) { - // first check if this directory contains the NPM version for - // Windows - File file = new File(currentPath, ASJSC + ".cmd"); - if (file.exists() && !file.isDirectory()) { - Path npmPath = Paths.get(currentPath, "node_modules", NPM_FLEXJS); - if (isValidSDK(npmPath)) { - return npmPath.toString(); - } - } - file = new File(currentPath, ASJSC); - if (file.exists() && !file.isDirectory()) { - // this may a symbolic link rather than the actual file, - // such as when Apache Royale is installed with NPM on - // Mac, so get the real path. - Path sdkPath = file.toPath(); - try { - sdkPath = sdkPath.toRealPath(); - } catch (IOException e) { - // didn't seem to work, for some reason - return null; - } - sdkPath = sdkPath.getParent().getParent().getParent(); - if (isValidSDK(sdkPath)) { - return sdkPath.toString(); - } - } - } - } - return null; - } -} \ No newline at end of file diff --git a/language-server/src/main/java/com/as3mxml/vscode/mxml/IMXMLLibraryConstants.java b/language-server/src/main/java/com/as3mxml/vscode/mxml/IMXMLLibraryConstants.java index e4d9603e7..96d25fbe5 100644 --- a/language-server/src/main/java/com/as3mxml/vscode/mxml/IMXMLLibraryConstants.java +++ b/language-server/src/main/java/com/as3mxml/vscode/mxml/IMXMLLibraryConstants.java @@ -23,10 +23,6 @@ public interface IMXMLLibraryConstants { String MX = "library://ns.adobe.com/flex/mx"; String SPARK = "library://ns.adobe.com/flex/spark"; - // Royale - String FLEXJS_BASIC = "library://ns.apache.org/flexjs/basic"; - String FLEXJS_EXPRESS = "library://ns.apache.org/flexjs/express"; - // Royale String ROYALE_BASIC = "library://ns.apache.org/royale/basic"; String ROYALE_EXPRESS = "library://ns.apache.org/royale/express"; diff --git a/language-server/src/main/java/com/as3mxml/vscode/utils/CompilerProjectUtils.java b/language-server/src/main/java/com/as3mxml/vscode/utils/CompilerProjectUtils.java index cfdca0795..a702bc9c5 100644 --- a/language-server/src/main/java/com/as3mxml/vscode/utils/CompilerProjectUtils.java +++ b/language-server/src/main/java/com/as3mxml/vscode/utils/CompilerProjectUtils.java @@ -60,9 +60,6 @@ public static ILspProject createProject(ProjectOptions currentProjectOptions, Wo Path frameworkLibPath = Paths.get(System.getProperty(PROPERTY_FRAMEWORK_LIB)); boolean frameworkSDKIsRoyale = ActionScriptSDKUtils.isRoyaleFramework(frameworkLibPath); - Path asjscPath = frameworkLibPath.resolve("../js/bin/asjsc"); - boolean frameworkSDKIsFlexJS = !frameworkSDKIsRoyale && asjscPath.toFile().exists(); - ILspProject project = null; // we're going to try to determine what kind of project we need @@ -125,7 +122,7 @@ else if (currentProjectOptions.config.equals(CONFIG_ROYALE)) { } // finally, if the config value is missing, then choose a decent // default backend when the SDK is Royale - else if (frameworkSDKIsRoyale || frameworkSDKIsFlexJS) { + else if (frameworkSDKIsRoyale) { backend = new RoyaleBackend(); } diff --git a/language-server/src/main/java/com/as3mxml/vscode/utils/MXMLNamespaceUtils.java b/language-server/src/main/java/com/as3mxml/vscode/utils/MXMLNamespaceUtils.java index 4b20bb290..bbbc4b96d 100644 --- a/language-server/src/main/java/com/as3mxml/vscode/utils/MXMLNamespaceUtils.java +++ b/language-server/src/main/java/com/as3mxml/vscode/utils/MXMLNamespaceUtils.java @@ -54,10 +54,6 @@ public class MXMLNamespaceUtils { NAMESPACE_TO_PREFIX.put(IMXMLLibraryConstants.SPARK, PREFIX_S); NAMESPACE_TO_PREFIX.put(IMXMLLibraryConstants.MX, PREFIX_MX); - // FlexJS - NAMESPACE_TO_PREFIX.put(IMXMLLibraryConstants.FLEXJS_EXPRESS, PREFIX_JS); - NAMESPACE_TO_PREFIX.put(IMXMLLibraryConstants.FLEXJS_BASIC, PREFIX_JS); - // Royale NAMESPACE_TO_PREFIX.put(IMXMLLibraryConstants.ROYALE_EXPRESS, PREFIX_JS); NAMESPACE_TO_PREFIX.put(IMXMLLibraryConstants.ROYALE_BASIC, PREFIX_JS); @@ -68,8 +64,8 @@ public class MXMLNamespaceUtils { } private static final Pattern[] PATTERNS = { - // Royale/FlexJS library - Pattern.compile("^library:\\/\\/ns\\.apache\\.org\\/(?:flexjs|royale)\\/(\\w+)$"), + // Royale library + Pattern.compile("^library:\\/\\/ns\\.apache\\.org\\/(?:royale)\\/(\\w+)$"), // Flex library Pattern.compile("^[a-z]+:\\/\\/flex\\.apache\\.org\\/(\\w+)\\/ns$"), diff --git a/language-server/src/test/java/com/as3mxml/vscode/utils/MXMLNamespaceUtilsTests.java b/language-server/src/test/java/com/as3mxml/vscode/utils/MXMLNamespaceUtilsTests.java index 59b88624f..25a3eb0d4 100644 --- a/language-server/src/test/java/com/as3mxml/vscode/utils/MXMLNamespaceUtilsTests.java +++ b/language-server/src/test/java/com/as3mxml/vscode/utils/MXMLNamespaceUtilsTests.java @@ -32,16 +32,6 @@ void testGetNamespaceFromURIWithRoyaleLibrary() { "MXMLNamespaceUtils.getNamespaceFromURI() returned incorrect prefix."); } - @Test - void testGetNamespaceFromURIWithFlexJSLibrary() { - String uri = "library://ns.apache.org/flexjs/example"; - MXMLNamespace result = MXMLNamespaceUtils.getNamespaceFromURI(uri, new PrefixMap()); - Assertions.assertNotNull(result); - Assertions.assertEquals(uri, result.uri, "MXMLNamespaceUtils.getNamespaceFromURI() returned incorrect uri."); - Assertions.assertEquals("example", result.prefix, - "MXMLNamespaceUtils.getNamespaceFromURI() returned incorrect prefix."); - } - @Test void testGetNamespaceFromURIWithFlexLibrary() { String uri = "http://flex.apache.org/example/ns"; diff --git a/vscode-extension/src/main/ts/commands/selectWorkspaceSDK.ts b/vscode-extension/src/main/ts/commands/selectWorkspaceSDK.ts index 9b92fa16f..4375c194c 100644 --- a/vscode-extension/src/main/ts/commands/selectWorkspaceSDK.ts +++ b/vscode-extension/src/main/ts/commands/selectWorkspaceSDK.ts @@ -19,7 +19,6 @@ import * as path from "path"; import findSDKName from "../utils/findSDKName"; import validateFrameworkSDK from "../utils/validateFrameworkSDK"; import findSDKInLocalRoyaleNodeModule from "../utils/findSDKInLocalRoyaleNodeModule"; -import findSDKInLocalFlexJSNodeModule from "../utils/findSDKInLocalFlexJSNodeModule"; import findSDKInRoyaleHomeEnvironmentVariable from "../utils/findSDKInRoyaleHomeEnvironmentVariable"; import findSDKInFlexHomeEnvironmentVariable from "../utils/findSDKInFlexHomeEnvironmentVariable"; import findSDKsInPathEnvironmentVariable from "../utils/findSDKsInPathEnvironmentVariable"; @@ -212,16 +211,6 @@ export default function selectWorkspaceSDK( true ); } - let flexjsNodeModuleSDK = findSDKInLocalFlexJSNodeModule(); - if (flexjsNodeModuleSDK) { - addSDKItem( - flexjsNodeModuleSDK, - DESCRIPTION_NODE_MODULE, - items, - allPaths, - true - ); - } //if the user has defined search paths for SDKs, include them let searchPaths = vscode.workspace .getConfiguration("as3mxml") diff --git a/vscode-extension/src/main/ts/utils/findSDKInLocalFlexJSNodeModule.ts b/vscode-extension/src/main/ts/utils/findSDKInLocalFlexJSNodeModule.ts deleted file mode 100644 index e915b9399..000000000 --- a/vscode-extension/src/main/ts/utils/findSDKInLocalFlexJSNodeModule.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* -Copyright 2016-2024 Bowler Hat LLC - -Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0 - -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. -*/ -import * as path from "path"; -import * as vscode from "vscode"; -import validateFrameworkSDK from "./validateFrameworkSDK"; - -export default function findSDKInLocalFlexJSNodeModule(): string { - if (vscode.workspace.workspaceFolders === undefined) { - return null; - } - let nodeModule = path.join( - vscode.workspace.workspaceFolders[0].uri.fsPath, - "node_modules", - "flexjs" - ); - //this may return null - return validateFrameworkSDK(nodeModule); -} diff --git a/vscode-extension/src/main/ts/utils/findSDKShortName.ts b/vscode-extension/src/main/ts/utils/findSDKShortName.ts index 5951fcd64..4e97a8146 100644 --- a/vscode-extension/src/main/ts/utils/findSDKShortName.ts +++ b/vscode-extension/src/main/ts/utils/findSDKShortName.ts @@ -17,11 +17,9 @@ import findSDKName from "./findSDKName"; const AIR = "AIR "; const FLEX = "Flex "; -const FLEXJS = "FlexJS "; const ROYALE = "Royale "; const FEATHERS = "Feathers "; const APACHE_FLEX = "Apache Flex "; -const APACHE_FLEXJS = "Apache Flex (FlexJS) "; const APACHE_ROYALE = "Apache Royale "; const FEATHERS_SDK = "Feathers SDK "; const FP = " FP"; @@ -64,9 +62,6 @@ export default function findSDKShortName(sdkPath: string): string { if (sdkName.startsWith(APACHE_ROYALE)) { return stripAfterNextSpace(sdkName, APACHE_ROYALE, ROYALE); } - if (sdkName.startsWith(APACHE_FLEXJS)) { - return stripAfterNextSpace(sdkName, APACHE_FLEXJS, FLEXJS); - } if (sdkName.startsWith(APACHE_FLEX)) { return stripAfterNextSpace(sdkName, APACHE_FLEX); } diff --git a/vscode-extension/src/main/ts/utils/findSDKsInPathEnvironmentVariable.ts b/vscode-extension/src/main/ts/utils/findSDKsInPathEnvironmentVariable.ts index 2a1fadfdf..800734e29 100644 --- a/vscode-extension/src/main/ts/utils/findSDKsInPathEnvironmentVariable.ts +++ b/vscode-extension/src/main/ts/utils/findSDKsInPathEnvironmentVariable.ts @@ -21,7 +21,6 @@ const ENVIRONMENT_VARIABLE_PATH = "PATH"; const NODE_MODULES = "node_modules"; const MODULE_ORG = "@apache-royale"; const MODULE_NAMES = ["royale-js", "royale-js-swf"]; -const MODULE_NAME_FLEXJS = "flexjs"; export default function findSDKsInPathEnvironmentVariable(): string[] { let result: string[] = []; @@ -30,11 +29,10 @@ export default function findSDKsInPathEnvironmentVariable(): string[] { return result; } - let PATH = process.env.PATH; + let PATH = process.env.PATH as string; let paths = PATH.split(path.delimiter); paths.forEach((currentPath) => { - //first check if this directory contains the NPM version of either - //Apache Royale or Apache FlexJS for Windows + //first check if this directory contains the NPM version of Apache Royale let mxmlcPath = path.join(currentPath, "mxmlc.cmd"); if (fs.existsSync(mxmlcPath)) { for (let i = 0, count = MODULE_NAMES.length; i < count; i++) { @@ -50,15 +48,6 @@ export default function findSDKsInPathEnvironmentVariable(): string[] { result.push(validSDK); } } - let sdkPath = path.join( - path.dirname(mxmlcPath), - NODE_MODULES, - MODULE_NAME_FLEXJS - ); - let validSDK = validateFrameworkSDK(sdkPath); - if (validSDK !== null) { - result.push(validSDK); - } } else { mxmlcPath = path.join(currentPath, "mxmlc"); if (fs.existsSync(mxmlcPath)) { diff --git a/vscode-extension/src/main/ts/utils/getFrameworkSDKPathWithFallbacks.ts b/vscode-extension/src/main/ts/utils/getFrameworkSDKPathWithFallbacks.ts index 8822b4969..2d7906297 100644 --- a/vscode-extension/src/main/ts/utils/getFrameworkSDKPathWithFallbacks.ts +++ b/vscode-extension/src/main/ts/utils/getFrameworkSDKPathWithFallbacks.ts @@ -16,7 +16,6 @@ limitations under the License. import * as vscode from "vscode"; import validateFrameworkSDK from "./validateFrameworkSDK"; import findSDKInLocalRoyaleNodeModule from "./findSDKInLocalRoyaleNodeModule"; -import findSDKInLocalFlexJSNodeModule from "./findSDKInLocalFlexJSNodeModule"; import findSDKInRoyaleHomeEnvironmentVariable from "./findSDKInRoyaleHomeEnvironmentVariable"; import findSDKInFlexHomeEnvironmentVariable from "./findSDKInFlexHomeEnvironmentVariable"; import findSDKsInPathEnvironmentVariable from "./findSDKsInPathEnvironmentVariable"; @@ -47,10 +46,6 @@ export default function getFrameworkSDKPathWithFallbacks(): string { //check if an Apache Royale Node module is installed locally in the workspace sdkPath = findSDKInLocalRoyaleNodeModule(); } - if (!sdkPath) { - //check if an Apache FlexJS Node module is installed locally in the workspace - sdkPath = findSDKInLocalFlexJSNodeModule(); - } if (!sdkPath) { //the ROYALE_HOME environment variable may point to an SDK sdkPath = findSDKInRoyaleHomeEnvironmentVariable();