From 95d318b8196b1ca0f907f429ef40473875f1d87e Mon Sep 17 00:00:00 2001 From: Robert Konrad Date: Wed, 13 Mar 2024 14:58:41 +0100 Subject: [PATCH] Restructure things to make the make/ninja code reusable and remove Tizen support --- kmake/src/Exporters/AndroidExporter.ts | 5 +- kmake/src/Exporters/CLionExporter.ts | 143 ++++++ .../src/Exporters/CompileCommandsExporter.ts | 153 +++++++ kmake/src/Exporters/EmscriptenExporter.ts | 6 +- kmake/src/Exporters/Exporter.ts | 271 ------------ kmake/src/Exporters/FreeBSDExporter.ts | 6 +- kmake/src/Exporters/LinuxExporter.ts | 381 +--------------- kmake/src/Exporters/MakeExporter.ts | 372 +--------------- kmake/src/Exporters/NinjaExporter.ts | 418 +----------------- kmake/src/Exporters/TizenExporter.ts | 44 -- kmake/src/Exporters/VSCodeExporter.ts | 6 +- kmake/src/Exporters/VisualStudioExporter.ts | 6 +- kmake/src/Exporters/WasmExporter.ts | 14 +- kmake/src/Platform.ts | 2 - kmake/src/ShaderCompiler.ts | 1 - kmake/src/main.ts | 8 - lib/kmake/Exporters/AndroidExporter.js | 4 +- lib/kmake/Exporters/AndroidExporter.js.map | 2 +- lib/kmake/Exporters/CLionExporter.js | 126 ++++++ lib/kmake/Exporters/CLionExporter.js.map | 1 + .../Exporters/CompileCommandsExporter.js | 148 +++++++ .../Exporters/CompileCommandsExporter.js.map | 1 + lib/kmake/Exporters/EmscriptenExporter.js | 4 +- lib/kmake/Exporters/EmscriptenExporter.js.map | 2 +- lib/kmake/Exporters/Exporter.js | 247 ----------- lib/kmake/Exporters/Exporter.js.map | 2 +- lib/kmake/Exporters/FreeBSDExporter.js | 4 +- lib/kmake/Exporters/FreeBSDExporter.js.map | 2 +- lib/kmake/Exporters/LinuxExporter.js | 331 +------------- lib/kmake/Exporters/LinuxExporter.js.map | 2 +- lib/kmake/Exporters/MakeExporter.js | 187 ++++++++ lib/kmake/Exporters/MakeExporter.js.map | 1 + lib/kmake/Exporters/NinjaExporter.js | 144 ++++++ lib/kmake/Exporters/NinjaExporter.js.map | 1 + lib/kmake/Exporters/VSCodeExporter.js | 4 +- lib/kmake/Exporters/VSCodeExporter.js.map | 2 +- lib/kmake/Exporters/VisualStudioExporter.js | 4 +- .../Exporters/VisualStudioExporter.js.map | 2 +- lib/kmake/Exporters/WasmExporter.js | 10 +- lib/kmake/Exporters/WasmExporter.js.map | 2 +- lib/kmake/Platform.js | 1 - lib/kmake/Platform.js.map | 2 +- lib/kmake/ShaderCompiler.js | 1 - lib/kmake/ShaderCompiler.js.map | 2 +- lib/kmake/main.js | 9 - lib/kmake/main.js.map | 2 +- 46 files changed, 1034 insertions(+), 2052 deletions(-) create mode 100644 kmake/src/Exporters/CLionExporter.ts create mode 100644 kmake/src/Exporters/CompileCommandsExporter.ts delete mode 100644 kmake/src/Exporters/TizenExporter.ts create mode 100644 lib/kmake/Exporters/CLionExporter.js create mode 100644 lib/kmake/Exporters/CLionExporter.js.map create mode 100644 lib/kmake/Exporters/CompileCommandsExporter.js create mode 100644 lib/kmake/Exporters/CompileCommandsExporter.js.map create mode 100644 lib/kmake/Exporters/MakeExporter.js create mode 100644 lib/kmake/Exporters/MakeExporter.js.map create mode 100644 lib/kmake/Exporters/NinjaExporter.js create mode 100644 lib/kmake/Exporters/NinjaExporter.js.map diff --git a/kmake/src/Exporters/AndroidExporter.ts b/kmake/src/Exporters/AndroidExporter.ts index 107703611d..8287bf5ff1 100644 --- a/kmake/src/Exporters/AndroidExporter.ts +++ b/kmake/src/Exporters/AndroidExporter.ts @@ -8,6 +8,7 @@ import * as fs from 'kmake/fsextra'; import { execSync } from 'child_process'; import * as os from 'os'; import * as path from 'path'; +import { CompilerCommandsExporter } from './CompileCommandsExporter'; interface TargetOptions { package: string; @@ -29,10 +30,12 @@ interface TargetOptions { } export class AndroidExporter extends Exporter { + compileCommands: CompilerCommandsExporter; safeName: string; constructor() { super(); + this.compileCommands = new CompilerCommandsExporter(); } async exportSolution(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { @@ -150,7 +153,7 @@ export class AndroidExporter extends Exporter { } if (project.getDebugDir().length > 0) fs.copyDirSync(path.resolve(from, project.getDebugDir()), path.resolve(to, this.safeName, 'app', 'src', 'main', 'assets')); - this.exportCompileCommands(project, from, to, platform, vrApi, options); + this.compileCommands.exportSolution(project, from, to, platform, vrApi, options); } writeAppGradle(project: Project, outdir: string, from: string, targetOptions: TargetOptions, textData: any) { diff --git a/kmake/src/Exporters/CLionExporter.ts b/kmake/src/Exporters/CLionExporter.ts new file mode 100644 index 0000000000..70b19c286f --- /dev/null +++ b/kmake/src/Exporters/CLionExporter.ts @@ -0,0 +1,143 @@ +import { Project } from 'kmake/Project'; +import * as fs from 'kmake/fsextra'; +import * as path from 'path'; +import { Platform } from 'kmake/Platform'; +import * as log from 'kmake/log'; +import * as os from 'os'; +import * as child_process from 'child_process'; +import { Exporter } from './Exporter'; + +export class CLionExporter extends Exporter { + constructor() { + super(); + } + + async exportSolution(project: Project, from: string, to: string, platform: string, vrApi: any, options: any): Promise { + let name = project.getSafeName(); + + const indir = path.join(__dirname, '..', '..', 'Data', 'linux'); + fs.ensureDirSync(path.resolve(to, name, '.idea')); + + let misc = require('fs').getEmbeddedData()['linux_idea_misc_xml']; + misc = misc.replace(/{root}/g, path.resolve(from)); + fs.writeFileSync(path.join(to, name, '.idea', 'misc.xml'), misc, 'utf8'); + + let workspace = require('fs').getEmbeddedData()['linux_idea_workspace_xml']; + workspace = workspace.replace(/{workingdir}/g, path.resolve(project.getDebugDir())); + workspace = workspace.replace(/{project}/g, name); + workspace = workspace.replace(/{target}/g, name); + fs.writeFileSync(path.join(to, name, '.idea', 'workspace.xml'), workspace, 'utf8'); + + this.writeFile(path.resolve(to, name, 'CMakeLists.txt')); + + this.p('cmake_minimum_required(VERSION 3.10)'); // should be 3.12 to support c++20, 3.20 to support c++23 and 3.21 to support c17/c23 + + this.p('project(' + name + ')'); + switch (project.cppStd) { + case 'gnu++03': + case 'c++03': + this.p('set(CMAKE_CXX_STANDARD 03)'); + break; + case 'gnu++11': + case 'c++11': + this.p('set(CMAKE_CXX_STANDARD 11)'); + break; + case 'gnu++14': + case 'c++14': + this.p('set(CMAKE_CXX_STANDARD 14)'); + break; + case 'gnu++17': + case 'c++17': + this.p('set(CMAKE_CXX_STANDARD 17)'); + break; + case 'gnu++2a': + case 'c++2a': + case 'gnu++20': + case 'c++20': + this.p('set(CMAKE_CXX_STANDARD 20)'); + break; + case 'gnu++2b': + case 'c++2b': + case 'gnu++23': + case 'c++23': + this.p('set(CMAKE_CXX_STANDARD 23)'); + break; + default: + this.p('set(CMAKE_CXX_STANDARD 98)'); + break; + } + + switch (project.cStd) { + case 'gnu9x': + case 'gnu99': + case 'c9x': + case 'c99': + this.p('set(CMAKE_C_STANDARD 99)'); + break; + case 'gnu1x': + case 'gnu11': + case 'c1x': + case 'c11': + this.p('set(CMAKE_C_STANDARD 11)'); + break; + case 'gnu18': + case 'gnu17': + case 'c18': + case 'c17': + this.p('set(CMAKE_C_STANDARD 17)'); + break; + case 'gnu2x': + case 'c2x': + this.p('set(CMAKE_C_STANDARD 23)'); + break; + default: + this.p('set(CMAKE_C_STANDARD 90)'); + break; + } + + this.p('set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -static-libgcc -static-libstdc++")'); + + let debugDefines = ''; + for (const def of project.getDefines()) { + if (!def.config || def.config.toLowerCase() === 'debug') { + debugDefines += ' -D' + def.value; + } + } + this.p('set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}' + debugDefines + '")'); + this.p('set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}' + debugDefines + '")'); + + let releaseDefines = ''; + for (const def of project.getDefines()) { + if (!def.config || def.config.toLowerCase() === 'release') { + releaseDefines += ' -D' + def.value; + } + } + releaseDefines += ' -DNDEBUG'; + this.p('set(CMAKE_C_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}' + releaseDefines + '")'); + this.p('set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}' + releaseDefines + '")'); + + let includes = ''; + for (let inc of project.getIncludeDirs()) { + includes += ' "' + path.resolve(inc).replace(/\\/g, '/') + '"\n'; + } + this.p('include_directories(\n' + includes + ')'); + + let files = ''; + for (let file of project.getFiles()) { + if (file.file.endsWith('.c') || file.file.endsWith('.cc') || file.file.endsWith('.cpp') || file.file.endsWith('.h')) { + files += ' "' + path.resolve(file.file).replace(/\\/g, '/') + '"\n'; + } + } + this.p('set(SOURCE_FILES\n' + files + ')'); + + this.p('add_executable(' + name + ' ${SOURCE_FILES})'); + + let libraries = ''; + for (let lib of project.getLibs()) { + libraries += ' ' + lib + '\n'; + } + this.p('target_link_libraries(' + name + '\n' + libraries + ')'); + + this.closeFile(); + } +} diff --git a/kmake/src/Exporters/CompileCommandsExporter.ts b/kmake/src/Exporters/CompileCommandsExporter.ts new file mode 100644 index 0000000000..2d246ba53f --- /dev/null +++ b/kmake/src/Exporters/CompileCommandsExporter.ts @@ -0,0 +1,153 @@ +import { Project } from 'kmake/Project'; +import * as fs from 'kmake/fsextra'; +import * as path from 'path'; +import { Platform } from 'kmake/Platform'; +import * as log from 'kmake/log'; +import * as os from 'os'; +import * as child_process from 'child_process'; +import { Exporter } from './Exporter'; + +export class CompilerCommandsExporter extends Exporter { + constructor() { + super(); + } + + async exportSolution(project: Project, _from: string, to: string, platform: string, vrApi: any, options: any): Promise { + let from = path.resolve(process.cwd(), _from); + + this.writeFile(path.resolve(to, 'compile_commands.json')); + let includes = []; + for (let inc of project.getIncludeDirs()) { + includes.push('-I'); + includes.push(path.resolve(from, inc)); + } + + let defines = []; + for (let def of project.getDefines()) { + defines.push('-D'); + defines.push(def.value.replace(/\"/g, '\\"')); + } + + let objects: any = {}; + let ofiles: any = {}; + for (let fileobject of project.getFiles()) { + let file = fileobject.file; + if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { + let name = file.toLowerCase(); + if (name.indexOf('/') >= 0) name = name.substr(name.lastIndexOf('/') + 1); + name = name.substr(0, name.lastIndexOf('.')); + if (!objects[name]) { + objects[name] = true; + ofiles[file] = name; + } + else { + while (objects[name]) { + name = name + '_'; + } + objects[name] = true; + ofiles[file] = name; + } + } + } + + let defaultArgs = []; + + // TODO: same for MacOS, Windows, etc... + if (platform === Platform.Android) { + defaultArgs.push('--target=aarch64-none-linux-android21'); + defaultArgs.push('-DANDROID'); + + // take a guess at where the ndk could be + + function ndkFromSdkRoot() { + let sdkEnv = process.env['ANDROID_HOME'] ?? process.env['ANDROID_SDK_ROOT']; + if (!sdkEnv) return null; + let ndk_dir = path.join(sdkEnv, 'ndk'); + if (!fs.existsSync(ndk_dir)) { + return null; + } + let ndks = fs.readdirSync(ndk_dir); + ndks = ndks.filter(item => !item.startsWith(".")); + if (ndks.length < 1) { + return null; + } + return path.join(ndk_dir, ndks[0]); + } + + let android_ndk = process.env['ANDROID_NDK'] ?? ndkFromSdkRoot(); + + if (android_ndk) { + let host_tag = ''; + switch (os.platform()) { + // known host tags + // TODO: figure out the host tag for aarch64 darwin/linux/windows + case 'linux': + host_tag = 'linux-x86_64'; + break; + case 'darwin': + host_tag = 'darwin-x86_64'; + break; + case 'win32': + host_tag = 'windows-x86_64'; + break; + } + let ndk_toolchain = path.join(android_ndk, `toolchains/llvm/prebuilt/${host_tag}`); + if (host_tag !== '' && fs.existsSync(ndk_toolchain)) { + defaultArgs.push(`--gcc-toolchain=${ndk_toolchain}`); + defaultArgs.push(`--sysroot=${ndk_toolchain}/sysroot`); + } + else { + // fallback to the first found toolchain + let toolchains = fs.readdirSync(path.join(android_ndk, `toolchains/llvm/prebuilt/`)); + if (toolchains.length > 0) { + let host_tag = toolchains[0]; + let ndk_toolchain = path.join(android_ndk, `toolchains/llvm/prebuilt/${host_tag}`); + defaultArgs.push(`--gcc-toolchain=${ndk_toolchain}`); + defaultArgs.push(`--sysroot=${ndk_toolchain}/sysroot`); + log.info(`Found android ndk toolchain in ${ndk_toolchain}.`); + } + else { + log.error('Platform is set to Android, but android toolchain not found.'); + } + } + } + else { + log.error('Platform is set to Android, but android toolchain not found.\nPlease set the ANDROID_NDK environment variable if you need a compile_commands.json for your IDE.'); + } + } + else if (platform === Platform.Emscripten) { + let emcc = child_process.spawnSync('emcc', ['--cflags']); + // log.info(emcc.status); + if (emcc.status === 0) { + let flags = emcc.output.toString().split(' '); + defaultArgs.push(...flags); + } + else { + log.error('Platform is set to Emscripten, but emcc could not be found. Please add it to your PATH environment variable if you need a compile_commands.json for your IDE.'); + } + } + + let commands = []; + for (let fileobject of project.getFiles()) { + let file = fileobject.file; + if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc')) { + let args = ['/usr/bin/clang', '-c', '-o', (options.debug ? 'Debug' : 'Release') + ofiles[file] + '.o']; + if (file.endsWith('.c')) { + args.push('-std=c99'); + } + args.push(...defaultArgs); + args.push(path.resolve(from, file)); + let command = { + directory: from, + file: path.resolve(from, file), + output: path.resolve(to, ofiles[file] + '.o'), + arguments: args.concat(includes).concat(defines) + }; + commands.push(command); + } + } + + this.p(JSON.stringify(commands)); + this.closeFile(); + } +} diff --git a/kmake/src/Exporters/EmscriptenExporter.ts b/kmake/src/Exporters/EmscriptenExporter.ts index 6a8cb1510f..db75a02717 100644 --- a/kmake/src/Exporters/EmscriptenExporter.ts +++ b/kmake/src/Exporters/EmscriptenExporter.ts @@ -4,10 +4,14 @@ import { Options } from 'kmake/Options'; import { GraphicsApi } from 'kmake/GraphicsApi'; import * as fs from 'kmake/fsextra'; import * as path from 'path'; +import { CompilerCommandsExporter } from './CompileCommandsExporter'; export class EmscriptenExporter extends Exporter { + compileCommands: CompilerCommandsExporter; + constructor() { super(); + this.compileCommands = new CompilerCommandsExporter(); } exportMakefile(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { @@ -220,6 +224,6 @@ export class EmscriptenExporter extends Exporter { async exportSolution(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { this.exportMakefile(project, from, to, platform, vrApi, options); - this.exportCompileCommands(project, from, to, platform, vrApi, options); + this.compileCommands.exportSolution(project, from, to, platform, vrApi, options); } } diff --git a/kmake/src/Exporters/Exporter.ts b/kmake/src/Exporters/Exporter.ts index f3b5bdf3a4..77c82bc519 100644 --- a/kmake/src/Exporters/Exporter.ts +++ b/kmake/src/Exporters/Exporter.ts @@ -1,10 +1,7 @@ import { Project } from 'kmake/Project'; import * as fs from 'kmake/fsextra'; import * as path from 'path'; -import { Platform } from 'kmake/Platform'; import * as log from 'kmake/log'; -import * as os from 'os'; -import * as child_process from 'child_process'; enum WriteMode { None, @@ -77,272 +74,4 @@ export abstract class Exporter { reject('Called an abstract function'); }); } - - exportCLion(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - let name = project.getSafeName(); - - const indir = path.join(__dirname, '..', '..', 'Data', 'linux'); - fs.ensureDirSync(path.resolve(to, name, '.idea')); - - let misc = require('fs').getEmbeddedData()['linux_idea_misc_xml']; - misc = misc.replace(/{root}/g, path.resolve(from)); - fs.writeFileSync(path.join(to, name, '.idea', 'misc.xml'), misc, 'utf8'); - - let workspace = require('fs').getEmbeddedData()['linux_idea_workspace_xml']; - workspace = workspace.replace(/{workingdir}/g, path.resolve(project.getDebugDir())); - workspace = workspace.replace(/{project}/g, name); - workspace = workspace.replace(/{target}/g, name); - fs.writeFileSync(path.join(to, name, '.idea', 'workspace.xml'), workspace, 'utf8'); - - this.writeFile(path.resolve(to, name, 'CMakeLists.txt')); - - this.p('cmake_minimum_required(VERSION 3.10)'); // should be 3.12 to support c++20, 3.20 to support c++23 and 3.21 to support c17/c23 - - this.p('project(' + name + ')'); - switch (project.cppStd) { - case 'gnu++03': - case 'c++03': - this.p('set(CMAKE_CXX_STANDARD 03)'); - break; - case 'gnu++11': - case 'c++11': - this.p('set(CMAKE_CXX_STANDARD 11)'); - break; - case 'gnu++14': - case 'c++14': - this.p('set(CMAKE_CXX_STANDARD 14)'); - break; - case 'gnu++17': - case 'c++17': - this.p('set(CMAKE_CXX_STANDARD 17)'); - break; - case 'gnu++2a': - case 'c++2a': - case 'gnu++20': - case 'c++20': - this.p('set(CMAKE_CXX_STANDARD 20)'); - break; - case 'gnu++2b': - case 'c++2b': - case 'gnu++23': - case 'c++23': - this.p('set(CMAKE_CXX_STANDARD 23)'); - break; - default: - this.p('set(CMAKE_CXX_STANDARD 98)'); - break; - } - - switch (project.cStd) { - case 'gnu9x': - case 'gnu99': - case 'c9x': - case 'c99': - this.p('set(CMAKE_C_STANDARD 99)'); - break; - case 'gnu1x': - case 'gnu11': - case 'c1x': - case 'c11': - this.p('set(CMAKE_C_STANDARD 11)'); - break; - case 'gnu18': - case 'gnu17': - case 'c18': - case 'c17': - this.p('set(CMAKE_C_STANDARD 17)'); - break; - case 'gnu2x': - case 'c2x': - this.p('set(CMAKE_C_STANDARD 23)'); - break; - default: - this.p('set(CMAKE_C_STANDARD 90)'); - break; - } - - this.p('set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -static-libgcc -static-libstdc++")'); - - let debugDefines = ''; - for (const def of project.getDefines()) { - if (!def.config || def.config.toLowerCase() === 'debug') { - debugDefines += ' -D' + def.value; - } - } - this.p('set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}' + debugDefines + '")'); - this.p('set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}' + debugDefines + '")'); - - let releaseDefines = ''; - for (const def of project.getDefines()) { - if (!def.config || def.config.toLowerCase() === 'release') { - releaseDefines += ' -D' + def.value; - } - } - releaseDefines += ' -DNDEBUG'; - this.p('set(CMAKE_C_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}' + releaseDefines + '")'); - this.p('set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}' + releaseDefines + '")'); - - let includes = ''; - for (let inc of project.getIncludeDirs()) { - includes += ' "' + path.resolve(inc).replace(/\\/g, '/') + '"\n'; - } - this.p('include_directories(\n' + includes + ')'); - - let files = ''; - for (let file of project.getFiles()) { - if (file.file.endsWith('.c') || file.file.endsWith('.cc') || file.file.endsWith('.cpp') || file.file.endsWith('.h')) { - files += ' "' + path.resolve(file.file).replace(/\\/g, '/') + '"\n'; - } - } - this.p('set(SOURCE_FILES\n' + files + ')'); - - this.p('add_executable(' + name + ' ${SOURCE_FILES})'); - - let libraries = ''; - for (let lib of project.getLibs()) { - libraries += ' ' + lib + '\n'; - } - this.p('target_link_libraries(' + name + '\n' + libraries + ')'); - - this.closeFile(); - } - - exportCompileCommands(project: Project, _from: string, to: string, platform: string, vrApi: any, options: any) { - let from = path.resolve(process.cwd(), _from); - - this.writeFile(path.resolve(to, 'compile_commands.json')); - let includes = []; - for (let inc of project.getIncludeDirs()) { - includes.push('-I'); - includes.push(path.resolve(from, inc)); - } - - let defines = []; - for (let def of project.getDefines()) { - defines.push('-D'); - defines.push(def.value.replace(/\"/g, '\\"')); - } - - let objects: any = {}; - let ofiles: any = {}; - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - let name = file.toLowerCase(); - if (name.indexOf('/') >= 0) name = name.substr(name.lastIndexOf('/') + 1); - name = name.substr(0, name.lastIndexOf('.')); - if (!objects[name]) { - objects[name] = true; - ofiles[file] = name; - } - else { - while (objects[name]) { - name = name + '_'; - } - objects[name] = true; - ofiles[file] = name; - } - } - } - - let defaultArgs = []; - - // TODO: same for MacOS, Windows, etc... - if (platform === Platform.Android) { - defaultArgs.push('--target=aarch64-none-linux-android21'); - defaultArgs.push('-DANDROID'); - - // take a guess at where the ndk could be - - function ndkFromSdkRoot() { - let sdkEnv = process.env['ANDROID_HOME'] ?? process.env['ANDROID_SDK_ROOT']; - if (!sdkEnv) return null; - let ndk_dir = path.join(sdkEnv, 'ndk'); - if (!fs.existsSync(ndk_dir)) { - return null; - } - let ndks = fs.readdirSync(ndk_dir); - ndks = ndks.filter(item => !item.startsWith(".")); - if (ndks.length < 1) { - return null; - } - return path.join(ndk_dir, ndks[0]); - } - - let android_ndk = process.env['ANDROID_NDK'] ?? ndkFromSdkRoot(); - - if (android_ndk) { - let host_tag = ''; - switch (os.platform()) { - // known host tags - // TODO: figure out the host tag for aarch64 darwin/linux/windows - case 'linux': - host_tag = 'linux-x86_64'; - break; - case 'darwin': - host_tag = 'darwin-x86_64'; - break; - case 'win32': - host_tag = 'windows-x86_64'; - break; - } - let ndk_toolchain = path.join(android_ndk, `toolchains/llvm/prebuilt/${host_tag}`); - if (host_tag !== '' && fs.existsSync(ndk_toolchain)) { - defaultArgs.push(`--gcc-toolchain=${ndk_toolchain}`); - defaultArgs.push(`--sysroot=${ndk_toolchain}/sysroot`); - } - else { - // fallback to the first found toolchain - let toolchains = fs.readdirSync(path.join(android_ndk, `toolchains/llvm/prebuilt/`)); - if (toolchains.length > 0) { - let host_tag = toolchains[0]; - let ndk_toolchain = path.join(android_ndk, `toolchains/llvm/prebuilt/${host_tag}`); - defaultArgs.push(`--gcc-toolchain=${ndk_toolchain}`); - defaultArgs.push(`--sysroot=${ndk_toolchain}/sysroot`); - log.info(`Found android ndk toolchain in ${ndk_toolchain}.`); - } - else { - log.error('Platform is set to Android, but android toolchain not found.'); - } - } - } - else { - log.error('Platform is set to Android, but android toolchain not found.\nPlease set the ANDROID_NDK environment variable if you need a compile_commands.json for your IDE.'); - } - } - else if (platform === Platform.Emscripten) { - let emcc = child_process.spawnSync('emcc', ['--cflags']); - // log.info(emcc.status); - if (emcc.status === 0) { - let flags = emcc.output.toString().split(' '); - defaultArgs.push(...flags); - } - else { - log.error('Platform is set to Emscripten, but emcc could not be found. Please add it to your PATH environment variable if you need a compile_commands.json for your IDE.'); - } - } - - let commands = []; - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc')) { - let args = ['/usr/bin/clang', '-c', '-o', (options.debug ? 'Debug' : 'Release') + ofiles[file] + '.o']; - if (file.endsWith('.c')) { - args.push('-std=c99'); - } - args.push(...defaultArgs); - args.push(path.resolve(from, file)); - let command = { - directory: from, - file: path.resolve(from, file), - output: path.resolve(to, ofiles[file] + '.o'), - arguments: args.concat(includes).concat(defines) - }; - commands.push(command); - } - } - - this.p(JSON.stringify(commands)); - this.closeFile(); - } } diff --git a/kmake/src/Exporters/FreeBSDExporter.ts b/kmake/src/Exporters/FreeBSDExporter.ts index 43a19de483..09209b06b7 100644 --- a/kmake/src/Exporters/FreeBSDExporter.ts +++ b/kmake/src/Exporters/FreeBSDExporter.ts @@ -6,16 +6,20 @@ import { Project } from 'kmake/Project'; import { Compiler } from 'kmake/Compiler'; import * as fs from 'kmake/fsextra'; import * as path from 'path'; +import { CLionExporter } from './CLionExporter'; export class FreeBSDExporter extends Exporter { + clion: CLionExporter; + constructor() { super(); + this.clion = new CLionExporter(); } async exportSolution(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { this.exportMakefile(project, from, to, platform, vrApi, options); this.exportCodeBlocks(project, from, to, platform, vrApi, options); - this.exportCLion(project, from, to, platform, vrApi, options); + this.clion.exportSolution(project, from, to, platform, vrApi, options); this.exportCompileCommands(project, from, to, platform, vrApi, options); } diff --git a/kmake/src/Exporters/LinuxExporter.ts b/kmake/src/Exporters/LinuxExporter.ts index 6340839176..47699288a0 100644 --- a/kmake/src/Exporters/LinuxExporter.ts +++ b/kmake/src/Exporters/LinuxExporter.ts @@ -5,18 +5,35 @@ import { Project } from 'kmake/Project'; import { Compiler } from 'kmake/Compiler'; import * as fs from 'kmake/fsextra'; import * as path from 'path'; +import { NinjaExporter } from './NinjaExporter'; +import { MakeExporter } from './MakeExporter'; +import { CLionExporter } from './CLionExporter'; +import { CompilerCommandsExporter } from './CompileCommandsExporter'; export class LinuxExporter extends Exporter { + ninja: NinjaExporter; + make: MakeExporter; + clion: CLionExporter; + compileCommands: CompilerCommandsExporter; + constructor() { super(); + let linkerParams = '-static-libgcc -static-libstdc++ -pthread'; + if (Options.compiler === Compiler.MuslGcc || this.getOS().includes('Alpine')) { + linkerParams += ' -static'; + } + this.ninja = new NinjaExporter(this.getCCompiler(), this.getCPPCompiler(), linkerParams); + this.make = new MakeExporter(this.getCCompiler(), this.getCPPCompiler(), linkerParams); + this.clion = new CLionExporter(); + this.compileCommands = new CompilerCommandsExporter(); } async exportSolution(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - this.exportNinjaFile(project, from, to, platform, vrApi, options); - this.exportMakefile(project, from, to, platform, vrApi, options); + this.ninja.exportSolution(project, from, to, platform, vrApi, options); + this.make.exportSolution(project, from, to, platform, vrApi, options); this.exportCodeBlocks(project, from, to, platform, vrApi, options); - this.exportCLion(project, from, to, platform, vrApi, options); - this.exportCompileCommands(project, from, to, platform, vrApi, options); + this.clion.exportSolution(project, from, to, platform, vrApi, options); + this.compileCommands.exportSolution(project, from, to, platform, vrApi, options); } getCCompiler(): string { @@ -75,362 +92,6 @@ export class LinuxExporter extends Exporter { } } - exportNinjaFile(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - const cCompiler = this.getCCompiler(); - const cppCompiler = this.getCPPCompiler(); - const os = this.getOS(); - - let objects: any = {}; - let ofiles: any = {}; - let outputPath = path.resolve(to, options.buildPath); - fs.ensureDirSync(outputPath); - - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - let name = file.toLowerCase(); - if (name.indexOf('/') >= 0) name = name.substr(name.lastIndexOf('/') + 1); - name = name.substr(0, name.lastIndexOf('.')); - if (!objects[name]) { - objects[name] = true; - ofiles[file] = name; - } - else { - while (objects[name]) { - name = name + '_'; - } - objects[name] = true; - ofiles[file] = name; - } - } - } - - let ofilelist = ''; - for (let o in objects) { - ofilelist += o + '.o '; - } - - this.writeFile(path.resolve(outputPath, 'build.ninja')); - - this.p('pool link_pool\n depth = 1\n'); - - let incline = ''; - for (let inc of project.getIncludeDirs()) { - inc = path.relative(outputPath, path.resolve(from, inc)); - incline += '-I' + inc + ' '; - } - - let libsline = '-static-libgcc -static-libstdc++ -pthread'; - if (Options.compiler === Compiler.MuslGcc || os.includes('Alpine')) { - libsline += ' -static'; - } - for (let lib of project.getLibs()) { - libsline += ' -l' + lib; - } - libsline += ' '; - - let defline = ''; - for (const def of project.getDefines()) { - if (def.config && def.config.toLowerCase() === 'debug' && !options.debug) { - continue; - } - - if (def.config && def.config.toLowerCase() === 'release' && options.debug) { - continue; - } - - defline += '-D' + def.value.replace(/\"/g, '\\"') + ' '; - } - if (!options.debug) { - defline += '-DNDEBUG '; - } - - let optimization = ''; - if (!options.debug) { - optimization = '-O2'; - } - else optimization = '-g'; - - let cline = cCompiler + ' '; - if (project.cStd !== '') { - cline += '-std=' + project.cStd + ' '; - } - if (options.dynlib) { - cline += '-fPIC '; - } - for (let flag of project.cFlags) { - cline += flag + ' '; - } - cline += optimization + ' '; - cline += incline; - cline += defline; - this.p('rule cc\n deps = gcc\n depfile = $out.d\n command = ' + cline + '-MD -MF $out.d -c $in -o $out\n'); - - let cppline = cppCompiler + ' '; - if (project.cppStd !== '') { - cppline += '-std=' + project.cppStd + ' '; - } - if (options.dynlib) { - cppline += '-fPIC '; - } - for (let flag of project.cppFlags) { - cppline += flag + ' '; - } - cppline += optimization + ' '; - cppline += incline; - cppline += defline; - this.p('rule cxx\n deps = gcc\n depfile = $out.d\n command = ' + cppline + '-MD -MF $out.d -c $in -o $out\n'); - - if (options.dynlib) { - this.p('rule link\n pool = link_pool\n command = ' + this.getCPPCompiler() + ' -fPIC -shared -o $out ' + optimization + ' $in ' + libsline); - } - else if (options.lib) { - this.p('rule link\n pool = link_pool\n command = ar rcs -o $out $in'); - } - else { - this.p('rule link\n pool = link_pool\n command = ' + this.getCPPCompiler() + ' -o $out ' + optimization + ' $in ' + libsline); - } - - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - this.p(); - let name = ofiles[file]; - let realfile = path.relative(outputPath, path.resolve(from, file)); - - let compiler = 'cxx'; - if (file.endsWith('.c')) { - compiler = 'cc'; - } - else if (file.endsWith('.s') || file.endsWith('.S')) { - compiler = 'asm'; - } - - this.p('build ' + name + '.o: ' + compiler + ' ' + realfile); - } - } - this.p(); - - let executableName = project.getSafeName(); - if (project.getExecutableName()) { - executableName = project.getExecutableName(); - } - - let outputname = executableName; - if (options.lib) { - outputname = executableName + '.a'; - } - else if (options.dynlib) { - outputname = executableName + '.so'; - } - - this.p('build ' + outputname + ': link ' + ofilelist); - - this.closeFile(); - } - - exportMakefile(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - const cCompiler = this.getCCompiler(); - const cppCompiler = this.getCPPCompiler(); - const os = this.getOS(); - - let objects: any = {}; - let ofiles: any = {}; - let outputPath = path.resolve(to, options.buildPath); - fs.ensureDirSync(outputPath); - - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - let name = file.toLowerCase(); - if (name.indexOf('/') >= 0) name = name.substr(name.lastIndexOf('/') + 1); - name = name.substr(0, name.lastIndexOf('.')); - if (!objects[name]) { - objects[name] = true; - ofiles[file] = name; - } - else { - while (objects[name]) { - name = name + '_'; - } - objects[name] = true; - ofiles[file] = name; - } - } - } - - let gchfilelist = ''; - let precompiledHeaders: string[] = []; - for (let file of project.getFiles()) { - if (file.options && file.options.pch && precompiledHeaders.indexOf(file.options.pch) < 0) { - precompiledHeaders.push(file.options.pch); - } - } - for (let file of project.getFiles()) { - let precompiledHeader: string = null; - for (let header of precompiledHeaders) { - if (file.file.endsWith(header)) { - precompiledHeader = header; - break; - } - } - if (precompiledHeader !== null) { - // let realfile = path.relative(outputPath, path.resolve(from, file.file)); - gchfilelist += path.basename(file.file) + '.gch '; - } - } - - let ofilelist = ''; - for (let o in objects) { - ofilelist += o + '.o '; - } - - this.writeFile(path.resolve(outputPath, 'makefile')); - - let incline = '-I./ '; // local directory to pick up the precompiled header hxcpp.h.gch - for (let inc of project.getIncludeDirs()) { - inc = path.relative(outputPath, path.resolve(from, inc)); - incline += '-I' + inc + ' '; - } - this.p('INC=' + incline); - - let libsline = '-static-libgcc -static-libstdc++ -pthread'; - if (Options.compiler === Compiler.MuslGcc || os.includes('Alpine')) { - libsline += ' -static'; - } - for (let lib of project.getLibs()) { - libsline += ' -l' + lib; - } - this.p('LIB=' + libsline); - - let defline = ''; - for (const def of project.getDefines()) { - if (def.config && def.config.toLowerCase() === 'debug' && !options.debug) { - continue; - } - - if (def.config && def.config.toLowerCase() === 'release' && options.debug) { - continue; - } - - defline += '-D' + def.value.replace(/\"/g, '\\"') + ' '; - } - if (!options.debug) { - defline += '-DNDEBUG '; - } - this.p('DEF=' + defline); - this.p(); - - let cline = ''; - if (project.cStd !== '') { - cline = '-std=' + project.cStd + ' '; - } - if (options.dynlib) { - cline += '-fPIC '; - } - for (let flag of project.cFlags) { - cline += flag + ' '; - } - this.p('CFLAGS=' + cline); - - let cppline = ''; - if (project.cppStd !== '') { - cppline = '-std=' + project.cppStd + ' '; - } - if (options.dynlib) { - cppline += '-fPIC '; - } - for (let flag of project.cppFlags) { - cppline += flag + ' '; - } - this.p('CPPFLAGS=' + cppline); - - let optimization = ''; - if (!options.debug) { - optimization = '-O2'; - } - else optimization = '-g'; - - let executableName = project.getSafeName(); - if (project.getExecutableName()) { - executableName = project.getExecutableName(); - } - - if (options.lib) { - this.p(executableName + '.a: ' + gchfilelist + ofilelist); - } - else if (options.dynlib) { - this.p(executableName + '.so: ' + gchfilelist + ofilelist); - } - else { - this.p(executableName + ': ' + gchfilelist + ofilelist); - } - - let cpp = ''; - - let output = '-o "' + executableName + '"'; - if (options.lib) { - output = '-o "' + executableName + '.a"'; - } - else if (options.dynlib) { - output = '-shared -o "' + executableName + '.so"'; - } - - if (options.lib) { - this.p('\t' + 'ar rcs ' + output + ' ' + ofilelist); - } - else { - this.p('\t' + cppCompiler + ' ' + output + ' ' + cpp + ' ' + optimization + ' ' + ofilelist + ' $(LIB)'); - } - - for (let file of project.getFiles()) { - let precompiledHeader: string = null; - for (let header of precompiledHeaders) { - if (file.file.endsWith(header)) { - precompiledHeader = header; - break; - } - } - if (precompiledHeader !== null) { - let realfile = path.relative(outputPath, path.resolve(from, file.file)); - this.p('-include ' + path.basename(file.file) + '.d'); - this.p(path.basename(realfile) + '.gch: ' + realfile); - this.p('\t' + cppCompiler + ' ' + cpp + ' ' + optimization + ' $(INC) $(DEF) -MD -c ' + realfile + ' -o ' + path.basename(file.file) + '.gch'); - } - } - - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - this.p(); - let name = ofiles[file]; - let realfile = path.relative(outputPath, path.resolve(from, file)); - - this.p('-include ' + name + '.d'); - - this.p(name + '.o: ' + realfile); - - let compiler = cppCompiler; - let flags = '$(CPPFLAGS)'; - if (file.endsWith('.c')) { - compiler = cCompiler; - flags = '$(CFLAGS)'; - } - else if (file.endsWith('.s') || file.endsWith('.S')) { - compiler = cCompiler; - flags = ''; - } - - this.p('\t' + compiler + ' ' + cpp + ' ' + optimization + ' $(INC) $(DEF) -MD ' + flags + ' -c ' + realfile + ' -o ' + name + '.o'); - } - } - - // project.getDefines() - // project.getIncludeDirs() - - this.closeFile(); - } - exportCodeBlocks(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { this.writeFile(path.resolve(to, project.getSafeName() + '.cbp')); this.p(''); diff --git a/kmake/src/Exporters/MakeExporter.ts b/kmake/src/Exporters/MakeExporter.ts index eac7605ab9..6a7079ddc3 100644 --- a/kmake/src/Exporters/MakeExporter.ts +++ b/kmake/src/Exporters/MakeExporter.ts @@ -7,233 +7,18 @@ import * as fs from 'kmake/fsextra'; import * as path from 'path'; export class MakeExporter extends Exporter { - constructor() { + cCompiler: string; + cppCompiler: string; + linkerParams: string; + + constructor(cCompiler: string, cppCompiler: string, linkerParams: string) { super(); + this.cCompiler = cCompiler; + this.cppCompiler = cppCompiler; + this.linkerParams = linkerParams; } async exportSolution(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - this.exportNinjaFile(project, from, to, platform, vrApi, options); - this.exportMakefile(project, from, to, platform, vrApi, options); - this.exportCodeBlocks(project, from, to, platform, vrApi, options); - this.exportCLion(project, from, to, platform, vrApi, options); - this.exportCompileCommands(project, from, to, platform, vrApi, options); - } - - getCCompiler(): string { - switch (Options.compiler) { - case Compiler.Default: - case Compiler.GCC: - return 'gcc'; - case Compiler.Clang: - return 'clang'; - case Compiler.MuslGcc: - return 'musl-gcc'; - case Compiler.Custom: - return Options.ccPath; - default: - throw 'Unsupported compiler ' + Options.compiler; - } - } - - getCPPCompiler(): string { - switch (Options.compiler) { - case Compiler.Default: - case Compiler.GCC: - return 'g++'; - case Compiler.Clang: - return 'clang++'; - case Compiler.MuslGcc: - return 'g++'; - case Compiler.Custom: - return Options.cxxPath; - default: - throw 'Unsupported compiler ' + Options.compiler; - } - } - - getOS(): string { - try { - const data = fs.readFileSync('/etc/os-release', 'utf8'); - const lines = data.split('\n'); - let name = null; - for (const line of lines) { - if (line.trim().startsWith('NAME')) { - name = line.split('=')[1]; - name = name.substring(1, name.length - 1); - break; - } - } - if (name) { - return name; - } - else { - return 'Unknown'; - } - } - catch (error) { - return 'Unknown'; - } - } - - exportNinjaFile(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - const cCompiler = this.getCCompiler(); - const cppCompiler = this.getCPPCompiler(); - const os = this.getOS(); - - let objects: any = {}; - let ofiles: any = {}; - let outputPath = path.resolve(to, options.buildPath); - fs.ensureDirSync(outputPath); - - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - let name = file.toLowerCase(); - if (name.indexOf('/') >= 0) name = name.substr(name.lastIndexOf('/') + 1); - name = name.substr(0, name.lastIndexOf('.')); - if (!objects[name]) { - objects[name] = true; - ofiles[file] = name; - } - else { - while (objects[name]) { - name = name + '_'; - } - objects[name] = true; - ofiles[file] = name; - } - } - } - - let ofilelist = ''; - for (let o in objects) { - ofilelist += o + '.o '; - } - - this.writeFile(path.resolve(outputPath, 'build.ninja')); - - this.p('pool link_pool\n depth = 1\n'); - - let incline = ''; - for (let inc of project.getIncludeDirs()) { - inc = path.relative(outputPath, path.resolve(from, inc)); - incline += '-I' + inc + ' '; - } - - let libsline = '-static-libgcc -static-libstdc++ -pthread'; - if (Options.compiler === Compiler.MuslGcc || os.includes('Alpine')) { - libsline += ' -static'; - } - for (let lib of project.getLibs()) { - libsline += ' -l' + lib; - } - libsline += ' '; - - let defline = ''; - for (const def of project.getDefines()) { - if (def.config && def.config.toLowerCase() === 'debug' && !options.debug) { - continue; - } - - if (def.config && def.config.toLowerCase() === 'release' && options.debug) { - continue; - } - - defline += '-D' + def.value.replace(/\"/g, '\\"') + ' '; - } - if (!options.debug) { - defline += '-DNDEBUG '; - } - - let optimization = ''; - if (!options.debug) { - optimization = '-O2'; - } - else optimization = '-g'; - - let cline = cCompiler + ' '; - if (project.cStd !== '') { - cline += '-std=' + project.cStd + ' '; - } - if (options.dynlib) { - cline += '-fPIC '; - } - for (let flag of project.cFlags) { - cline += flag + ' '; - } - cline += optimization + ' '; - cline += incline; - cline += defline; - this.p('rule cc\n deps = gcc\n depfile = $out.d\n command = ' + cline + '-MD -MF $out.d -c $in -o $out\n'); - - let cppline = cppCompiler + ' '; - if (project.cppStd !== '') { - cppline += '-std=' + project.cppStd + ' '; - } - if (options.dynlib) { - cppline += '-fPIC '; - } - for (let flag of project.cppFlags) { - cppline += flag + ' '; - } - cppline += optimization + ' '; - cppline += incline; - cppline += defline; - this.p('rule cxx\n deps = gcc\n depfile = $out.d\n command = ' + cppline + '-MD -MF $out.d -c $in -o $out\n'); - - if (options.dynlib) { - this.p('rule link\n pool = link_pool\n command = ' + this.getCPPCompiler() + ' -fPIC -shared -o $out ' + optimization + ' $in ' + libsline); - } - else if (options.lib) { - this.p('rule link\n pool = link_pool\n command = ar rcs -o $out $in'); - } - else { - this.p('rule link\n pool = link_pool\n command = ' + this.getCPPCompiler() + ' -o $out ' + optimization + ' $in ' + libsline); - } - - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - this.p(); - let name = ofiles[file]; - let realfile = path.relative(outputPath, path.resolve(from, file)); - - let compiler = 'cxx'; - if (file.endsWith('.c')) { - compiler = 'cc'; - } - else if (file.endsWith('.s') || file.endsWith('.S')) { - compiler = 'asm'; - } - - this.p('build ' + name + '.o: ' + compiler + ' ' + realfile); - } - } - this.p(); - - let executableName = project.getSafeName(); - if (project.getExecutableName()) { - executableName = project.getExecutableName(); - } - - let outputname = executableName; - if (options.lib) { - outputname = executableName + '.a'; - } - else if (options.dynlib) { - outputname = executableName + '.so'; - } - - this.p('build ' + outputname + ': link ' + ofilelist); - - this.closeFile(); - } - - exportMakefile(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - const cCompiler = this.getCCompiler(); - const cppCompiler = this.getCPPCompiler(); - const os = this.getOS(); - let objects: any = {}; let ofiles: any = {}; let outputPath = path.resolve(to, options.buildPath); @@ -294,10 +79,7 @@ export class MakeExporter extends Exporter { } this.p('INC=' + incline); - let libsline = '-static-libgcc -static-libstdc++ -pthread'; - if (Options.compiler === Compiler.MuslGcc || os.includes('Alpine')) { - libsline += ' -static'; - } + let libsline = this.linkerParams; for (let lib of project.getLibs()) { libsline += ' -l' + lib; } @@ -380,7 +162,7 @@ export class MakeExporter extends Exporter { this.p('\t' + 'ar rcs ' + output + ' ' + ofilelist); } else { - this.p('\t' + cppCompiler + ' ' + output + ' ' + cpp + ' ' + optimization + ' ' + ofilelist + ' $(LIB)'); + this.p('\t' + this.cppCompiler + ' ' + output + ' ' + cpp + ' ' + optimization + ' ' + ofilelist + ' $(LIB)'); } for (let file of project.getFiles()) { @@ -395,7 +177,7 @@ export class MakeExporter extends Exporter { let realfile = path.relative(outputPath, path.resolve(from, file.file)); this.p('-include ' + path.basename(file.file) + '.d'); this.p(path.basename(realfile) + '.gch: ' + realfile); - this.p('\t' + cppCompiler + ' ' + cpp + ' ' + optimization + ' $(INC) $(DEF) -MD -c ' + realfile + ' -o ' + path.basename(file.file) + '.gch'); + this.p('\t' + this.cppCompiler + ' ' + cpp + ' ' + optimization + ' $(INC) $(DEF) -MD -c ' + realfile + ' -o ' + path.basename(file.file) + '.gch'); } } @@ -410,14 +192,14 @@ export class MakeExporter extends Exporter { this.p(name + '.o: ' + realfile); - let compiler = cppCompiler; + let compiler = this.cppCompiler; let flags = '$(CPPFLAGS)'; if (file.endsWith('.c')) { - compiler = cCompiler; + compiler = this.cCompiler; flags = '$(CFLAGS)'; } else if (file.endsWith('.s') || file.endsWith('.S')) { - compiler = cCompiler; + compiler = this.cCompiler; flags = ''; } @@ -430,130 +212,4 @@ export class MakeExporter extends Exporter { this.closeFile(); } - - exportCodeBlocks(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - this.writeFile(path.resolve(to, project.getSafeName() + '.cbp')); - this.p(''); - this.p(''); - this.p('', 1); - this.p('', 1); - this.p('', 1); - this.p(''); - this.closeFile(); - } } diff --git a/kmake/src/Exporters/NinjaExporter.ts b/kmake/src/Exporters/NinjaExporter.ts index f06e115eea..611d2a8ba8 100644 --- a/kmake/src/Exporters/NinjaExporter.ts +++ b/kmake/src/Exporters/NinjaExporter.ts @@ -7,79 +7,18 @@ import * as fs from 'kmake/fsextra'; import * as path from 'path'; export class NinjaExporter extends Exporter { - constructor() { + cCompiler: string; + cppCompiler: string; + linkerParams: string; + + constructor(cCompiler: string, cppCompiler: string, linkerParams: string) { super(); + this.cCompiler = cCompiler; + this.cppCompiler = cppCompiler; + this.linkerParams = linkerParams; } async exportSolution(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - this.exportNinjaFile(project, from, to, platform, vrApi, options); - this.exportMakefile(project, from, to, platform, vrApi, options); - this.exportCodeBlocks(project, from, to, platform, vrApi, options); - this.exportCLion(project, from, to, platform, vrApi, options); - this.exportCompileCommands(project, from, to, platform, vrApi, options); - } - - getCCompiler(): string { - switch (Options.compiler) { - case Compiler.Default: - case Compiler.GCC: - return 'gcc'; - case Compiler.Clang: - return 'clang'; - case Compiler.MuslGcc: - return 'musl-gcc'; - case Compiler.Custom: - return Options.ccPath; - default: - throw 'Unsupported compiler ' + Options.compiler; - } - } - - getCPPCompiler(): string { - switch (Options.compiler) { - case Compiler.Default: - case Compiler.GCC: - return 'g++'; - case Compiler.Clang: - return 'clang++'; - case Compiler.MuslGcc: - return 'g++'; - case Compiler.Custom: - return Options.cxxPath; - default: - throw 'Unsupported compiler ' + Options.compiler; - } - } - - getOS(): string { - try { - const data = fs.readFileSync('/etc/os-release', 'utf8'); - const lines = data.split('\n'); - let name = null; - for (const line of lines) { - if (line.trim().startsWith('NAME')) { - name = line.split('=')[1]; - name = name.substring(1, name.length - 1); - break; - } - } - if (name) { - return name; - } - else { - return 'Unknown'; - } - } - catch (error) { - return 'Unknown'; - } - } - - exportNinjaFile(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - const cCompiler = this.getCCompiler(); - const cppCompiler = this.getCPPCompiler(); - const os = this.getOS(); - let objects: any = {}; let ofiles: any = {}; let outputPath = path.resolve(to, options.buildPath); @@ -120,10 +59,7 @@ export class NinjaExporter extends Exporter { incline += '-I' + inc + ' '; } - let libsline = '-static-libgcc -static-libstdc++ -pthread'; - if (Options.compiler === Compiler.MuslGcc || os.includes('Alpine')) { - libsline += ' -static'; - } + let libsline = this.linkerParams; for (let lib of project.getLibs()) { libsline += ' -l' + lib; } @@ -151,7 +87,7 @@ export class NinjaExporter extends Exporter { } else optimization = '-g'; - let cline = cCompiler + ' '; + let cline = this.cCompiler + ' '; if (project.cStd !== '') { cline += '-std=' + project.cStd + ' '; } @@ -166,7 +102,7 @@ export class NinjaExporter extends Exporter { cline += defline; this.p('rule cc\n deps = gcc\n depfile = $out.d\n command = ' + cline + '-MD -MF $out.d -c $in -o $out\n'); - let cppline = cppCompiler + ' '; + let cppline = this.cppCompiler + ' '; if (project.cppStd !== '') { cppline += '-std=' + project.cppStd + ' '; } @@ -182,13 +118,13 @@ export class NinjaExporter extends Exporter { this.p('rule cxx\n deps = gcc\n depfile = $out.d\n command = ' + cppline + '-MD -MF $out.d -c $in -o $out\n'); if (options.dynlib) { - this.p('rule link\n pool = link_pool\n command = ' + this.getCPPCompiler() + ' -fPIC -shared -o $out ' + optimization + ' $in ' + libsline); + this.p('rule link\n pool = link_pool\n command = ' + this.cppCompiler + ' -fPIC -shared -o $out ' + optimization + ' $in ' + libsline); } else if (options.lib) { this.p('rule link\n pool = link_pool\n command = ar rcs -o $out $in'); } else { - this.p('rule link\n pool = link_pool\n command = ' + this.getCPPCompiler() + ' -o $out ' + optimization + ' $in ' + libsline); + this.p('rule link\n pool = link_pool\n command = ' + this.cppCompiler + ' -o $out ' + optimization + ' $in ' + libsline); } for (let fileobject of project.getFiles()) { @@ -228,332 +164,4 @@ export class NinjaExporter extends Exporter { this.closeFile(); } - - exportMakefile(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - const cCompiler = this.getCCompiler(); - const cppCompiler = this.getCPPCompiler(); - const os = this.getOS(); - - let objects: any = {}; - let ofiles: any = {}; - let outputPath = path.resolve(to, options.buildPath); - fs.ensureDirSync(outputPath); - - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - let name = file.toLowerCase(); - if (name.indexOf('/') >= 0) name = name.substr(name.lastIndexOf('/') + 1); - name = name.substr(0, name.lastIndexOf('.')); - if (!objects[name]) { - objects[name] = true; - ofiles[file] = name; - } - else { - while (objects[name]) { - name = name + '_'; - } - objects[name] = true; - ofiles[file] = name; - } - } - } - - let gchfilelist = ''; - let precompiledHeaders: string[] = []; - for (let file of project.getFiles()) { - if (file.options && file.options.pch && precompiledHeaders.indexOf(file.options.pch) < 0) { - precompiledHeaders.push(file.options.pch); - } - } - for (let file of project.getFiles()) { - let precompiledHeader: string = null; - for (let header of precompiledHeaders) { - if (file.file.endsWith(header)) { - precompiledHeader = header; - break; - } - } - if (precompiledHeader !== null) { - // let realfile = path.relative(outputPath, path.resolve(from, file.file)); - gchfilelist += path.basename(file.file) + '.gch '; - } - } - - let ofilelist = ''; - for (let o in objects) { - ofilelist += o + '.o '; - } - - this.writeFile(path.resolve(outputPath, 'makefile')); - - let incline = '-I./ '; // local directory to pick up the precompiled header hxcpp.h.gch - for (let inc of project.getIncludeDirs()) { - inc = path.relative(outputPath, path.resolve(from, inc)); - incline += '-I' + inc + ' '; - } - this.p('INC=' + incline); - - let libsline = '-static-libgcc -static-libstdc++ -pthread'; - if (Options.compiler === Compiler.MuslGcc || os.includes('Alpine')) { - libsline += ' -static'; - } - for (let lib of project.getLibs()) { - libsline += ' -l' + lib; - } - this.p('LIB=' + libsline); - - let defline = ''; - for (const def of project.getDefines()) { - if (def.config && def.config.toLowerCase() === 'debug' && !options.debug) { - continue; - } - - if (def.config && def.config.toLowerCase() === 'release' && options.debug) { - continue; - } - - defline += '-D' + def.value.replace(/\"/g, '\\"') + ' '; - } - if (!options.debug) { - defline += '-DNDEBUG '; - } - this.p('DEF=' + defline); - this.p(); - - let cline = ''; - if (project.cStd !== '') { - cline = '-std=' + project.cStd + ' '; - } - if (options.dynlib) { - cline += '-fPIC '; - } - for (let flag of project.cFlags) { - cline += flag + ' '; - } - this.p('CFLAGS=' + cline); - - let cppline = ''; - if (project.cppStd !== '') { - cppline = '-std=' + project.cppStd + ' '; - } - if (options.dynlib) { - cppline += '-fPIC '; - } - for (let flag of project.cppFlags) { - cppline += flag + ' '; - } - this.p('CPPFLAGS=' + cppline); - - let optimization = ''; - if (!options.debug) { - optimization = '-O2'; - } - else optimization = '-g'; - - let executableName = project.getSafeName(); - if (project.getExecutableName()) { - executableName = project.getExecutableName(); - } - - if (options.lib) { - this.p(executableName + '.a: ' + gchfilelist + ofilelist); - } - else if (options.dynlib) { - this.p(executableName + '.so: ' + gchfilelist + ofilelist); - } - else { - this.p(executableName + ': ' + gchfilelist + ofilelist); - } - - let cpp = ''; - - let output = '-o "' + executableName + '"'; - if (options.lib) { - output = '-o "' + executableName + '.a"'; - } - else if (options.dynlib) { - output = '-shared -o "' + executableName + '.so"'; - } - - if (options.lib) { - this.p('\t' + 'ar rcs ' + output + ' ' + ofilelist); - } - else { - this.p('\t' + cppCompiler + ' ' + output + ' ' + cpp + ' ' + optimization + ' ' + ofilelist + ' $(LIB)'); - } - - for (let file of project.getFiles()) { - let precompiledHeader: string = null; - for (let header of precompiledHeaders) { - if (file.file.endsWith(header)) { - precompiledHeader = header; - break; - } - } - if (precompiledHeader !== null) { - let realfile = path.relative(outputPath, path.resolve(from, file.file)); - this.p('-include ' + path.basename(file.file) + '.d'); - this.p(path.basename(realfile) + '.gch: ' + realfile); - this.p('\t' + cppCompiler + ' ' + cpp + ' ' + optimization + ' $(INC) $(DEF) -MD -c ' + realfile + ' -o ' + path.basename(file.file) + '.gch'); - } - } - - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - this.p(); - let name = ofiles[file]; - let realfile = path.relative(outputPath, path.resolve(from, file)); - - this.p('-include ' + name + '.d'); - - this.p(name + '.o: ' + realfile); - - let compiler = cppCompiler; - let flags = '$(CPPFLAGS)'; - if (file.endsWith('.c')) { - compiler = cCompiler; - flags = '$(CFLAGS)'; - } - else if (file.endsWith('.s') || file.endsWith('.S')) { - compiler = cCompiler; - flags = ''; - } - - this.p('\t' + compiler + ' ' + cpp + ' ' + optimization + ' $(INC) $(DEF) -MD ' + flags + ' -c ' + realfile + ' -o ' + name + '.o'); - } - } - - // project.getDefines() - // project.getIncludeDirs() - - this.closeFile(); - } - - exportCodeBlocks(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - this.writeFile(path.resolve(to, project.getSafeName() + '.cbp')); - this.p(''); - this.p(''); - this.p('', 1); - this.p('', 1); - this.p('', 1); - this.p(''); - this.closeFile(); - } } diff --git a/kmake/src/Exporters/TizenExporter.ts b/kmake/src/Exporters/TizenExporter.ts deleted file mode 100644 index 5b4e8efed9..0000000000 --- a/kmake/src/Exporters/TizenExporter.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { Exporter } from 'kmake/Exporters/Exporter'; -import { Project } from 'kmake/Project'; -import * as fs from 'kmake/fsextra'; -import * as path from 'path'; - -export class TizenExporter extends Exporter { - constructor() { - super(); - } - - async exportSolution(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - if (project.getDebugDir() !== '') fs.copyFileSync(path.resolve(from, project.getDebugDir()), path.resolve(to, 'data')); - - let dotcproject = fs.readFileSync(path.resolve(__dirname, 'Data', 'tizen', '.cproject'), 'utf8'); - dotcproject = dotcproject.replace(/{ProjectName}/g, project.getName()); - let includes = ''; - for (let include of project.getIncludeDirs()) { - includes += ''; - } - dotcproject = dotcproject.replace(/{includes}/g, includes); - let defines = ''; - for (const define of project.getDefines()) { - defines += ''; - } - dotcproject = dotcproject.replace(/{defines}/g, defines); - fs.writeFileSync(path.resolve(to, '.cproject'), dotcproject); - - let dotproject = fs.readFileSync(path.resolve(__dirname, 'Data', 'tizen', '.project'), 'utf8'); - dotproject = dotproject.replace(/{ProjectName}/g, project.getName()); - fs.writeFileSync(path.resolve(to, '.project'), dotproject); - - let manifest = fs.readFileSync(path.resolve(__dirname, 'Data', 'tizen', 'manifest.xml'), 'utf8'); - manifest = manifest.replace(/{ProjectName}/g, project.getName()); - fs.writeFileSync(path.resolve(to, 'manifest.xml'), manifest); - - for (let file of project.getFiles()) { - let target = path.resolve(to, 'CopiedSources', file.file); - fs.ensureDirSync(path.join(target.substr(0, target.lastIndexOf('/')))); - fs.copyFileSync(path.resolve(from, file.file), target); - } - - this.exportCompileCommands(project, from, to, platform, vrApi, options); - } -} diff --git a/kmake/src/Exporters/VSCodeExporter.ts b/kmake/src/Exporters/VSCodeExporter.ts index 920752399d..bcffe5ff5a 100644 --- a/kmake/src/Exporters/VSCodeExporter.ts +++ b/kmake/src/Exporters/VSCodeExporter.ts @@ -3,10 +3,14 @@ import { Project } from 'kmake/Project'; import { Platform } from 'kmake/Platform'; import * as fs from 'kmake/fsextra'; import * as path from 'path'; +import { CompilerCommandsExporter } from './CompileCommandsExporter'; export class VSCodeExporter extends Exporter { + compileCommands: CompilerCommandsExporter; + constructor() { super(); + this.compileCommands = new CompilerCommandsExporter(); } configName(platform: string): string { @@ -135,7 +139,7 @@ export class VSCodeExporter extends Exporter { this.p(JSON.stringify(data, null, '\t')); this.closeFile(); - this.exportCompileCommands(project, from, to, platform, vrApi, options); + this.compileCommands.exportSolution(project, from, to, platform, vrApi, options); } program(project: Project, platform: string) { diff --git a/kmake/src/Exporters/VisualStudioExporter.ts b/kmake/src/Exporters/VisualStudioExporter.ts index 13a3eb3e06..ded0567149 100644 --- a/kmake/src/Exporters/VisualStudioExporter.ts +++ b/kmake/src/Exporters/VisualStudioExporter.ts @@ -11,6 +11,7 @@ import * as log from 'kmake/log'; import * as fs from 'kmake/fsextra'; import * as path from 'path'; import * as crypto from 'crypto'; +import { CLionExporter } from './CLionExporter'; function isGitPath(aPath: string): boolean { return aPath.indexOf('/.git/') >= 0 || aPath.indexOf('\\.git\\') >= 0 || aPath.endsWith('/.git') || aPath.endsWith('\\.git'); @@ -57,8 +58,11 @@ function getShaderLang() { } export class VisualStudioExporter extends Exporter { + clion: CLionExporter; + constructor() { super(); + this.clion = new CLionExporter(); if (this.overrideVisualStudioVersion() !== null) { Options.visualStudioVersion = this.overrideVisualStudioVersion(); } @@ -181,7 +185,7 @@ export class VisualStudioExporter extends Exporter { } async exportSolution(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - this.exportCLion(project, from, to, platform, vrApi, options); + this.clion.exportSolution(project, from, to, platform, vrApi, options); this.writeFile(path.resolve(to, project.getSafeName() + '.sln')); diff --git a/kmake/src/Exporters/WasmExporter.ts b/kmake/src/Exporters/WasmExporter.ts index 2b2d172252..8c4a332f9d 100644 --- a/kmake/src/Exporters/WasmExporter.ts +++ b/kmake/src/Exporters/WasmExporter.ts @@ -4,10 +4,19 @@ import { Options } from 'kmake/Options'; import { GraphicsApi } from 'kmake/GraphicsApi'; import * as fs from 'kmake/fsextra'; import * as path from 'path'; +import { CompilerCommandsExporter } from './CompileCommandsExporter'; export class WasmExporter extends Exporter { + compileCommands: CompilerCommandsExporter; + constructor() { super(); + this.compileCommands = new CompilerCommandsExporter(); + } + + async exportSolution(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { + this.exportMakefile(project, from, to, platform, vrApi, options); + this.compileCommands.exportSolution(project, from, to, platform, vrApi, options); } exportMakefile(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { @@ -205,9 +214,4 @@ export class WasmExporter extends Exporter { this.closeFile(); } - - async exportSolution(project: Project, from: string, to: string, platform: string, vrApi: any, options: any) { - this.exportMakefile(project, from, to, platform, vrApi, options); - this.exportCompileCommands(project, from, to, platform, vrApi, options); - } } diff --git a/kmake/src/Platform.ts b/kmake/src/Platform.ts index 59b12c6324..1448448e20 100644 --- a/kmake/src/Platform.ts +++ b/kmake/src/Platform.ts @@ -6,7 +6,6 @@ export interface PlatformType { Android: string; Linux: string; Emscripten: string; - Tizen: string; Pi: string; tvOS: string; PS4: string; @@ -26,7 +25,6 @@ export let Platform: PlatformType = { Android: 'android', Linux: 'linux', Emscripten: 'emscripten', - Tizen: 'tizen', Pi: 'pi', tvOS: 'tvos', PS4: 'ps4', diff --git a/kmake/src/ShaderCompiler.ts b/kmake/src/ShaderCompiler.ts index 843857c498..813f602d51 100644 --- a/kmake/src/ShaderCompiler.ts +++ b/kmake/src/ShaderCompiler.ts @@ -72,7 +72,6 @@ export class ShaderCompiler { } case Platform.Emscripten: case Platform.Wasm: - case Platform.Tizen: case Platform.Pi: return 'essl'; case Platform.tvOS: diff --git a/kmake/src/main.ts b/kmake/src/main.ts index ef0c004acf..3ba6844482 100644 --- a/kmake/src/main.ts +++ b/kmake/src/main.ts @@ -14,7 +14,6 @@ import { AndroidExporter } from 'kmake/Exporters/AndroidExporter'; import { LinuxExporter } from 'kmake/Exporters/LinuxExporter'; import { EmscriptenExporter } from 'kmake/Exporters/EmscriptenExporter'; import { WasmExporter } from 'kmake/Exporters/WasmExporter'; -import { TizenExporter } from 'kmake/Exporters/TizenExporter'; import { VisualStudioExporter } from 'kmake/Exporters/VisualStudioExporter'; import { XCodeExporter } from 'kmake/Exporters/XCodeExporter'; import { VSCodeExporter } from 'kmake/Exporters/VSCodeExporter'; @@ -47,8 +46,6 @@ function fromPlatform(platform: string): string { return 'Linux'; case Platform.Emscripten: return 'Emscripten'; - case Platform.Tizen: - return 'Tizen'; case Platform.Pi: return 'Pi'; case Platform.tvOS: @@ -143,8 +140,6 @@ function shaderLang(platform: string): string { default: throw new Error('Unsupported shader language.'); } - case Platform.Tizen: - return 'essl'; case Platform.Pi: return 'essl'; case Platform.FreeBSD: @@ -213,8 +208,6 @@ function graphicsApi(platform: string): string { default: return Options.graphicsApi; } - case Platform.Tizen: - return GraphicsApi.OpenGL; case Platform.Pi: return GraphicsApi.OpenGL; case Platform.FreeBSD: @@ -637,7 +630,6 @@ async function exportKoremakeProject(from: string, to: string, platform: string, else if (platform === Platform.Wasm) exporter = new WasmExporter(); else if (platform === Platform.Linux || platform === Platform.Pi) exporter = new LinuxExporter(); else if (platform === Platform.FreeBSD) exporter = new FreeBSDExporter(); - else if (platform === Platform.Tizen) exporter = new TizenExporter(); else if (platform === Platform.PS4 || platform === Platform.XboxOne || platform === Platform.Switch || platform === Platform.XboxSeries || platform === Platform.PS5) { let libsdir = path.join(from.toString(), 'Backends'); if (Project.kincDir && !fs.existsSync(libsdir)) { diff --git a/lib/kmake/Exporters/AndroidExporter.js b/lib/kmake/Exporters/AndroidExporter.js index 127fe9f4bf..9c063830d0 100644 --- a/lib/kmake/Exporters/AndroidExporter.js +++ b/lib/kmake/Exporters/AndroidExporter.js @@ -10,9 +10,11 @@ const Icon = require("kmake/Icon"); const fs = require("kmake/fsextra"); const os = require("os"); const path = require("path"); +const CompileCommandsExporter_1 = require("./CompileCommandsExporter"); class AndroidExporter extends Exporter_1.Exporter { constructor() { super(); + this.compileCommands = new CompileCommandsExporter_1.CompilerCommandsExporter(); } async exportSolution(project, from, to, platform, vrApi, options) { this.safeName = project.getSafeName(); @@ -116,7 +118,7 @@ class AndroidExporter extends Exporter_1.Exporter { } if (project.getDebugDir().length > 0) fs.copyDirSync(path.resolve(from, project.getDebugDir()), path.resolve(to, this.safeName, 'app', 'src', 'main', 'assets')); - this.exportCompileCommands(project, from, to, platform, vrApi, options); + this.compileCommands.exportSolution(project, from, to, platform, vrApi, options); } writeAppGradle(project, outdir, from, targetOptions, textData) { let cflags = ''; diff --git a/lib/kmake/Exporters/AndroidExporter.js.map b/lib/kmake/Exporters/AndroidExporter.js.map index 4e655d16be..19e74337f2 100644 --- a/lib/kmake/Exporters/AndroidExporter.js.map +++ b/lib/kmake/Exporters/AndroidExporter.js.map @@ -1 +1 @@ -{"version":3,"file":"AndroidExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/AndroidExporter.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AACpD,mDAAgD;AAChD,2CAAwC;AACxC,qDAAkD;AAClD,2CAAwC;AACxC,mCAAmC;AACnC,oCAAoC;AAEpC,yBAAyB;AACzB,6BAA6B;AAqB7B,MAAa,eAAgB,SAAQ,mBAAQ;IAG5C;QACC,KAAK,EAAE,CAAC;IACT,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAU,EAAE,OAAY;QAC1G,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAEzB,MAAM,aAAa,GAAkB;YACpC,OAAO,EAAE,WAAW;YACpB,eAAe,EAAE,cAAc;YAC/B,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,KAAK;YAClB,iBAAiB,EAAE,EAAE;YACrB,aAAa,EAAE,CAAC,iBAAO,CAAC,WAAW,KAAK,yBAAW,CAAC,MAAM,IAAI,iBAAO,CAAC,WAAW,KAAK,yBAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACpH,gBAAgB,EAAE,EAAE;YACpB,iBAAiB,EAAE,QAAQ;YAC3B,WAAW,EAAE,CAAC,4BAA4B,CAAC;YAC3C,0BAA0B,EAAE,KAAK;YACjC,QAAQ,EAAE,IAAI,KAAK,EAAU;YAC7B,eAAe,EAAE,IAAI;YACrB,eAAe,EAAE,IAAI;YACrB,qBAAqB,EAAE,IAAI;YAC3B,iBAAiB,EAAE,IAAI;YACvB,UAAU,EAAE,IAAI,KAAK,EAAU;SAC/B,CAAC;QAEF,IAAI,OAAO,CAAC,aAAa,IAAI,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,IAAI,EAAE;YAC3E,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC;YAClD,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE;gBAC5B,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,IAAI;oBAAE,SAAS;gBACvC,QAAQ,GAAG,EAAE;oBACZ,KAAK,iBAAiB,CAAC;oBACvB,KAAK,iBAAiB,CAAC;oBACvB,KAAK,uBAAuB,CAAC;oBAC7B,KAAK,mBAAmB;wBACvB,iCAAiC;wBACjC,MAAM,CAAC,GAAW,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBAC5D,aAAqB,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;wBACjD,MAAM;oBACP;wBACE,aAAqB,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;iBAChD;aACD;SACD;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,qBAAqB,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;QAEjD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACjF,IAAI,aAAa,CAAC,qBAAqB,EAAE;YACxC,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;SAC5F;aACI;YACJ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC;SAC1F;QACD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAAE,QAAQ,CAAC,2BAA2B,CAAC,CAAC,CAAC;QAChG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAC5E,IAAI,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,EAAE;YAC9B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,KAAK,CAAC,CAAC;SAClD;QACD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,CAAC,qBAAqB,CAAC,CAAC,CAAC;QACpF,IAAI,QAAQ,GAAG,QAAQ,CAAC,yBAAyB,CAAC,CAAC;QACnD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAAE,QAAQ,CAAC,CAAC;QAErE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAC5F,IAAI,aAAa,CAAC,iBAAiB,EAAE;YACpC,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,iBAAiB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;SACjG;aACI;YACJ,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,oBAAoB,CAAC,EAAE,QAAQ,CAAC,gCAAgC,CAAC,CAAC,CAAC;SAC7G;QAED,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;QAEpE,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;QAErE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAClD,oDAAoD;QAEpD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAE1D,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;QAEpD,IAAI,OAAO,GAAG,QAAQ,CAAC,qCAAqC,CAAC,CAAC;QAC9D,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACxD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC3E,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,EAAE,OAAO,CAAC,CAAC;QAEnG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QAEvD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;QACzD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,oBAAoB,CAAC,EAAE,UAAU,CAAC,2CAA2C,CAAC,CAAC,CAAC;QACxI,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,2BAA2B,CAAC,EAAE,QAAQ,CAAC,kDAAkD,CAAC,CAAC,CAAC;QAEpJ;;;;;;;;;;;mKAW2J;QAE3J,IAAI,aAAa,CAAC,eAAe,IAAI,IAAI,EAAE;YAC1C,MAAM,GAAG,GAAG,aAAa,CAAC,eAAe,CAAC;YAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,GAAG,wBAAwB,CAAC;YAC9D,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SAC5B;QAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;QACjK,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,cAAc,CAAC,OAAgB,EAAE,MAAc,EAAE,IAAY,EAAE,aAA4B,EAAE,QAAa;QACzG,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM;YAC9B,MAAM,IAAI,IAAI,GAAG,GAAG,CAAC;QACtB,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ;YAChC,QAAQ,IAAI,IAAI,GAAG,GAAG,CAAC;QAExB,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,aAAa,CAAC,eAAe,EAAE;YAClC,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;SAChE;aACI;YACJ,MAAM,GAAG,QAAQ,CAAC,0BAA0B,CAAC,CAAC;SAC9C;QACD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QAC7D,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChF,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;QACrE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,sBAAsB,EAAE,aAAa,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5F,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,aAAa,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,aAAa,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC1F,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACxC,KAAK,IAAI,IAAI,IAAI,aAAa,CAAC,UAAU,EAAE;gBAC1C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtB,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC;iBACxB;qBACI;oBACJ,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,IAAI,GAAG,GAAG,CAAC;iBACjC;aACD;YACD,IAAI,GAAG,8BAA8B,IAAI,KAAK,CAAC;SAC/C;aACI;YACJ,QAAQ,iBAAO,CAAC,YAAY,EAAE;gBAC7B,KAAK,2BAAY,CAAC,OAAO;oBAAE,IAAI,GAAG,EAAE,CAAC;oBAAC,MAAM;gBAC5C,KAAK,2BAAY,CAAC,IAAI;oBAAE,IAAI,GAAG,aAAa,CAAC;oBAAC,MAAM;gBACpD,KAAK,2BAAY,CAAC,IAAI;oBAAE,IAAI,GAAG,WAAW,CAAC;oBAAC,MAAM;gBAClD,KAAK,2BAAY,CAAC,GAAG;oBAAE,IAAI,GAAG,KAAK,CAAC;oBAAC,MAAM;gBAC3C,KAAK,2BAAY,CAAC,MAAM;oBAAE,IAAI,GAAG,QAAQ,CAAC;oBAAC,MAAM;gBACjD,OAAO,CAAC,CAAC,MAAM,uBAAuB,GAAG,iBAAO,CAAC,YAAY,CAAC;aAC9D;YACD,IAAI,iBAAO,CAAC,YAAY,KAAK,2BAAY,CAAC,OAAO,EAAE;gBAClD,IAAI,GAAG,8BAA8B,IAAI,KAAK,CAAC;aAC/C;SACD;QACD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;QACjD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAE7C,QAAQ,GAAG,sBAAsB,GAAG,QAAQ,CAAC;QAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YAC1B,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC;SACrD;QACD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAEjD,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,WAAW,EAAE,EAAE;YACtC,WAAW,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;SAClH;QACD,WAAW,IAAI,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,iBAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC;QAC/K,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAEvD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,eAAe,CAAC,OAAgB,EAAE,MAAc,EAAE,IAAY,EAAE,aAA4B,EAAE,QAAa;QAC1G,IAAI,KAAK,GAAG,QAAQ,CAAC,4BAA4B,CAAC,CAAC;QAEnD,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;gBACxD,YAAY,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;aAC7D;SACD;QACD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC;QAExD,IAAI,cAAc,GAAG,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;YACvC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;gBAC1D,cAAc,IAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;aAC/D;SACD;QACD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,oBAAoB,EAAE,cAAc,CAAC,CAAC;QAE5D,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE;YACzC,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;SAClE;QACD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QAE/C,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;mBACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAC5D,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAC/B,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;iBACrE;qBACI;oBACJ,KAAK,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;iBACtF;aACD;SACD;QACD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAEzC,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;YAClC,UAAU,IAAI,eAAe,GAAG,GAAG,GAAG,OAAO,GAAG,GAAG,GAAG,KAAK,CAAC;YAC5D,UAAU,IAAI,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC;SACvC;QACD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC;aAChD,OAAO,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;QAC7D,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC;YAAE,OAAO;QAC/C,EAAE,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,SAAiB,EAAE,KAAa;QAC3C,2DAA2D;QAC3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5C,OAAO,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,KAAK,CAAC;IACrD,CAAC;IAED,aAAa,CAAC,MAAc,EAAE,aAA4B,EAAE,QAAa;QACxE,IAAI,QAAQ,GAAG,QAAQ,CAAC,kCAAkC,CAAC,CAAC;QAC5D,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;QACjE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,oBAAoB,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;QACjF,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QACpF,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;QACzE,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,sBAAsB,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACrF,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,aAAa,CAAC,gBAAgB,CAAC,CAAC;QACnF,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,OAAO,qCAAqC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5J,IAAI,QAAQ,GAAG,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC,mFAAmF,CAAC,CAAC,CAAC,EAAE,CAAC;QACnJ,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,QAAQ,EAAE;YAC1C,QAAQ,IAAI,QAAQ,GAAG,IAAI,CAAC;SAC5B;QACD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACrD,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1D,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,QAAQ,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,MAAc,EAAE,IAAY,EAAE,EAAU;QACvE,MAAM,OAAO,GAAG,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC;QAClG,MAAM,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE;YACrC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;YACzE,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAC/I,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,uBAAuB,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;SACrJ;IACF,CAAC;CACD;AAtRD,0CAsRC"} \ No newline at end of file +{"version":3,"file":"AndroidExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/AndroidExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/kmake/Exporters/CLionExporter.js b/lib/kmake/Exporters/CLionExporter.js new file mode 100644 index 0000000000..8d66c12be9 --- /dev/null +++ b/lib/kmake/Exporters/CLionExporter.js @@ -0,0 +1,126 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CLionExporter = void 0; +const fs = require("kmake/fsextra"); +const path = require("path"); +const Exporter_1 = require("./Exporter"); +class CLionExporter extends Exporter_1.Exporter { + constructor() { + super(); + } + async exportSolution(project, from, to, platform, vrApi, options) { + let name = project.getSafeName(); + const indir = path.join(__dirname, '..', '..', 'Data', 'linux'); + fs.ensureDirSync(path.resolve(to, name, '.idea')); + let misc = require('fs').getEmbeddedData()['linux_idea_misc_xml']; + misc = misc.replace(/{root}/g, path.resolve(from)); + fs.writeFileSync(path.join(to, name, '.idea', 'misc.xml'), misc, 'utf8'); + let workspace = require('fs').getEmbeddedData()['linux_idea_workspace_xml']; + workspace = workspace.replace(/{workingdir}/g, path.resolve(project.getDebugDir())); + workspace = workspace.replace(/{project}/g, name); + workspace = workspace.replace(/{target}/g, name); + fs.writeFileSync(path.join(to, name, '.idea', 'workspace.xml'), workspace, 'utf8'); + this.writeFile(path.resolve(to, name, 'CMakeLists.txt')); + this.p('cmake_minimum_required(VERSION 3.10)'); // should be 3.12 to support c++20, 3.20 to support c++23 and 3.21 to support c17/c23 + this.p('project(' + name + ')'); + switch (project.cppStd) { + case 'gnu++03': + case 'c++03': + this.p('set(CMAKE_CXX_STANDARD 03)'); + break; + case 'gnu++11': + case 'c++11': + this.p('set(CMAKE_CXX_STANDARD 11)'); + break; + case 'gnu++14': + case 'c++14': + this.p('set(CMAKE_CXX_STANDARD 14)'); + break; + case 'gnu++17': + case 'c++17': + this.p('set(CMAKE_CXX_STANDARD 17)'); + break; + case 'gnu++2a': + case 'c++2a': + case 'gnu++20': + case 'c++20': + this.p('set(CMAKE_CXX_STANDARD 20)'); + break; + case 'gnu++2b': + case 'c++2b': + case 'gnu++23': + case 'c++23': + this.p('set(CMAKE_CXX_STANDARD 23)'); + break; + default: + this.p('set(CMAKE_CXX_STANDARD 98)'); + break; + } + switch (project.cStd) { + case 'gnu9x': + case 'gnu99': + case 'c9x': + case 'c99': + this.p('set(CMAKE_C_STANDARD 99)'); + break; + case 'gnu1x': + case 'gnu11': + case 'c1x': + case 'c11': + this.p('set(CMAKE_C_STANDARD 11)'); + break; + case 'gnu18': + case 'gnu17': + case 'c18': + case 'c17': + this.p('set(CMAKE_C_STANDARD 17)'); + break; + case 'gnu2x': + case 'c2x': + this.p('set(CMAKE_C_STANDARD 23)'); + break; + default: + this.p('set(CMAKE_C_STANDARD 90)'); + break; + } + this.p('set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -static-libgcc -static-libstdc++")'); + let debugDefines = ''; + for (const def of project.getDefines()) { + if (!def.config || def.config.toLowerCase() === 'debug') { + debugDefines += ' -D' + def.value; + } + } + this.p('set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}' + debugDefines + '")'); + this.p('set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}' + debugDefines + '")'); + let releaseDefines = ''; + for (const def of project.getDefines()) { + if (!def.config || def.config.toLowerCase() === 'release') { + releaseDefines += ' -D' + def.value; + } + } + releaseDefines += ' -DNDEBUG'; + this.p('set(CMAKE_C_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}' + releaseDefines + '")'); + this.p('set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}' + releaseDefines + '")'); + let includes = ''; + for (let inc of project.getIncludeDirs()) { + includes += ' "' + path.resolve(inc).replace(/\\/g, '/') + '"\n'; + } + this.p('include_directories(\n' + includes + ')'); + let files = ''; + for (let file of project.getFiles()) { + if (file.file.endsWith('.c') || file.file.endsWith('.cc') || file.file.endsWith('.cpp') || file.file.endsWith('.h')) { + files += ' "' + path.resolve(file.file).replace(/\\/g, '/') + '"\n'; + } + } + this.p('set(SOURCE_FILES\n' + files + ')'); + this.p('add_executable(' + name + ' ${SOURCE_FILES})'); + let libraries = ''; + for (let lib of project.getLibs()) { + libraries += ' ' + lib + '\n'; + } + this.p('target_link_libraries(' + name + '\n' + libraries + ')'); + this.closeFile(); + } +} +exports.CLionExporter = CLionExporter; +//# sourceMappingURL=CLionExporter.js.map \ No newline at end of file diff --git a/lib/kmake/Exporters/CLionExporter.js.map b/lib/kmake/Exporters/CLionExporter.js.map new file mode 100644 index 0000000000..a0c82e5eaa --- /dev/null +++ b/lib/kmake/Exporters/CLionExporter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CLionExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/CLionExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/kmake/Exporters/CompileCommandsExporter.js b/lib/kmake/Exporters/CompileCommandsExporter.js new file mode 100644 index 0000000000..5bb443092a --- /dev/null +++ b/lib/kmake/Exporters/CompileCommandsExporter.js @@ -0,0 +1,148 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.CompilerCommandsExporter = void 0; +const fs = require("kmake/fsextra"); +const path = require("path"); +const Platform_1 = require("kmake/Platform"); +const log = require("kmake/log"); +const os = require("os"); +const child_process = require("child_process"); +const Exporter_1 = require("./Exporter"); +class CompilerCommandsExporter extends Exporter_1.Exporter { + constructor() { + super(); + } + async exportSolution(project, _from, to, platform, vrApi, options) { + var _a; + let from = path.resolve(process.cwd(), _from); + this.writeFile(path.resolve(to, 'compile_commands.json')); + let includes = []; + for (let inc of project.getIncludeDirs()) { + includes.push('-I'); + includes.push(path.resolve(from, inc)); + } + let defines = []; + for (let def of project.getDefines()) { + defines.push('-D'); + defines.push(def.value.replace(/\"/g, '\\"')); + } + let objects = {}; + let ofiles = {}; + for (let fileobject of project.getFiles()) { + let file = fileobject.file; + if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { + let name = file.toLowerCase(); + if (name.indexOf('/') >= 0) + name = name.substr(name.lastIndexOf('/') + 1); + name = name.substr(0, name.lastIndexOf('.')); + if (!objects[name]) { + objects[name] = true; + ofiles[file] = name; + } + else { + while (objects[name]) { + name = name + '_'; + } + objects[name] = true; + ofiles[file] = name; + } + } + } + let defaultArgs = []; + // TODO: same for MacOS, Windows, etc... + if (platform === Platform_1.Platform.Android) { + defaultArgs.push('--target=aarch64-none-linux-android21'); + defaultArgs.push('-DANDROID'); + // take a guess at where the ndk could be + function ndkFromSdkRoot() { + var _a; + let sdkEnv = (_a = process.env['ANDROID_HOME']) !== null && _a !== void 0 ? _a : process.env['ANDROID_SDK_ROOT']; + if (!sdkEnv) + return null; + let ndk_dir = path.join(sdkEnv, 'ndk'); + if (!fs.existsSync(ndk_dir)) { + return null; + } + let ndks = fs.readdirSync(ndk_dir); + ndks = ndks.filter(item => !item.startsWith(".")); + if (ndks.length < 1) { + return null; + } + return path.join(ndk_dir, ndks[0]); + } + let android_ndk = (_a = process.env['ANDROID_NDK']) !== null && _a !== void 0 ? _a : ndkFromSdkRoot(); + if (android_ndk) { + let host_tag = ''; + switch (os.platform()) { + // known host tags + // TODO: figure out the host tag for aarch64 darwin/linux/windows + case 'linux': + host_tag = 'linux-x86_64'; + break; + case 'darwin': + host_tag = 'darwin-x86_64'; + break; + case 'win32': + host_tag = 'windows-x86_64'; + break; + } + let ndk_toolchain = path.join(android_ndk, `toolchains/llvm/prebuilt/${host_tag}`); + if (host_tag !== '' && fs.existsSync(ndk_toolchain)) { + defaultArgs.push(`--gcc-toolchain=${ndk_toolchain}`); + defaultArgs.push(`--sysroot=${ndk_toolchain}/sysroot`); + } + else { + // fallback to the first found toolchain + let toolchains = fs.readdirSync(path.join(android_ndk, `toolchains/llvm/prebuilt/`)); + if (toolchains.length > 0) { + let host_tag = toolchains[0]; + let ndk_toolchain = path.join(android_ndk, `toolchains/llvm/prebuilt/${host_tag}`); + defaultArgs.push(`--gcc-toolchain=${ndk_toolchain}`); + defaultArgs.push(`--sysroot=${ndk_toolchain}/sysroot`); + log.info(`Found android ndk toolchain in ${ndk_toolchain}.`); + } + else { + log.error('Platform is set to Android, but android toolchain not found.'); + } + } + } + else { + log.error('Platform is set to Android, but android toolchain not found.\nPlease set the ANDROID_NDK environment variable if you need a compile_commands.json for your IDE.'); + } + } + else if (platform === Platform_1.Platform.Emscripten) { + let emcc = child_process.spawnSync('emcc', ['--cflags']); + // log.info(emcc.status); + if (emcc.status === 0) { + let flags = emcc.output.toString().split(' '); + defaultArgs.push(...flags); + } + else { + log.error('Platform is set to Emscripten, but emcc could not be found. Please add it to your PATH environment variable if you need a compile_commands.json for your IDE.'); + } + } + let commands = []; + for (let fileobject of project.getFiles()) { + let file = fileobject.file; + if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc')) { + let args = ['/usr/bin/clang', '-c', '-o', (options.debug ? 'Debug' : 'Release') + ofiles[file] + '.o']; + if (file.endsWith('.c')) { + args.push('-std=c99'); + } + args.push(...defaultArgs); + args.push(path.resolve(from, file)); + let command = { + directory: from, + file: path.resolve(from, file), + output: path.resolve(to, ofiles[file] + '.o'), + arguments: args.concat(includes).concat(defines) + }; + commands.push(command); + } + } + this.p(JSON.stringify(commands)); + this.closeFile(); + } +} +exports.CompilerCommandsExporter = CompilerCommandsExporter; +//# sourceMappingURL=CompileCommandsExporter.js.map \ No newline at end of file diff --git a/lib/kmake/Exporters/CompileCommandsExporter.js.map b/lib/kmake/Exporters/CompileCommandsExporter.js.map new file mode 100644 index 0000000000..56eca22840 --- /dev/null +++ b/lib/kmake/Exporters/CompileCommandsExporter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"CompileCommandsExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/CompileCommandsExporter.ts"],"names":[],"mappings":";;;AACA,oCAAoC;AACpC,6BAA6B;AAC7B,6CAA0C;AAC1C,iCAAiC;AACjC,yBAAyB;AACzB,+CAA+C;AAC/C,yCAAsC;AAEtC,MAAa,wBAAyB,SAAQ,mBAAQ;IACrD;QACC,KAAK,EAAE,CAAC;IACT,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,KAAa,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAU,EAAE,OAAY;;QAC3G,IAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QAE9C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAC1D,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE;YACzC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;SACvC;QAED,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;YACrC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;SAC9C;QAED,IAAI,OAAO,GAAQ,EAAE,CAAC;QACtB,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,KAAK,IAAI,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YAC1C,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvH,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1E,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACnB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;iBACpB;qBACI;oBACJ,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE;wBACrB,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;qBAClB;oBACD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;iBACpB;aACD;SACD;QAED,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,wCAAwC;QACxC,IAAI,QAAQ,KAAK,mBAAQ,CAAC,OAAO,EAAE;YAClC,WAAW,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAC1D,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE9B,yCAAyC;YAEzC,SAAS,cAAc;;gBACtB,IAAI,MAAM,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,mCAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAC5E,IAAI,CAAC,MAAM;oBAAE,OAAO,IAAI,CAAC;gBACzB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;oBAC5B,OAAO,IAAI,CAAC;iBACZ;gBACD,IAAI,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClD,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACpB,OAAO,IAAI,CAAC;iBACZ;gBACD,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,WAAW,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,mCAAI,cAAc,EAAE,CAAC;YAEjE,IAAI,WAAW,EAAE;gBAChB,IAAI,QAAQ,GAAG,EAAE,CAAC;gBAClB,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE;oBACtB,kBAAkB;oBAClB,iEAAiE;oBACjE,KAAK,OAAO;wBACX,QAAQ,GAAG,cAAc,CAAC;wBAC1B,MAAM;oBACP,KAAK,QAAQ;wBACZ,QAAQ,GAAG,eAAe,CAAC;wBAC3B,MAAM;oBACP,KAAK,OAAO;wBACX,QAAQ,GAAG,gBAAgB,CAAC;wBAC5B,MAAM;iBACP;gBACD,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,4BAA4B,QAAQ,EAAE,CAAC,CAAC;gBACnF,IAAI,QAAQ,KAAK,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;oBACpD,WAAW,CAAC,IAAI,CAAC,mBAAmB,aAAa,EAAE,CAAC,CAAC;oBACrD,WAAW,CAAC,IAAI,CAAC,aAAa,aAAa,UAAU,CAAC,CAAC;iBACvD;qBACI;oBACJ,wCAAwC;oBACxC,IAAI,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,2BAA2B,CAAC,CAAC,CAAC;oBACrF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1B,IAAI,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;wBAC7B,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,4BAA4B,QAAQ,EAAE,CAAC,CAAC;wBACnF,WAAW,CAAC,IAAI,CAAC,mBAAmB,aAAa,EAAE,CAAC,CAAC;wBACrD,WAAW,CAAC,IAAI,CAAC,aAAa,aAAa,UAAU,CAAC,CAAC;wBACvD,GAAG,CAAC,IAAI,CAAC,kCAAkC,aAAa,GAAG,CAAC,CAAC;qBAC7D;yBACI;wBACJ,GAAG,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC;qBAC1E;iBACD;aACD;iBACI;gBACJ,GAAG,CAAC,KAAK,CAAC,iKAAiK,CAAC,CAAC;aAC7K;SACD;aACI,IAAI,QAAQ,KAAK,mBAAQ,CAAC,UAAU,EAAE;YAC1C,IAAI,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;YACzD,yBAAyB;YACzB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE;gBACtB,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC9C,WAAW,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;aAC3B;iBACI;gBACJ,GAAG,CAAC,KAAK,CAAC,+JAA+J,CAAC,CAAC;aAC3K;SACD;QAED,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,KAAK,IAAI,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YAC1C,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;gBACzE,IAAI,IAAI,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBACvG,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACxB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBACtB;gBACD,IAAI,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;gBAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACpC,IAAI,OAAO,GAAG;oBACb,SAAS,EAAE,IAAI;oBACf,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9B,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBAC7C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;iBAChD,CAAC;gBACF,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACvB;SACD;QAED,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;CACD;AA/ID,4DA+IC"} \ No newline at end of file diff --git a/lib/kmake/Exporters/EmscriptenExporter.js b/lib/kmake/Exporters/EmscriptenExporter.js index b184d7cbe8..0d6cdaf027 100644 --- a/lib/kmake/Exporters/EmscriptenExporter.js +++ b/lib/kmake/Exporters/EmscriptenExporter.js @@ -6,9 +6,11 @@ const Options_1 = require("kmake/Options"); const GraphicsApi_1 = require("kmake/GraphicsApi"); const fs = require("kmake/fsextra"); const path = require("path"); +const CompileCommandsExporter_1 = require("./CompileCommandsExporter"); class EmscriptenExporter extends Exporter_1.Exporter { constructor() { super(); + this.compileCommands = new CompileCommandsExporter_1.CompilerCommandsExporter(); } exportMakefile(project, from, to, platform, vrApi, options) { const cCompiler = 'emcc'; @@ -197,7 +199,7 @@ class EmscriptenExporter extends Exporter_1.Exporter { } async exportSolution(project, from, to, platform, vrApi, options) { this.exportMakefile(project, from, to, platform, vrApi, options); - this.exportCompileCommands(project, from, to, platform, vrApi, options); + this.compileCommands.exportSolution(project, from, to, platform, vrApi, options); } } exports.EmscriptenExporter = EmscriptenExporter; diff --git a/lib/kmake/Exporters/EmscriptenExporter.js.map b/lib/kmake/Exporters/EmscriptenExporter.js.map index 2c65979279..2a6e0fb2b3 100644 --- a/lib/kmake/Exporters/EmscriptenExporter.js.map +++ b/lib/kmake/Exporters/EmscriptenExporter.js.map @@ -1 +1 @@ -{"version":3,"file":"EmscriptenExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/EmscriptenExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"EmscriptenExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/EmscriptenExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/kmake/Exporters/Exporter.js b/lib/kmake/Exporters/Exporter.js index 589bcc0022..3f96c9accf 100644 --- a/lib/kmake/Exporters/Exporter.js +++ b/lib/kmake/Exporters/Exporter.js @@ -3,10 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Exporter = void 0; const fs = require("kmake/fsextra"); const path = require("path"); -const Platform_1 = require("kmake/Platform"); const log = require("kmake/log"); -const os = require("os"); -const child_process = require("child_process"); var WriteMode; (function (WriteMode) { WriteMode[WriteMode["None"] = 0] = "None"; @@ -68,250 +65,6 @@ class Exporter { reject('Called an abstract function'); }); } - exportCLion(project, from, to, platform, vrApi, options) { - let name = project.getSafeName(); - const indir = path.join(__dirname, '..', '..', 'Data', 'linux'); - fs.ensureDirSync(path.resolve(to, name, '.idea')); - let misc = require('fs').getEmbeddedData()['linux_idea_misc_xml']; - misc = misc.replace(/{root}/g, path.resolve(from)); - fs.writeFileSync(path.join(to, name, '.idea', 'misc.xml'), misc, 'utf8'); - let workspace = require('fs').getEmbeddedData()['linux_idea_workspace_xml']; - workspace = workspace.replace(/{workingdir}/g, path.resolve(project.getDebugDir())); - workspace = workspace.replace(/{project}/g, name); - workspace = workspace.replace(/{target}/g, name); - fs.writeFileSync(path.join(to, name, '.idea', 'workspace.xml'), workspace, 'utf8'); - this.writeFile(path.resolve(to, name, 'CMakeLists.txt')); - this.p('cmake_minimum_required(VERSION 3.10)'); // should be 3.12 to support c++20, 3.20 to support c++23 and 3.21 to support c17/c23 - this.p('project(' + name + ')'); - switch (project.cppStd) { - case 'gnu++03': - case 'c++03': - this.p('set(CMAKE_CXX_STANDARD 03)'); - break; - case 'gnu++11': - case 'c++11': - this.p('set(CMAKE_CXX_STANDARD 11)'); - break; - case 'gnu++14': - case 'c++14': - this.p('set(CMAKE_CXX_STANDARD 14)'); - break; - case 'gnu++17': - case 'c++17': - this.p('set(CMAKE_CXX_STANDARD 17)'); - break; - case 'gnu++2a': - case 'c++2a': - case 'gnu++20': - case 'c++20': - this.p('set(CMAKE_CXX_STANDARD 20)'); - break; - case 'gnu++2b': - case 'c++2b': - case 'gnu++23': - case 'c++23': - this.p('set(CMAKE_CXX_STANDARD 23)'); - break; - default: - this.p('set(CMAKE_CXX_STANDARD 98)'); - break; - } - switch (project.cStd) { - case 'gnu9x': - case 'gnu99': - case 'c9x': - case 'c99': - this.p('set(CMAKE_C_STANDARD 99)'); - break; - case 'gnu1x': - case 'gnu11': - case 'c1x': - case 'c11': - this.p('set(CMAKE_C_STANDARD 11)'); - break; - case 'gnu18': - case 'gnu17': - case 'c18': - case 'c17': - this.p('set(CMAKE_C_STANDARD 17)'); - break; - case 'gnu2x': - case 'c2x': - this.p('set(CMAKE_C_STANDARD 23)'); - break; - default: - this.p('set(CMAKE_C_STANDARD 90)'); - break; - } - this.p('set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -static-libgcc -static-libstdc++")'); - let debugDefines = ''; - for (const def of project.getDefines()) { - if (!def.config || def.config.toLowerCase() === 'debug') { - debugDefines += ' -D' + def.value; - } - } - this.p('set(CMAKE_C_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}' + debugDefines + '")'); - this.p('set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}' + debugDefines + '")'); - let releaseDefines = ''; - for (const def of project.getDefines()) { - if (!def.config || def.config.toLowerCase() === 'release') { - releaseDefines += ' -D' + def.value; - } - } - releaseDefines += ' -DNDEBUG'; - this.p('set(CMAKE_C_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}' + releaseDefines + '")'); - this.p('set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}' + releaseDefines + '")'); - let includes = ''; - for (let inc of project.getIncludeDirs()) { - includes += ' "' + path.resolve(inc).replace(/\\/g, '/') + '"\n'; - } - this.p('include_directories(\n' + includes + ')'); - let files = ''; - for (let file of project.getFiles()) { - if (file.file.endsWith('.c') || file.file.endsWith('.cc') || file.file.endsWith('.cpp') || file.file.endsWith('.h')) { - files += ' "' + path.resolve(file.file).replace(/\\/g, '/') + '"\n'; - } - } - this.p('set(SOURCE_FILES\n' + files + ')'); - this.p('add_executable(' + name + ' ${SOURCE_FILES})'); - let libraries = ''; - for (let lib of project.getLibs()) { - libraries += ' ' + lib + '\n'; - } - this.p('target_link_libraries(' + name + '\n' + libraries + ')'); - this.closeFile(); - } - exportCompileCommands(project, _from, to, platform, vrApi, options) { - var _a; - let from = path.resolve(process.cwd(), _from); - this.writeFile(path.resolve(to, 'compile_commands.json')); - let includes = []; - for (let inc of project.getIncludeDirs()) { - includes.push('-I'); - includes.push(path.resolve(from, inc)); - } - let defines = []; - for (let def of project.getDefines()) { - defines.push('-D'); - defines.push(def.value.replace(/\"/g, '\\"')); - } - let objects = {}; - let ofiles = {}; - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - let name = file.toLowerCase(); - if (name.indexOf('/') >= 0) - name = name.substr(name.lastIndexOf('/') + 1); - name = name.substr(0, name.lastIndexOf('.')); - if (!objects[name]) { - objects[name] = true; - ofiles[file] = name; - } - else { - while (objects[name]) { - name = name + '_'; - } - objects[name] = true; - ofiles[file] = name; - } - } - } - let defaultArgs = []; - // TODO: same for MacOS, Windows, etc... - if (platform === Platform_1.Platform.Android) { - defaultArgs.push('--target=aarch64-none-linux-android21'); - defaultArgs.push('-DANDROID'); - // take a guess at where the ndk could be - function ndkFromSdkRoot() { - var _a; - let sdkEnv = (_a = process.env['ANDROID_HOME']) !== null && _a !== void 0 ? _a : process.env['ANDROID_SDK_ROOT']; - if (!sdkEnv) - return null; - let ndk_dir = path.join(sdkEnv, 'ndk'); - if (!fs.existsSync(ndk_dir)) { - return null; - } - let ndks = fs.readdirSync(ndk_dir); - ndks = ndks.filter(item => !item.startsWith(".")); - if (ndks.length < 1) { - return null; - } - return path.join(ndk_dir, ndks[0]); - } - let android_ndk = (_a = process.env['ANDROID_NDK']) !== null && _a !== void 0 ? _a : ndkFromSdkRoot(); - if (android_ndk) { - let host_tag = ''; - switch (os.platform()) { - // known host tags - // TODO: figure out the host tag for aarch64 darwin/linux/windows - case 'linux': - host_tag = 'linux-x86_64'; - break; - case 'darwin': - host_tag = 'darwin-x86_64'; - break; - case 'win32': - host_tag = 'windows-x86_64'; - break; - } - let ndk_toolchain = path.join(android_ndk, `toolchains/llvm/prebuilt/${host_tag}`); - if (host_tag !== '' && fs.existsSync(ndk_toolchain)) { - defaultArgs.push(`--gcc-toolchain=${ndk_toolchain}`); - defaultArgs.push(`--sysroot=${ndk_toolchain}/sysroot`); - } - else { - // fallback to the first found toolchain - let toolchains = fs.readdirSync(path.join(android_ndk, `toolchains/llvm/prebuilt/`)); - if (toolchains.length > 0) { - let host_tag = toolchains[0]; - let ndk_toolchain = path.join(android_ndk, `toolchains/llvm/prebuilt/${host_tag}`); - defaultArgs.push(`--gcc-toolchain=${ndk_toolchain}`); - defaultArgs.push(`--sysroot=${ndk_toolchain}/sysroot`); - log.info(`Found android ndk toolchain in ${ndk_toolchain}.`); - } - else { - log.error('Platform is set to Android, but android toolchain not found.'); - } - } - } - else { - log.error('Platform is set to Android, but android toolchain not found.\nPlease set the ANDROID_NDK environment variable if you need a compile_commands.json for your IDE.'); - } - } - else if (platform === Platform_1.Platform.Emscripten) { - let emcc = child_process.spawnSync('emcc', ['--cflags']); - // log.info(emcc.status); - if (emcc.status === 0) { - let flags = emcc.output.toString().split(' '); - defaultArgs.push(...flags); - } - else { - log.error('Platform is set to Emscripten, but emcc could not be found. Please add it to your PATH environment variable if you need a compile_commands.json for your IDE.'); - } - } - let commands = []; - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc')) { - let args = ['/usr/bin/clang', '-c', '-o', (options.debug ? 'Debug' : 'Release') + ofiles[file] + '.o']; - if (file.endsWith('.c')) { - args.push('-std=c99'); - } - args.push(...defaultArgs); - args.push(path.resolve(from, file)); - let command = { - directory: from, - file: path.resolve(from, file), - output: path.resolve(to, ofiles[file] + '.o'), - arguments: args.concat(includes).concat(defines) - }; - commands.push(command); - } - } - this.p(JSON.stringify(commands)); - this.closeFile(); - } } exports.Exporter = Exporter; //# sourceMappingURL=Exporter.js.map \ No newline at end of file diff --git a/lib/kmake/Exporters/Exporter.js.map b/lib/kmake/Exporters/Exporter.js.map index b1af8909cb..f72135287d 100644 --- a/lib/kmake/Exporters/Exporter.js.map +++ b/lib/kmake/Exporters/Exporter.js.map @@ -1 +1 @@ -{"version":3,"file":"Exporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/Exporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Exporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/Exporter.ts"],"names":[],"mappings":";;;AACA,oCAAoC;AACpC,6BAA6B;AAC7B,iCAAiC;AAEjC,IAAK,SAIJ;AAJD,WAAK,SAAS;IACb,yCAAI,CAAA;IACJ,yCAAI,CAAA;IACJ,6CAAM,CAAA;AACP,CAAC,EAJI,SAAS,KAAT,SAAS,QAIb;AAED,MAAsB,QAAQ;IAK7B;QAJA,cAAS,GAAc,SAAS,CAAC,IAAI,CAAC;QACtC,YAAO,GAAW,CAAC,CAAC;QACpB,cAAS,GAAW,IAAI,CAAC;IAIzB,CAAC;IAED,SAAS,CAAC,IAAY;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,WAAW;QACV,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,SAAS;QACR,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,WAAW;QACV,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,CAAC,CAAC,OAAe,EAAE,EAAE,SAAiB,CAAC;QACtC,IAAI,IAAI,GAAG,EAAE,CAAC;QACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,EAAE,CAAC,EAAE;YAChC,IAAI,IAAI,IAAI,CAAC;SACb;QAED,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,MAAM,EAAE;YACxC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;SACtB;aACI,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,IAAI,EAAE;YAC3C,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;YAC3C,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;SACvD;aACI;YACJ,MAAM,oCAAoC,CAAC;SAC3C;IACF,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,EAAU,EAAE,QAAgB;QAClD,IAAI,QAAQ,GAAG,QAAQ,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;YAC/B,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACxC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAU,EAAE,OAAY;QAC1G,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5C,MAAM,CAAC,6BAA6B,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAjED,4BAiEC"} \ No newline at end of file diff --git a/lib/kmake/Exporters/FreeBSDExporter.js b/lib/kmake/Exporters/FreeBSDExporter.js index 4741aa0cb4..c9404aca7c 100644 --- a/lib/kmake/Exporters/FreeBSDExporter.js +++ b/lib/kmake/Exporters/FreeBSDExporter.js @@ -7,14 +7,16 @@ const Platform_1 = require("kmake/Platform"); const Compiler_1 = require("kmake/Compiler"); const fs = require("kmake/fsextra"); const path = require("path"); +const CLionExporter_1 = require("./CLionExporter"); class FreeBSDExporter extends Exporter_1.Exporter { constructor() { super(); + this.clion = new CLionExporter_1.CLionExporter(); } async exportSolution(project, from, to, platform, vrApi, options) { this.exportMakefile(project, from, to, platform, vrApi, options); this.exportCodeBlocks(project, from, to, platform, vrApi, options); - this.exportCLion(project, from, to, platform, vrApi, options); + this.clion.exportSolution(project, from, to, platform, vrApi, options); this.exportCompileCommands(project, from, to, platform, vrApi, options); } exportMakefile(project, from, to, platform, vrApi, options) { diff --git a/lib/kmake/Exporters/FreeBSDExporter.js.map b/lib/kmake/Exporters/FreeBSDExporter.js.map index f50ed09a06..63ab3318e1 100644 --- a/lib/kmake/Exporters/FreeBSDExporter.js.map +++ b/lib/kmake/Exporters/FreeBSDExporter.js.map @@ -1 +1 @@ -{"version":3,"file":"FreeBSDExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/FreeBSDExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"FreeBSDExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/FreeBSDExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/kmake/Exporters/LinuxExporter.js b/lib/kmake/Exporters/LinuxExporter.js index b73384f49b..e21ad698fb 100644 --- a/lib/kmake/Exporters/LinuxExporter.js +++ b/lib/kmake/Exporters/LinuxExporter.js @@ -7,16 +7,28 @@ const Platform_1 = require("kmake/Platform"); const Compiler_1 = require("kmake/Compiler"); const fs = require("kmake/fsextra"); const path = require("path"); +const NinjaExporter_1 = require("./NinjaExporter"); +const MakeExporter_1 = require("./MakeExporter"); +const CLionExporter_1 = require("./CLionExporter"); +const CompileCommandsExporter_1 = require("./CompileCommandsExporter"); class LinuxExporter extends Exporter_1.Exporter { constructor() { super(); + let linkerParams = '-static-libgcc -static-libstdc++ -pthread'; + if (Options_1.Options.compiler === Compiler_1.Compiler.MuslGcc || this.getOS().includes('Alpine')) { + linkerParams += ' -static'; + } + this.ninja = new NinjaExporter_1.NinjaExporter(this.getCCompiler(), this.getCPPCompiler(), linkerParams); + this.make = new MakeExporter_1.MakeExporter(this.getCCompiler(), this.getCPPCompiler(), linkerParams); + this.clion = new CLionExporter_1.CLionExporter(); + this.compileCommands = new CompileCommandsExporter_1.CompilerCommandsExporter(); } async exportSolution(project, from, to, platform, vrApi, options) { - this.exportNinjaFile(project, from, to, platform, vrApi, options); - this.exportMakefile(project, from, to, platform, vrApi, options); + this.ninja.exportSolution(project, from, to, platform, vrApi, options); + this.make.exportSolution(project, from, to, platform, vrApi, options); this.exportCodeBlocks(project, from, to, platform, vrApi, options); - this.exportCLion(project, from, to, platform, vrApi, options); - this.exportCompileCommands(project, from, to, platform, vrApi, options); + this.clion.exportSolution(project, from, to, platform, vrApi, options); + this.compileCommands.exportSolution(project, from, to, platform, vrApi, options); } getCCompiler() { switch (Options_1.Options.compiler) { @@ -71,317 +83,6 @@ class LinuxExporter extends Exporter_1.Exporter { return 'Unknown'; } } - exportNinjaFile(project, from, to, platform, vrApi, options) { - const cCompiler = this.getCCompiler(); - const cppCompiler = this.getCPPCompiler(); - const os = this.getOS(); - let objects = {}; - let ofiles = {}; - let outputPath = path.resolve(to, options.buildPath); - fs.ensureDirSync(outputPath); - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - let name = file.toLowerCase(); - if (name.indexOf('/') >= 0) - name = name.substr(name.lastIndexOf('/') + 1); - name = name.substr(0, name.lastIndexOf('.')); - if (!objects[name]) { - objects[name] = true; - ofiles[file] = name; - } - else { - while (objects[name]) { - name = name + '_'; - } - objects[name] = true; - ofiles[file] = name; - } - } - } - let ofilelist = ''; - for (let o in objects) { - ofilelist += o + '.o '; - } - this.writeFile(path.resolve(outputPath, 'build.ninja')); - this.p('pool link_pool\n depth = 1\n'); - let incline = ''; - for (let inc of project.getIncludeDirs()) { - inc = path.relative(outputPath, path.resolve(from, inc)); - incline += '-I' + inc + ' '; - } - let libsline = '-static-libgcc -static-libstdc++ -pthread'; - if (Options_1.Options.compiler === Compiler_1.Compiler.MuslGcc || os.includes('Alpine')) { - libsline += ' -static'; - } - for (let lib of project.getLibs()) { - libsline += ' -l' + lib; - } - libsline += ' '; - let defline = ''; - for (const def of project.getDefines()) { - if (def.config && def.config.toLowerCase() === 'debug' && !options.debug) { - continue; - } - if (def.config && def.config.toLowerCase() === 'release' && options.debug) { - continue; - } - defline += '-D' + def.value.replace(/\"/g, '\\"') + ' '; - } - if (!options.debug) { - defline += '-DNDEBUG '; - } - let optimization = ''; - if (!options.debug) { - optimization = '-O2'; - } - else - optimization = '-g'; - let cline = cCompiler + ' '; - if (project.cStd !== '') { - cline += '-std=' + project.cStd + ' '; - } - if (options.dynlib) { - cline += '-fPIC '; - } - for (let flag of project.cFlags) { - cline += flag + ' '; - } - cline += optimization + ' '; - cline += incline; - cline += defline; - this.p('rule cc\n deps = gcc\n depfile = $out.d\n command = ' + cline + '-MD -MF $out.d -c $in -o $out\n'); - let cppline = cppCompiler + ' '; - if (project.cppStd !== '') { - cppline += '-std=' + project.cppStd + ' '; - } - if (options.dynlib) { - cppline += '-fPIC '; - } - for (let flag of project.cppFlags) { - cppline += flag + ' '; - } - cppline += optimization + ' '; - cppline += incline; - cppline += defline; - this.p('rule cxx\n deps = gcc\n depfile = $out.d\n command = ' + cppline + '-MD -MF $out.d -c $in -o $out\n'); - if (options.dynlib) { - this.p('rule link\n pool = link_pool\n command = ' + this.getCPPCompiler() + ' -fPIC -shared -o $out ' + optimization + ' $in ' + libsline); - } - else if (options.lib) { - this.p('rule link\n pool = link_pool\n command = ar rcs -o $out $in'); - } - else { - this.p('rule link\n pool = link_pool\n command = ' + this.getCPPCompiler() + ' -o $out ' + optimization + ' $in ' + libsline); - } - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - this.p(); - let name = ofiles[file]; - let realfile = path.relative(outputPath, path.resolve(from, file)); - let compiler = 'cxx'; - if (file.endsWith('.c')) { - compiler = 'cc'; - } - else if (file.endsWith('.s') || file.endsWith('.S')) { - compiler = 'asm'; - } - this.p('build ' + name + '.o: ' + compiler + ' ' + realfile); - } - } - this.p(); - let executableName = project.getSafeName(); - if (project.getExecutableName()) { - executableName = project.getExecutableName(); - } - let outputname = executableName; - if (options.lib) { - outputname = executableName + '.a'; - } - else if (options.dynlib) { - outputname = executableName + '.so'; - } - this.p('build ' + outputname + ': link ' + ofilelist); - this.closeFile(); - } - exportMakefile(project, from, to, platform, vrApi, options) { - const cCompiler = this.getCCompiler(); - const cppCompiler = this.getCPPCompiler(); - const os = this.getOS(); - let objects = {}; - let ofiles = {}; - let outputPath = path.resolve(to, options.buildPath); - fs.ensureDirSync(outputPath); - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - let name = file.toLowerCase(); - if (name.indexOf('/') >= 0) - name = name.substr(name.lastIndexOf('/') + 1); - name = name.substr(0, name.lastIndexOf('.')); - if (!objects[name]) { - objects[name] = true; - ofiles[file] = name; - } - else { - while (objects[name]) { - name = name + '_'; - } - objects[name] = true; - ofiles[file] = name; - } - } - } - let gchfilelist = ''; - let precompiledHeaders = []; - for (let file of project.getFiles()) { - if (file.options && file.options.pch && precompiledHeaders.indexOf(file.options.pch) < 0) { - precompiledHeaders.push(file.options.pch); - } - } - for (let file of project.getFiles()) { - let precompiledHeader = null; - for (let header of precompiledHeaders) { - if (file.file.endsWith(header)) { - precompiledHeader = header; - break; - } - } - if (precompiledHeader !== null) { - // let realfile = path.relative(outputPath, path.resolve(from, file.file)); - gchfilelist += path.basename(file.file) + '.gch '; - } - } - let ofilelist = ''; - for (let o in objects) { - ofilelist += o + '.o '; - } - this.writeFile(path.resolve(outputPath, 'makefile')); - let incline = '-I./ '; // local directory to pick up the precompiled header hxcpp.h.gch - for (let inc of project.getIncludeDirs()) { - inc = path.relative(outputPath, path.resolve(from, inc)); - incline += '-I' + inc + ' '; - } - this.p('INC=' + incline); - let libsline = '-static-libgcc -static-libstdc++ -pthread'; - if (Options_1.Options.compiler === Compiler_1.Compiler.MuslGcc || os.includes('Alpine')) { - libsline += ' -static'; - } - for (let lib of project.getLibs()) { - libsline += ' -l' + lib; - } - this.p('LIB=' + libsline); - let defline = ''; - for (const def of project.getDefines()) { - if (def.config && def.config.toLowerCase() === 'debug' && !options.debug) { - continue; - } - if (def.config && def.config.toLowerCase() === 'release' && options.debug) { - continue; - } - defline += '-D' + def.value.replace(/\"/g, '\\"') + ' '; - } - if (!options.debug) { - defline += '-DNDEBUG '; - } - this.p('DEF=' + defline); - this.p(); - let cline = ''; - if (project.cStd !== '') { - cline = '-std=' + project.cStd + ' '; - } - if (options.dynlib) { - cline += '-fPIC '; - } - for (let flag of project.cFlags) { - cline += flag + ' '; - } - this.p('CFLAGS=' + cline); - let cppline = ''; - if (project.cppStd !== '') { - cppline = '-std=' + project.cppStd + ' '; - } - if (options.dynlib) { - cppline += '-fPIC '; - } - for (let flag of project.cppFlags) { - cppline += flag + ' '; - } - this.p('CPPFLAGS=' + cppline); - let optimization = ''; - if (!options.debug) { - optimization = '-O2'; - } - else - optimization = '-g'; - let executableName = project.getSafeName(); - if (project.getExecutableName()) { - executableName = project.getExecutableName(); - } - if (options.lib) { - this.p(executableName + '.a: ' + gchfilelist + ofilelist); - } - else if (options.dynlib) { - this.p(executableName + '.so: ' + gchfilelist + ofilelist); - } - else { - this.p(executableName + ': ' + gchfilelist + ofilelist); - } - let cpp = ''; - let output = '-o "' + executableName + '"'; - if (options.lib) { - output = '-o "' + executableName + '.a"'; - } - else if (options.dynlib) { - output = '-shared -o "' + executableName + '.so"'; - } - if (options.lib) { - this.p('\t' + 'ar rcs ' + output + ' ' + ofilelist); - } - else { - this.p('\t' + cppCompiler + ' ' + output + ' ' + cpp + ' ' + optimization + ' ' + ofilelist + ' $(LIB)'); - } - for (let file of project.getFiles()) { - let precompiledHeader = null; - for (let header of precompiledHeaders) { - if (file.file.endsWith(header)) { - precompiledHeader = header; - break; - } - } - if (precompiledHeader !== null) { - let realfile = path.relative(outputPath, path.resolve(from, file.file)); - this.p('-include ' + path.basename(file.file) + '.d'); - this.p(path.basename(realfile) + '.gch: ' + realfile); - this.p('\t' + cppCompiler + ' ' + cpp + ' ' + optimization + ' $(INC) $(DEF) -MD -c ' + realfile + ' -o ' + path.basename(file.file) + '.gch'); - } - } - for (let fileobject of project.getFiles()) { - let file = fileobject.file; - if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { - this.p(); - let name = ofiles[file]; - let realfile = path.relative(outputPath, path.resolve(from, file)); - this.p('-include ' + name + '.d'); - this.p(name + '.o: ' + realfile); - let compiler = cppCompiler; - let flags = '$(CPPFLAGS)'; - if (file.endsWith('.c')) { - compiler = cCompiler; - flags = '$(CFLAGS)'; - } - else if (file.endsWith('.s') || file.endsWith('.S')) { - compiler = cCompiler; - flags = ''; - } - this.p('\t' + compiler + ' ' + cpp + ' ' + optimization + ' $(INC) $(DEF) -MD ' + flags + ' -c ' + realfile + ' -o ' + name + '.o'); - } - } - // project.getDefines() - // project.getIncludeDirs() - this.closeFile(); - } exportCodeBlocks(project, from, to, platform, vrApi, options) { this.writeFile(path.resolve(to, project.getSafeName() + '.cbp')); this.p(''); diff --git a/lib/kmake/Exporters/LinuxExporter.js.map b/lib/kmake/Exporters/LinuxExporter.js.map index b82c5c016f..28ed760e95 100644 --- a/lib/kmake/Exporters/LinuxExporter.js.map +++ b/lib/kmake/Exporters/LinuxExporter.js.map @@ -1 +1 @@ -{"version":3,"file":"LinuxExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/LinuxExporter.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AACpD,2CAAwC;AACxC,6CAA0C;AAE1C,6CAA0C;AAC1C,oCAAoC;AACpC,6BAA6B;AAE7B,MAAa,aAAc,SAAQ,mBAAQ;IAC1C;QACC,KAAK,EAAE,CAAC;IACT,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAU,EAAE,OAAY;QAC1G,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACjE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,YAAY;QACX,QAAQ,iBAAO,CAAC,QAAQ,EAAE;YACzB,KAAK,mBAAQ,CAAC,OAAO,CAAC;YACtB,KAAK,mBAAQ,CAAC,GAAG;gBAChB,OAAO,KAAK,CAAC;YACd,KAAK,mBAAQ,CAAC,KAAK;gBAClB,OAAO,OAAO,CAAC;YAChB,KAAK,mBAAQ,CAAC,OAAO;gBACpB,OAAO,UAAU,CAAC;YACnB,KAAK,mBAAQ,CAAC,MAAM;gBACnB,OAAO,iBAAO,CAAC,MAAM,CAAC;YACvB;gBACC,MAAM,uBAAuB,GAAG,iBAAO,CAAC,QAAQ,CAAC;SAClD;IACF,CAAC;IAED,cAAc;QACb,QAAQ,iBAAO,CAAC,QAAQ,EAAE;YACzB,KAAK,mBAAQ,CAAC,OAAO,CAAC;YACtB,KAAK,mBAAQ,CAAC,GAAG;gBAChB,OAAO,KAAK,CAAC;YACd,KAAK,mBAAQ,CAAC,KAAK;gBAClB,OAAO,SAAS,CAAC;YAClB,KAAK,mBAAQ,CAAC,OAAO;gBACpB,OAAO,KAAK,CAAC;YACd,KAAK,mBAAQ,CAAC,MAAM;gBACnB,OAAO,iBAAO,CAAC,OAAO,CAAC;YACxB;gBACC,MAAM,uBAAuB,GAAG,iBAAO,CAAC,QAAQ,CAAC;SAClD;IACF,CAAC;IAED,KAAK;QACJ,IAAI;YACH,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC/B,IAAI,IAAI,GAAG,IAAI,CAAC;YAChB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;oBACnC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1B,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBAC1C,MAAM;iBACN;aACD;YACD,IAAI,IAAI,EAAE;gBACT,OAAO,IAAI,CAAC;aACZ;iBACI;gBACJ,OAAO,SAAS,CAAC;aACjB;SACD;QACD,OAAO,KAAK,EAAE;YACb,OAAO,SAAS,CAAC;SACjB;IACF,CAAC;IAED,eAAe,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAU,EAAE,OAAY;QACrG,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAExB,IAAI,OAAO,GAAQ,EAAE,CAAC;QACtB,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAE7B,KAAK,IAAI,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YAC1C,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvH,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1E,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACnB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;iBACpB;qBACI;oBACJ,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE;wBACrB,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;qBAClB;oBACD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;iBACpB;aACD;SACD;QAED,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE;YACtB,SAAS,IAAI,CAAC,GAAG,KAAK,CAAC;SACvB;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;QAExD,IAAI,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC;QAExC,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE;YACzC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,OAAO,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;SAC5B;QAED,IAAI,QAAQ,GAAG,2CAA2C,CAAC;QAC3D,IAAI,iBAAO,CAAC,QAAQ,KAAK,mBAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACnE,QAAQ,IAAI,UAAU,CAAC;SACvB;QACD,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;YAClC,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;SACxB;QACD,QAAQ,IAAI,GAAG,CAAC;QAEhB,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;YACvC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACzE,SAAS;aACT;YAED,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE;gBAC1E,SAAS;aACT;YAED,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;SACxD;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACnB,OAAO,IAAI,WAAW,CAAC;SACvB;QAED,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACnB,YAAY,GAAG,KAAK,CAAC;SACrB;;YACI,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,KAAK,GAAG,SAAS,GAAG,GAAG,CAAC;QAC5B,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE;YACxB,KAAK,IAAI,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;SACtC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YACnB,KAAK,IAAI,QAAQ,CAAC;SAClB;QACD,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;YAChC,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC;SACpB;QACD,KAAK,IAAI,YAAY,GAAG,GAAG,CAAC;QAC5B,KAAK,IAAI,OAAO,CAAC;QACjB,KAAK,IAAI,OAAO,CAAC;QACjB,IAAI,CAAC,CAAC,CAAC,yDAAyD,GAAG,KAAK,GAAG,iCAAiC,CAAC,CAAC;QAE9G,IAAI,OAAO,GAAG,WAAW,GAAG,GAAG,CAAC;QAChC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YAC1B,OAAO,IAAI,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;SAC1C;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YACnB,OAAO,IAAI,QAAQ,CAAC;SACpB;QACD,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClC,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC;SACtB;QACD,OAAO,IAAI,YAAY,GAAG,GAAG,CAAC;QAC9B,OAAO,IAAI,OAAO,CAAC;QACnB,OAAO,IAAI,OAAO,CAAC;QACnB,IAAI,CAAC,CAAC,CAAC,0DAA0D,GAAG,OAAO,GAAG,iCAAiC,CAAC,CAAC;QAEjH,IAAI,OAAO,CAAC,MAAM,EAAE;YACnB,IAAI,CAAC,CAAC,CAAC,6CAA6C,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,yBAAyB,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;SAC9I;aACI,IAAI,OAAO,CAAC,GAAG,EAAE;YACrB,IAAI,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC;SACxE;aACI;YACJ,IAAI,CAAC,CAAC,CAAC,6CAA6C,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,WAAW,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC;SAChI;QAED,KAAK,IAAI,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YAC1C,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvH,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBAEnE,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACxB,QAAQ,GAAG,IAAI,CAAC;iBAChB;qBACI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACpD,QAAQ,GAAG,KAAK,CAAC;iBACjB;gBAED,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC;aAC7D;SACD;QACD,IAAI,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,iBAAiB,EAAE,EAAE;YAChC,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;SAC7C;QAED,IAAI,UAAU,GAAG,cAAc,CAAC;QAChC,IAAI,OAAO,CAAC,GAAG,EAAE;YAChB,UAAU,GAAG,cAAc,GAAG,IAAI,CAAC;SACnC;aACI,IAAI,OAAO,CAAC,MAAM,EAAE;YACxB,UAAU,GAAG,cAAc,GAAG,KAAK,CAAC;SACpC;QAED,IAAI,CAAC,CAAC,CAAC,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;QAEtD,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,cAAc,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAU,EAAE,OAAY;QACpG,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QAExB,IAAI,OAAO,GAAQ,EAAE,CAAC;QACtB,IAAI,MAAM,GAAQ,EAAE,CAAC;QACrB,IAAI,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,EAAE,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAE7B,KAAK,IAAI,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YAC1C,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvH,IAAI,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1E,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC7C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACnB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;iBACpB;qBACI;oBACJ,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE;wBACrB,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;qBAClB;oBACD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;oBACrB,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;iBACpB;aACD;SACD;QAED,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,kBAAkB,GAAa,EAAE,CAAC;QACtC,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACzF,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC1C;SACD;QACD,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YACpC,IAAI,iBAAiB,GAAW,IAAI,CAAC;YACrC,KAAK,IAAI,MAAM,IAAI,kBAAkB,EAAE;gBACtC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC/B,iBAAiB,GAAG,MAAM,CAAC;oBAC3B,MAAM;iBACN;aACD;YACD,IAAI,iBAAiB,KAAK,IAAI,EAAE;gBAC/B,2EAA2E;gBAC3E,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;aAClD;SACD;QAED,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,KAAK,IAAI,CAAC,IAAI,OAAO,EAAE;YACtB,SAAS,IAAI,CAAC,GAAG,KAAK,CAAC;SACvB;QAED,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;QAErD,IAAI,OAAO,GAAG,OAAO,CAAC,CAAC,gEAAgE;QACvF,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE;YACzC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC;YACzD,OAAO,IAAI,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC;SAC5B;QACD,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;QAEzB,IAAI,QAAQ,GAAG,2CAA2C,CAAC;QAC3D,IAAI,iBAAO,CAAC,QAAQ,KAAK,mBAAQ,CAAC,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;YACnE,QAAQ,IAAI,UAAU,CAAC;SACvB;QACD,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;YAClC,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC;SACxB;QACD,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;QAE1B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;YACvC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBACzE,SAAS;aACT;YAED,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,EAAE;gBAC1E,SAAS;aACT;YAED,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,GAAG,CAAC;SACxD;QACD,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACnB,OAAO,IAAI,WAAW,CAAC;SACvB;QACD,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,EAAE,CAAC;QAET,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,IAAI,KAAK,EAAE,EAAE;YACxB,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC;SACrC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YACnB,KAAK,IAAI,QAAQ,CAAC;SAClB;QACD,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE;YAChC,KAAK,IAAI,IAAI,GAAG,GAAG,CAAC;SACpB;QACD,IAAI,CAAC,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC,CAAC;QAE1B,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YAC1B,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC;SACzC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YACnB,OAAO,IAAI,QAAQ,CAAC;SACpB;QACD,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE;YAClC,OAAO,IAAI,IAAI,GAAG,GAAG,CAAC;SACtB;QACD,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,OAAO,CAAC,CAAC;QAE9B,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;YACnB,YAAY,GAAG,KAAK,CAAC;SACrB;;YACI,YAAY,GAAG,IAAI,CAAC;QAEzB,IAAI,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,iBAAiB,EAAE,EAAE;YAChC,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;SAC7C;QAED,IAAI,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,CAAC,CAAC,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC,CAAC;SAC1D;aACI,IAAI,OAAO,CAAC,MAAM,EAAE;YACxB,IAAI,CAAC,CAAC,CAAC,cAAc,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAAC,CAAC;SAC3D;aACI;YACJ,IAAI,CAAC,CAAC,CAAC,cAAc,GAAG,IAAI,GAAG,WAAW,GAAG,SAAS,CAAC,CAAC;SACxD;QAED,IAAI,GAAG,GAAG,EAAE,CAAC;QAEb,IAAI,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,GAAG,CAAC;QAC3C,IAAI,OAAO,CAAC,GAAG,EAAE;YAChB,MAAM,GAAG,MAAM,GAAG,cAAc,GAAG,KAAK,CAAC;SACzC;aACI,IAAI,OAAO,CAAC,MAAM,EAAE;YACxB,MAAM,GAAG,cAAc,GAAG,cAAc,GAAG,MAAM,CAAC;SAClD;QAED,IAAI,OAAO,CAAC,GAAG,EAAE;YAChB,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,GAAG,GAAG,SAAS,CAAC,CAAC;SACpD;aACI;YACJ,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,GAAG,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;SACzG;QAED,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YACpC,IAAI,iBAAiB,GAAW,IAAI,CAAC;YACrC,KAAK,IAAI,MAAM,IAAI,kBAAkB,EAAE;gBACtC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC/B,iBAAiB,GAAG,MAAM,CAAC;oBAC3B,MAAM;iBACN;aACD;YACD,IAAI,iBAAiB,KAAK,IAAI,EAAE;gBAC/B,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBACxE,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtD,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,QAAQ,CAAC,CAAC;gBACtD,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,wBAAwB,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;aAC/I;SACD;QAED,KAAK,IAAI,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YAC1C,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACvH,IAAI,CAAC,CAAC,EAAE,CAAC;gBACT,IAAI,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBAEnE,IAAI,CAAC,CAAC,CAAC,WAAW,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;gBAElC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,QAAQ,CAAC,CAAC;gBAEjC,IAAI,QAAQ,GAAG,WAAW,CAAC;gBAC3B,IAAI,KAAK,GAAG,aAAa,CAAC;gBAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACxB,QAAQ,GAAG,SAAS,CAAC;oBACrB,KAAK,GAAG,WAAW,CAAC;iBACpB;qBACI,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;oBACpD,QAAQ,GAAG,SAAS,CAAC;oBACrB,KAAK,GAAG,EAAE,CAAC;iBACX;gBAED,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,YAAY,GAAG,qBAAqB,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC;aACpI;SACD;QAED,uBAAuB;QACvB,2BAA2B;QAE3B,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;IAED,gBAAgB,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAU,EAAE,OAAY;QACtG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,CAAC,CAAC,0DAA0D,CAAC,CAAC;QACnE,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC;QACpC,IAAI,CAAC,CAAC,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,CAAC,iBAAiB,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,CAAC,CAAC,yBAAyB,EAAE,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;QAEpC,IAAI,cAAc,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QAC3C,IAAI,OAAO,CAAC,iBAAiB,EAAE,EAAE;YAChC,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;SAC7C;QAED,IAAI,CAAC,CAAC,CAAC,4BAA4B,GAAG,cAAc,GAAG,yCAAyC,EAAE,CAAC,CAAC,CAAC;QACrG,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,CAAC,CAAC,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9H,IAAI,CAAC,CAAC,CAAC,uCAAuC,EAAE,CAAC,CAAC,CAAC;QACnD,IAAI,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACxB,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,CAAC,CAAC,oBAAoB,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;SAC1D;QACD,IAAI,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;YACvC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,OAAO,EAAE;gBACvD,SAAS;aACT;YACD,IAAI,CAAC,CAAC,CAAC,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;SACxE;QACD,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,CAAC,0BAA0B,EAAE,CAAC,CAAC,CAAC;QACtC,IAAI,CAAC,CAAC,CAAC,8BAA8B,GAAG,cAAc,GAAG,yCAAyC,EAAE,CAAC,CAAC,CAAC;QACvG,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,CAAC,CAAC,uBAAuB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9H,IAAI,CAAC,CAAC,CAAC,yCAAyC,EAAE,CAAC,CAAC,CAAC;QACrD,IAAI,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACxB,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,CAAC,CAAC,oBAAoB,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;SAC1D;QACD,IAAI,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;QAClC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;YACvC,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE;gBACzD,SAAS;aACT;YACD,IAAI,CAAC,CAAC,CAAC,iBAAiB,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;SACxE;QACD,IAAI,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACxB,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE,EAAE;YAC1B,IAAI,CAAC,CAAC,CAAC,oBAAoB,GAAG,OAAO,CAAC,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;SAC1D;QACD,IAAI,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;QACpC,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;SACjE;QACD,IAAI,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;QACzB,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,CAAC,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,CAAC,oCAAoC,EAAE,CAAC,CAAC,CAAC;QAChD;;WAEG;QACH,IAAI,CAAC,CAAC,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACzB,IAAI,CAAC,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;SACjE;QACD,KAAK,IAAI,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE;YAClC,IAAI,CAAC,CAAC,CAAC,gBAAgB,GAAG,GAAG,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;SAC3C;QACD,IAAI,QAAQ,KAAK,mBAAQ,CAAC,EAAE,EAAE;YAC7B,IAAI,CAAC,CAAC,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;SAC7C;QACD,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAEvB,IAAI,kBAAkB,GAAa,EAAE,CAAC;QACtC,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YACpC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;gBACzF,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;aAC1C;SACD;QACD,KAAK,IAAI,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,EAAE;YACpC,IAAI,iBAAiB,GAAW,IAAI,CAAC;YACrC,KAAK,IAAI,MAAM,IAAI,kBAAkB,EAAE;gBACtC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC/B,iBAAiB,GAAG,MAAM,CAAC;oBAC3B,MAAM;iBACN;aACD;YAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;gBACxF,IAAI,CAAC,CAAC,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;gBACrE,IAAI,CAAC,CAAC,CAAC,6BAA6B,EAAE,CAAC,CAAC,CAAC;gBACzC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;aACrB;iBACI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBAClC,IAAI,CAAC,CAAC,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;gBACrE,IAAI,iBAAiB,KAAK,IAAI,EAAE;oBAC/B,IAAI,CAAC,CAAC,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC;oBACpC,IAAI,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;iBACnC;gBACD,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;aACrB;SACD;QACD,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;QAC1B,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,EAAE,CAAC;IAClB,CAAC;CACD;AAtiBD,sCAsiBC"} \ No newline at end of file +{"version":3,"file":"LinuxExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/LinuxExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/kmake/Exporters/MakeExporter.js b/lib/kmake/Exporters/MakeExporter.js new file mode 100644 index 0000000000..3ebf49b218 --- /dev/null +++ b/lib/kmake/Exporters/MakeExporter.js @@ -0,0 +1,187 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.MakeExporter = void 0; +const Exporter_1 = require("kmake/Exporters/Exporter"); +const fs = require("kmake/fsextra"); +const path = require("path"); +class MakeExporter extends Exporter_1.Exporter { + constructor(cCompiler, cppCompiler, linkerParams) { + super(); + this.cCompiler = cCompiler; + this.cppCompiler = cppCompiler; + this.linkerParams = linkerParams; + } + async exportSolution(project, from, to, platform, vrApi, options) { + let objects = {}; + let ofiles = {}; + let outputPath = path.resolve(to, options.buildPath); + fs.ensureDirSync(outputPath); + for (let fileobject of project.getFiles()) { + let file = fileobject.file; + if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { + let name = file.toLowerCase(); + if (name.indexOf('/') >= 0) + name = name.substr(name.lastIndexOf('/') + 1); + name = name.substr(0, name.lastIndexOf('.')); + if (!objects[name]) { + objects[name] = true; + ofiles[file] = name; + } + else { + while (objects[name]) { + name = name + '_'; + } + objects[name] = true; + ofiles[file] = name; + } + } + } + let gchfilelist = ''; + let precompiledHeaders = []; + for (let file of project.getFiles()) { + if (file.options && file.options.pch && precompiledHeaders.indexOf(file.options.pch) < 0) { + precompiledHeaders.push(file.options.pch); + } + } + for (let file of project.getFiles()) { + let precompiledHeader = null; + for (let header of precompiledHeaders) { + if (file.file.endsWith(header)) { + precompiledHeader = header; + break; + } + } + if (precompiledHeader !== null) { + // let realfile = path.relative(outputPath, path.resolve(from, file.file)); + gchfilelist += path.basename(file.file) + '.gch '; + } + } + let ofilelist = ''; + for (let o in objects) { + ofilelist += o + '.o '; + } + this.writeFile(path.resolve(outputPath, 'makefile')); + let incline = '-I./ '; // local directory to pick up the precompiled header hxcpp.h.gch + for (let inc of project.getIncludeDirs()) { + inc = path.relative(outputPath, path.resolve(from, inc)); + incline += '-I' + inc + ' '; + } + this.p('INC=' + incline); + let libsline = this.linkerParams; + for (let lib of project.getLibs()) { + libsline += ' -l' + lib; + } + this.p('LIB=' + libsline); + let defline = ''; + for (const def of project.getDefines()) { + if (def.config && def.config.toLowerCase() === 'debug' && !options.debug) { + continue; + } + if (def.config && def.config.toLowerCase() === 'release' && options.debug) { + continue; + } + defline += '-D' + def.value.replace(/\"/g, '\\"') + ' '; + } + if (!options.debug) { + defline += '-DNDEBUG '; + } + this.p('DEF=' + defline); + this.p(); + let cline = ''; + if (project.cStd !== '') { + cline = '-std=' + project.cStd + ' '; + } + if (options.dynlib) { + cline += '-fPIC '; + } + for (let flag of project.cFlags) { + cline += flag + ' '; + } + this.p('CFLAGS=' + cline); + let cppline = ''; + if (project.cppStd !== '') { + cppline = '-std=' + project.cppStd + ' '; + } + if (options.dynlib) { + cppline += '-fPIC '; + } + for (let flag of project.cppFlags) { + cppline += flag + ' '; + } + this.p('CPPFLAGS=' + cppline); + let optimization = ''; + if (!options.debug) { + optimization = '-O2'; + } + else + optimization = '-g'; + let executableName = project.getSafeName(); + if (project.getExecutableName()) { + executableName = project.getExecutableName(); + } + if (options.lib) { + this.p(executableName + '.a: ' + gchfilelist + ofilelist); + } + else if (options.dynlib) { + this.p(executableName + '.so: ' + gchfilelist + ofilelist); + } + else { + this.p(executableName + ': ' + gchfilelist + ofilelist); + } + let cpp = ''; + let output = '-o "' + executableName + '"'; + if (options.lib) { + output = '-o "' + executableName + '.a"'; + } + else if (options.dynlib) { + output = '-shared -o "' + executableName + '.so"'; + } + if (options.lib) { + this.p('\t' + 'ar rcs ' + output + ' ' + ofilelist); + } + else { + this.p('\t' + this.cppCompiler + ' ' + output + ' ' + cpp + ' ' + optimization + ' ' + ofilelist + ' $(LIB)'); + } + for (let file of project.getFiles()) { + let precompiledHeader = null; + for (let header of precompiledHeaders) { + if (file.file.endsWith(header)) { + precompiledHeader = header; + break; + } + } + if (precompiledHeader !== null) { + let realfile = path.relative(outputPath, path.resolve(from, file.file)); + this.p('-include ' + path.basename(file.file) + '.d'); + this.p(path.basename(realfile) + '.gch: ' + realfile); + this.p('\t' + this.cppCompiler + ' ' + cpp + ' ' + optimization + ' $(INC) $(DEF) -MD -c ' + realfile + ' -o ' + path.basename(file.file) + '.gch'); + } + } + for (let fileobject of project.getFiles()) { + let file = fileobject.file; + if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { + this.p(); + let name = ofiles[file]; + let realfile = path.relative(outputPath, path.resolve(from, file)); + this.p('-include ' + name + '.d'); + this.p(name + '.o: ' + realfile); + let compiler = this.cppCompiler; + let flags = '$(CPPFLAGS)'; + if (file.endsWith('.c')) { + compiler = this.cCompiler; + flags = '$(CFLAGS)'; + } + else if (file.endsWith('.s') || file.endsWith('.S')) { + compiler = this.cCompiler; + flags = ''; + } + this.p('\t' + compiler + ' ' + cpp + ' ' + optimization + ' $(INC) $(DEF) -MD ' + flags + ' -c ' + realfile + ' -o ' + name + '.o'); + } + } + // project.getDefines() + // project.getIncludeDirs() + this.closeFile(); + } +} +exports.MakeExporter = MakeExporter; +//# sourceMappingURL=MakeExporter.js.map \ No newline at end of file diff --git a/lib/kmake/Exporters/MakeExporter.js.map b/lib/kmake/Exporters/MakeExporter.js.map new file mode 100644 index 0000000000..88f0d61651 --- /dev/null +++ b/lib/kmake/Exporters/MakeExporter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"MakeExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/MakeExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/kmake/Exporters/NinjaExporter.js b/lib/kmake/Exporters/NinjaExporter.js new file mode 100644 index 0000000000..6ca5986345 --- /dev/null +++ b/lib/kmake/Exporters/NinjaExporter.js @@ -0,0 +1,144 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.NinjaExporter = void 0; +const Exporter_1 = require("kmake/Exporters/Exporter"); +const fs = require("kmake/fsextra"); +const path = require("path"); +class NinjaExporter extends Exporter_1.Exporter { + constructor(cCompiler, cppCompiler, linkerParams) { + super(); + this.cCompiler = cCompiler; + this.cppCompiler = cppCompiler; + this.linkerParams = linkerParams; + } + async exportSolution(project, from, to, platform, vrApi, options) { + let objects = {}; + let ofiles = {}; + let outputPath = path.resolve(to, options.buildPath); + fs.ensureDirSync(outputPath); + for (let fileobject of project.getFiles()) { + let file = fileobject.file; + if (file.endsWith('.cpp') || file.endsWith('.c') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { + let name = file.toLowerCase(); + if (name.indexOf('/') >= 0) + name = name.substr(name.lastIndexOf('/') + 1); + name = name.substr(0, name.lastIndexOf('.')); + if (!objects[name]) { + objects[name] = true; + ofiles[file] = name; + } + else { + while (objects[name]) { + name = name + '_'; + } + objects[name] = true; + ofiles[file] = name; + } + } + } + let ofilelist = ''; + for (let o in objects) { + ofilelist += o + '.o '; + } + this.writeFile(path.resolve(outputPath, 'build.ninja')); + this.p('pool link_pool\n depth = 1\n'); + let incline = ''; + for (let inc of project.getIncludeDirs()) { + inc = path.relative(outputPath, path.resolve(from, inc)); + incline += '-I' + inc + ' '; + } + let libsline = this.linkerParams; + for (let lib of project.getLibs()) { + libsline += ' -l' + lib; + } + libsline += ' '; + let defline = ''; + for (const def of project.getDefines()) { + if (def.config && def.config.toLowerCase() === 'debug' && !options.debug) { + continue; + } + if (def.config && def.config.toLowerCase() === 'release' && options.debug) { + continue; + } + defline += '-D' + def.value.replace(/\"/g, '\\"') + ' '; + } + if (!options.debug) { + defline += '-DNDEBUG '; + } + let optimization = ''; + if (!options.debug) { + optimization = '-O2'; + } + else + optimization = '-g'; + let cline = this.cCompiler + ' '; + if (project.cStd !== '') { + cline += '-std=' + project.cStd + ' '; + } + if (options.dynlib) { + cline += '-fPIC '; + } + for (let flag of project.cFlags) { + cline += flag + ' '; + } + cline += optimization + ' '; + cline += incline; + cline += defline; + this.p('rule cc\n deps = gcc\n depfile = $out.d\n command = ' + cline + '-MD -MF $out.d -c $in -o $out\n'); + let cppline = this.cppCompiler + ' '; + if (project.cppStd !== '') { + cppline += '-std=' + project.cppStd + ' '; + } + if (options.dynlib) { + cppline += '-fPIC '; + } + for (let flag of project.cppFlags) { + cppline += flag + ' '; + } + cppline += optimization + ' '; + cppline += incline; + cppline += defline; + this.p('rule cxx\n deps = gcc\n depfile = $out.d\n command = ' + cppline + '-MD -MF $out.d -c $in -o $out\n'); + if (options.dynlib) { + this.p('rule link\n pool = link_pool\n command = ' + this.cppCompiler + ' -fPIC -shared -o $out ' + optimization + ' $in ' + libsline); + } + else if (options.lib) { + this.p('rule link\n pool = link_pool\n command = ar rcs -o $out $in'); + } + else { + this.p('rule link\n pool = link_pool\n command = ' + this.cppCompiler + ' -o $out ' + optimization + ' $in ' + libsline); + } + for (let fileobject of project.getFiles()) { + let file = fileobject.file; + if (file.endsWith('.c') || file.endsWith('.cpp') || file.endsWith('.cc') || file.endsWith('.s') || file.endsWith('.S')) { + this.p(); + let name = ofiles[file]; + let realfile = path.relative(outputPath, path.resolve(from, file)); + let compiler = 'cxx'; + if (file.endsWith('.c')) { + compiler = 'cc'; + } + else if (file.endsWith('.s') || file.endsWith('.S')) { + compiler = 'asm'; + } + this.p('build ' + name + '.o: ' + compiler + ' ' + realfile); + } + } + this.p(); + let executableName = project.getSafeName(); + if (project.getExecutableName()) { + executableName = project.getExecutableName(); + } + let outputname = executableName; + if (options.lib) { + outputname = executableName + '.a'; + } + else if (options.dynlib) { + outputname = executableName + '.so'; + } + this.p('build ' + outputname + ': link ' + ofilelist); + this.closeFile(); + } +} +exports.NinjaExporter = NinjaExporter; +//# sourceMappingURL=NinjaExporter.js.map \ No newline at end of file diff --git a/lib/kmake/Exporters/NinjaExporter.js.map b/lib/kmake/Exporters/NinjaExporter.js.map new file mode 100644 index 0000000000..beadd4b96c --- /dev/null +++ b/lib/kmake/Exporters/NinjaExporter.js.map @@ -0,0 +1 @@ +{"version":3,"file":"NinjaExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/NinjaExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/kmake/Exporters/VSCodeExporter.js b/lib/kmake/Exporters/VSCodeExporter.js index ae79d9135e..51b779de34 100644 --- a/lib/kmake/Exporters/VSCodeExporter.js +++ b/lib/kmake/Exporters/VSCodeExporter.js @@ -5,9 +5,11 @@ const Exporter_1 = require("kmake/Exporters/Exporter"); const Platform_1 = require("kmake/Platform"); const fs = require("kmake/fsextra"); const path = require("path"); +const CompileCommandsExporter_1 = require("./CompileCommandsExporter"); class VSCodeExporter extends Exporter_1.Exporter { constructor() { super(); + this.compileCommands = new CompileCommandsExporter_1.CompilerCommandsExporter(); } configName(platform) { if (platform === Platform_1.Platform.Windows) { @@ -117,7 +119,7 @@ class VSCodeExporter extends Exporter_1.Exporter { data.configurations = configurations; this.p(JSON.stringify(data, null, '\t')); this.closeFile(); - this.exportCompileCommands(project, from, to, platform, vrApi, options); + this.compileCommands.exportSolution(project, from, to, platform, vrApi, options); } program(project, platform) { if (platform === Platform_1.Platform.OSX) { diff --git a/lib/kmake/Exporters/VSCodeExporter.js.map b/lib/kmake/Exporters/VSCodeExporter.js.map index a0342f2ae9..268decce54 100644 --- a/lib/kmake/Exporters/VSCodeExporter.js.map +++ b/lib/kmake/Exporters/VSCodeExporter.js.map @@ -1 +1 @@ -{"version":3,"file":"VSCodeExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/VSCodeExporter.ts"],"names":[],"mappings":";;;AAAA,uDAAoD;AAEpD,6CAA0C;AAC1C,oCAAoC;AACpC,6BAA6B;AAE7B,MAAa,cAAe,SAAQ,mBAAQ;IAC3C;QACC,KAAK,EAAE,CAAC;IACT,CAAC;IAED,UAAU,CAAC,QAAgB;QAC1B,IAAI,QAAQ,KAAK,mBAAQ,CAAC,OAAO,EAAE;YAClC,OAAO,OAAO,CAAC;SACf;aACI,IAAI,QAAQ,KAAK,mBAAQ,CAAC,KAAK,EAAE;YACrC,OAAO,OAAO,CAAC;SACf;aACI,IAAI,QAAQ,KAAK,mBAAQ,CAAC,GAAG,EAAE;YACnC,OAAO,KAAK,CAAC;SACb;aACI;YACJ,OAAO,kBAAkB,CAAC;SAC1B;IACF,CAAC;IAED,YAAY,CAAC,QAAgB;QAC5B,IAAI,QAAQ,KAAK,mBAAQ,CAAC,OAAO,EAAE;YAClC,OAAO,gHAAgH,CAAC;SACxH;aACI,IAAI,QAAQ,KAAK,mBAAQ,CAAC,KAAK,EAAE;YACrC,OAAO,cAAc,CAAC;SACtB;aACI,IAAI,QAAQ,KAAK,mBAAQ,CAAC,GAAG,EAAE;YACnC,OAAO,gBAAgB,CAAC;SACxB;aACI;YACJ,OAAO,kBAAkB,CAAC;SAC1B;IACF,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAU,EAAE,OAAY;QAC1G,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC;QAEpE,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE;YAC1C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3B;QAED,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,cAAc,EAAE,EAAE;YAC/C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBAC7B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAE,CAAC;aACxB;iBACI;gBACJ,QAAQ,CAAC,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,CAAC;aAC/C;SACD;QAED,MAAM,MAAM,GAAQ;YACnB,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC/B,WAAW,EAAE,QAAQ;YACrB,OAAO,EAAE,OAAO;YAChB,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YACzC,SAAS,EAAE,OAAO,CAAC,IAAI;YACvB,WAAW,EAAE,OAAO,CAAC,MAAM;YAC3B,gBAAgB,EAAE,YAAY;SAC9B,CAAC;QAEF,IAAI,QAAQ,KAAK,mBAAQ,CAAC,OAAO,EAAE;YAClC,MAAM,CAAC,iBAAiB,GAAG,cAAc,CAAC;SAC1C;QAED,IAAI,QAAQ,KAAK,mBAAQ,CAAC,GAAG,EAAE;YAC9B,MAAM,CAAC,gBAAgB,GAAG,CAAC,0HAA0H,CAAC,CAAC;SACvJ;QAED,MAAM,IAAI,GAAG;YACZ,cAAc,EAAE;gBACf,MAAM;aACN;SACD,CAAC;QAEF,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QAEjB,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC;IAED,eAAe,CAAC,OAAgB,EAAE,IAAY,EAAE,EAAU,EAAE,QAAgB,EAAE,KAAU,EAAE,OAAY;QACrG,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;QAEjE,IAAI,IAAI,GAAQ;YACf,cAAc,EAAE,EAAE;YAClB,SAAS,EAAE,EAAE;SACb,CAAC;QAEF,IAAI,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;YAClC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;SACvE;QAED,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,cAAc,EAAE;YACvC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;gBACrC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5B;SACD;QAED,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC/B,MAAM,UAAU,GAAQ;YACvB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,QAAQ,KAAK,mBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ;YAC3D,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;YACxC,GAAG,EAAE,OAAO,CAAC,WAAW,EAAE;YAC1B,aAAa,EAAE,wBAAwB,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;SACtE,CAAC;QAEF,IAAI,QAAQ,KAAK,mBAAQ,CAAC,OAAO,EAAE;YAClC,8DAA8D;YAC9D,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC;YAClC,UAAU,CAAC,OAAO,GAAG;gBACpB,UAAU,EAAE,KAAK;gBACjB,KAAK,EAAE,IAAI;aACX,CAAC;YACF,8DAA8D;SAC9D;aACI,IAAI,QAAQ,KAAK,mBAAQ,CAAC,GAAG,EAAE;YACnC,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;SAC3B;QAED,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QAErC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,CAAC,OAAgB,EAAE,QAAgB;QACzC,IAAI,QAAQ,KAAK,mBAAQ,CAAC,GAAG,EAAE;YAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;SAChJ;aACI;YACJ,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,QAAQ,KAAK,mBAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAC/G;IACF,CAAC;IAED,aAAa,CAAC,QAAgB;QAC7B,IAAI,QAAQ,KAAK,mBAAQ,CAAC,OAAO,EAAE;YAClC,OAAO,SAAS,CAAC;SACjB;aACI,IAAI,QAAQ,KAAK,mBAAQ,CAAC,GAAG,EAAE;YACnC,OAAO,OAAO,CAAC;SACf;aACI,IAAI,QAAQ,KAAK,mBAAQ,CAAC,KAAK,EAAE;YACrC,OAAO,OAAO,CAAC;SACf;aACI,IAAI,QAAQ,KAAK,mBAAQ,CAAC,OAAO,EAAE;YACvC,OAAO,SAAS,CAAC;SACjB;aACI;YACJ,OAAO,SAAS,CAAC;SACjB;IACF,CAAC;CACD;AAhKD,wCAgKC"} \ No newline at end of file +{"version":3,"file":"VSCodeExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/VSCodeExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/kmake/Exporters/VisualStudioExporter.js b/lib/kmake/Exporters/VisualStudioExporter.js index 830a7eea0e..fb29c1fc70 100644 --- a/lib/kmake/Exporters/VisualStudioExporter.js +++ b/lib/kmake/Exporters/VisualStudioExporter.js @@ -14,6 +14,7 @@ const log = require("kmake/log"); const fs = require("kmake/fsextra"); const path = require("path"); const crypto = require("crypto"); +const CLionExporter_1 = require("./CLionExporter"); function isGitPath(aPath) { return aPath.indexOf('/.git/') >= 0 || aPath.indexOf('\\.git\\') >= 0 || aPath.endsWith('/.git') || aPath.endsWith('\\.git'); } @@ -66,6 +67,7 @@ function getShaderLang() { class VisualStudioExporter extends Exporter_1.Exporter { constructor() { super(); + this.clion = new CLionExporter_1.CLionExporter(); if (this.overrideVisualStudioVersion() !== null) { Options_1.Options.visualStudioVersion = this.overrideVisualStudioVersion(); } @@ -173,7 +175,7 @@ class VisualStudioExporter extends Exporter_1.Exporter { } } async exportSolution(project, from, to, platform, vrApi, options) { - this.exportCLion(project, from, to, platform, vrApi, options); + this.clion.exportSolution(project, from, to, platform, vrApi, options); this.writeFile(path.resolve(to, project.getSafeName() + '.sln')); if (Options_1.Options.visualStudioVersion === VisualStudioVersion_1.VisualStudioVersion.VS2022) { this.p('Microsoft Visual Studio Solution File, Format Version 12.00'); diff --git a/lib/kmake/Exporters/VisualStudioExporter.js.map b/lib/kmake/Exporters/VisualStudioExporter.js.map index 210d700264..18a904bced 100644 --- a/lib/kmake/Exporters/VisualStudioExporter.js.map +++ b/lib/kmake/Exporters/VisualStudioExporter.js.map @@ -1 +1 @@ -{"version":3,"file":"VisualStudioExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/VisualStudioExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"VisualStudioExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/VisualStudioExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/kmake/Exporters/WasmExporter.js b/lib/kmake/Exporters/WasmExporter.js index 89b0f9e9d8..b4a9d6c545 100644 --- a/lib/kmake/Exporters/WasmExporter.js +++ b/lib/kmake/Exporters/WasmExporter.js @@ -4,9 +4,15 @@ exports.WasmExporter = void 0; const Exporter_1 = require("kmake/Exporters/Exporter"); const fs = require("kmake/fsextra"); const path = require("path"); +const CompileCommandsExporter_1 = require("./CompileCommandsExporter"); class WasmExporter extends Exporter_1.Exporter { constructor() { super(); + this.compileCommands = new CompileCommandsExporter_1.CompilerCommandsExporter(); + } + async exportSolution(project, from, to, platform, vrApi, options) { + this.exportMakefile(project, from, to, platform, vrApi, options); + this.compileCommands.exportSolution(project, from, to, platform, vrApi, options); } exportMakefile(project, from, to, platform, vrApi, options) { const cCompiler = 'clang'; @@ -180,10 +186,6 @@ class WasmExporter extends Exporter_1.Exporter { // project.getIncludeDirs() this.closeFile(); } - async exportSolution(project, from, to, platform, vrApi, options) { - this.exportMakefile(project, from, to, platform, vrApi, options); - this.exportCompileCommands(project, from, to, platform, vrApi, options); - } } exports.WasmExporter = WasmExporter; //# sourceMappingURL=WasmExporter.js.map \ No newline at end of file diff --git a/lib/kmake/Exporters/WasmExporter.js.map b/lib/kmake/Exporters/WasmExporter.js.map index 6f7488f573..8414a085c9 100644 --- a/lib/kmake/Exporters/WasmExporter.js.map +++ b/lib/kmake/Exporters/WasmExporter.js.map @@ -1 +1 @@ -{"version":3,"file":"WasmExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/WasmExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"WasmExporter.js","sourceRoot":"","sources":["../../../kmake/src/Exporters/WasmExporter.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/kmake/Platform.js b/lib/kmake/Platform.js index eb6c6f3e06..13ff187d48 100644 --- a/lib/kmake/Platform.js +++ b/lib/kmake/Platform.js @@ -9,7 +9,6 @@ exports.Platform = { Android: 'android', Linux: 'linux', Emscripten: 'emscripten', - Tizen: 'tizen', Pi: 'pi', tvOS: 'tvos', PS4: 'ps4', diff --git a/lib/kmake/Platform.js.map b/lib/kmake/Platform.js.map index e27ed5f094..4682630135 100644 --- a/lib/kmake/Platform.js.map +++ b/lib/kmake/Platform.js.map @@ -1 +1 @@ -{"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../kmake/src/Platform.ts"],"names":[],"mappings":";;;AAoBW,QAAA,QAAQ,GAAiB;IACnC,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;CACZ,CAAC"} \ No newline at end of file +{"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../kmake/src/Platform.ts"],"names":[],"mappings":";;;AAmBW,QAAA,QAAQ,GAAiB;IACnC,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,KAAK;IACV,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,YAAY;IACxB,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,YAAY;IACxB,GAAG,EAAE,KAAK;IACV,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;CACZ,CAAC"} \ No newline at end of file diff --git a/lib/kmake/ShaderCompiler.js b/lib/kmake/ShaderCompiler.js index a998986925..a55917d2f4 100644 --- a/lib/kmake/ShaderCompiler.js +++ b/lib/kmake/ShaderCompiler.js @@ -51,7 +51,6 @@ class ShaderCompiler { } case Platform_1.Platform.Emscripten: case Platform_1.Platform.Wasm: - case Platform_1.Platform.Tizen: case Platform_1.Platform.Pi: return 'essl'; case Platform_1.Platform.tvOS: diff --git a/lib/kmake/ShaderCompiler.js.map b/lib/kmake/ShaderCompiler.js.map index 08b93e65d3..9872b8c2dd 100644 --- a/lib/kmake/ShaderCompiler.js.map +++ b/lib/kmake/ShaderCompiler.js.map @@ -1 +1 @@ -{"version":3,"file":"ShaderCompiler.js","sourceRoot":"","sources":["../../kmake/src/ShaderCompiler.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"ShaderCompiler.js","sourceRoot":"","sources":["../../kmake/src/ShaderCompiler.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib/kmake/main.js b/lib/kmake/main.js index 71baaa2095..d80c19e225 100644 --- a/lib/kmake/main.js +++ b/lib/kmake/main.js @@ -15,7 +15,6 @@ const AndroidExporter_1 = require("kmake/Exporters/AndroidExporter"); const LinuxExporter_1 = require("kmake/Exporters/LinuxExporter"); const EmscriptenExporter_1 = require("kmake/Exporters/EmscriptenExporter"); const WasmExporter_1 = require("kmake/Exporters/WasmExporter"); -const TizenExporter_1 = require("kmake/Exporters/TizenExporter"); const VisualStudioExporter_1 = require("kmake/Exporters/VisualStudioExporter"); const XCodeExporter_1 = require("kmake/Exporters/XCodeExporter"); const VSCodeExporter_1 = require("kmake/Exporters/VSCodeExporter"); @@ -41,8 +40,6 @@ function fromPlatform(platform) { return 'Linux'; case Platform_1.Platform.Emscripten: return 'Emscripten'; - case Platform_1.Platform.Tizen: - return 'Tizen'; case Platform_1.Platform.Pi: return 'Pi'; case Platform_1.Platform.tvOS: @@ -136,8 +133,6 @@ function shaderLang(platform) { default: throw new Error('Unsupported shader language.'); } - case Platform_1.Platform.Tizen: - return 'essl'; case Platform_1.Platform.Pi: return 'essl'; case Platform_1.Platform.FreeBSD: @@ -205,8 +200,6 @@ function graphicsApi(platform) { default: return Options_1.Options.graphicsApi; } - case Platform_1.Platform.Tizen: - return GraphicsApi_1.GraphicsApi.OpenGL; case Platform_1.Platform.Pi: return GraphicsApi_1.GraphicsApi.OpenGL; case Platform_1.Platform.FreeBSD: @@ -576,8 +569,6 @@ async function exportKoremakeProject(from, to, platform, korefile, retro, veryre exporter = new LinuxExporter_1.LinuxExporter(); else if (platform === Platform_1.Platform.FreeBSD) exporter = new FreeBSDExporter_1.FreeBSDExporter(); - else if (platform === Platform_1.Platform.Tizen) - exporter = new TizenExporter_1.TizenExporter(); else if (platform === Platform_1.Platform.PS4 || platform === Platform_1.Platform.XboxOne || platform === Platform_1.Platform.Switch || platform === Platform_1.Platform.XboxSeries || platform === Platform_1.Platform.PS5) { let libsdir = path.join(from.toString(), 'Backends'); if (Project_1.Project.kincDir && !fs.existsSync(libsdir)) { diff --git a/lib/kmake/main.js.map b/lib/kmake/main.js.map index a30eb490d2..cd04379363 100644 --- a/lib/kmake/main.js.map +++ b/lib/kmake/main.js.map @@ -1 +1 @@ -{"version":3,"file":"main.js","sourceRoot":"","sources":["../../kmake/src/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"main.js","sourceRoot":"","sources":["../../kmake/src/main.ts"],"names":[],"mappings":"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"} \ No newline at end of file