Skip to content

Design for 0.5

Pedro Lamarão edited this page Nov 7, 2023 · 1 revision

Application project with C++ sources.

plugins {
  id("br.dev.pedrolamarao.metal.application")
  id("br.dev.pedrolamarao.metal.cxx")
}

dependencies {
  implementation("openssl:crypto:3.1.0")
}

tasks.compileCxx.configure {
  compileOptions = listOf("-g","-std=c++20")
}

tasks.linkApplication.configure {
  linkOptions = listOf("-g")
}

Archive project with C++ sources.

plugins {
  id("br.dev.pedrolamarao.metal.archive")
  id("br.dev.pedrolamarao.metal.cxx")
}

dependencies {
  api("openssl:crypto:3.1.0")
  testImplementation("google:test:3.14")
}

tasks.withType<MetalCompile>().configureEach {
  compileOptions = listOf("-g","-std=c++20")
}

tasks.withType<MetalLink>().configureEach {
  linkOptions = listOf("-g")
}

Archive project with target-specific C++ sources.

plugins {
  id("br.dev.pedrolamarao.metal.archive")
  id("br.dev.pedrolamarao.metal.cxx")
}

dependencies {
  api("openssl:crypto:3.1.0")
  testImplementation("google:test:3.14")
}

tasks.withType<MetalCompile>().configureEach {
  compileOptions = listOf("-g","-std=c++20")
}

tasks.compileCxx.configure {
  source.include("common/**")
  source.include("${metal.target}/**")
}

tasks.withType<MetalLink>().configureEach {
  linkOptions = listOf("-g")
}

Polyglot archive project.

plugins {
  id("br.dev.pedrolamarao.metal.archive")
  id("br.dev.pedrolamarao.metal.asm")
  id("br.dev.pedrolamarao.metal.cxx")
}

dependencies {
  api("openssl:crypto:3.1.0")
  testImplementation("google:test:3.14")
}

tasks.withType<MetalCompile>().configureEach {
  compileOptions = listOf("-g","-std=c++20")
}

tasks.withType<MetalLink>().configureEach {
  linkOptions = listOf("-g")
}
Clone this wiki locally