Skip to content
Open
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
7 changes: 5 additions & 2 deletions cli/src/android/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,15 @@ export async function updateAndroid(config: Config): Promise<void> {
printPlugins(capacitorPlugins, 'android');

const cordovaPlugins = plugins.filter((p) => getPluginType(p, platform) === PluginType.Cordova);
const enableCordova = cordovaPlugins.length > 0;
const enableCordova = cordovaPlugins.length > 0 || config.app.forceCordova;

await writePluginsJson(config, capacitorPlugins, enableCordova);
await removePluginsNativeFiles(config);
if (enableCordova) {
logger.info('Found Cordova Plugins: Including Android Cordova Support');
if (config.app.forceCordova) {
logger.info('Cordova support installation has been forced');
}
await copyPluginsNativeFiles(config, cordovaPlugins);
}
if (!(await pathExists(config.android.webDirAbs))) {
Expand Down Expand Up @@ -157,7 +160,7 @@ export async function installGradlePlugins(
);
}

const enableCordova = cordovaPlugins.length > 0;
const enableCordova = cordovaPlugins.length > 0 || config.app.forceCordova;

const capacitorAndroidPath = resolve(dirname(capacitorAndroidPackagePath), 'capacitor');
const capacitorCordovaAndroidPath = resolve(dirname(capacitorAndroidPackagePath), 'capacitor-cordova');
Expand Down
2 changes: 2 additions & 0 deletions cli/src/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ export async function loadConfig(): Promise<Config> {
const appId = conf.extConfig.appId ?? '';
const appName = conf.extConfig.appName ?? '';
const webDir = conf.extConfig.webDir ?? 'www';
const forceCordova = conf.extConfig.forceCordovaInclusion ?? false;
const cli = await loadCLIConfig(cliRootDir);

const config: Config = {
Expand All @@ -66,6 +67,7 @@ export async function loadConfig(): Promise<Config> {
appName,
webDir,
webDirAbs: resolve(appRootDir, webDir),
forceCordova,
package: (await tryFn(readJSON, resolve(appRootDir, 'package.json'))) ?? {
name: appName,
version: '1.0.0',
Expand Down
9 changes: 9 additions & 0 deletions cli/src/declarations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,15 @@ export interface CapacitorConfig {
*/
initialFocus?: boolean;

/**
* If set, will include Cordova support libraries regardless
* of whether or not they are needed by plugins.
*
* @since 9.0.0
* @default false
*/
forceCordovaInclusion?: boolean;

android?: {
/**
* Specify a custom path to the native Android project.
Expand Down
1 change: 1 addition & 0 deletions cli/src/definitions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export interface AppConfig {
readonly extConfigName: string;
readonly extConfigFilePath: string;
readonly extConfig: ExternalConfig;
readonly forceCordova: boolean;
}

export interface AndroidConfig extends PlatformConfig {
Expand Down
5 changes: 4 additions & 1 deletion cli/src/ios/update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,13 @@ export async function updateIOS(config: Config, deployment: boolean): Promise<vo
async function updatePluginFiles(config: Config, plugins: Plugin[], deployment: boolean) {
await removePluginsNativeFiles(config);
const cordovaPlugins = plugins.filter((p) => getPluginType(p, platform) === PluginType.Cordova);
const enableCordova = cordovaPlugins.length > 0;
const enableCordova = cordovaPlugins.length > 0 || config.app.forceCordova;

if (enableCordova) {
logger.info('Found Cordova Plugins: Including iOS Cordova Support');
Comment thread
markemer marked this conversation as resolved.
if (config.app.forceCordova) {
logger.info('Cordova support installation has been forced');
}
await copyPluginsNativeFiles(config, cordovaPlugins);
}

Expand Down
2 changes: 1 addition & 1 deletion cli/src/util/spm.ts
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ export async function generatePackageText(config: Config, plugins: Plugin[]): Pr
const iosPlatformVersion = await getCapacitorPackageVersion(config, config.ios.name);
const iosVersion = getMajoriOSVersion(config);
const cordovaPlugins = await getCordovaPlugins(config, 'ios');
const enableCordova = cordovaPlugins.length > 0;
const enableCordova = cordovaPlugins.length > 0 || config.app.forceCordova;
const packageTraits = config.app.extConfig.experimental?.ios?.spm?.packageTraits ?? {};
const packageOptions = config.app.extConfig.experimental?.ios?.spm?.packageOptions ?? {};
const swiftToolsVersion = config.app.extConfig.experimental?.ios?.spm?.swiftToolsVersion ?? '5.9';
Expand Down
1 change: 1 addition & 0 deletions cli/test/framework-detection.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ describe('framework detection', () => {
appName: 'appName',
webDir: '',
webDirAbs: '',
forceCordova: false,
package: {
name: 'package-name',
version: '0.0.0',
Expand Down
Loading