<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to cpp-front</title><link>https://sourceforge.net/p/gradle-cpp/wiki/cpp-front/</link><description>Recent changes to cpp-front</description><atom:link href="https://sourceforge.net/p/gradle-cpp/wiki/cpp-front/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 10 Sep 2025 20:51:16 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/gradle-cpp/wiki/cpp-front/feed" rel="self" type="application/rss+xml"/><item><title>cpp-front modified by Alexander Kornilov</title><link>https://sourceforge.net/p/gradle-cpp/wiki/cpp-front/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexander Kornilov</dc:creator><pubDate>Wed, 10 Sep 2025 20:51:16 -0000</pubDate><guid>https://sourceforge.netcb012521ba13656344fe231af4bab212ae8c624c</guid></item><item><title>cpp-front modified by Alexander Kornilov</title><link>https://sourceforge.net/p/gradle-cpp/wiki/cpp-front/</link><description>&lt;div class="markdown_content"&gt;&lt;h2 id="h-purpose"&gt;Purpose&lt;/h2&gt;
&lt;p&gt;The plugin aims to support &lt;a class="" href="https://github.com/hsutter/cppfront" rel="nofollow"&gt;cppfront/cpp2&lt;/a&gt; language in Gradle C++ projects.&lt;/p&gt;
&lt;p&gt;Main features:&lt;br/&gt;
* integration with Gradle C++ plugins: application, library and unit-test&lt;br/&gt;
* embedded cppfront compiler for Windows/Linux x86-64 (current version is v0.8.1)&lt;br/&gt;
* support of main compiler features in plugin configuration&lt;br/&gt;
* parallel compilation&lt;/p&gt;
&lt;h2 id="h-required-plugins"&gt;Required plugins&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;cpp-front&lt;/code&gt; requires to work other Gradle core plugins: &lt;code&gt;cpp-application&lt;/code&gt;/&lt;code&gt;cpp-library&lt;/code&gt;/&lt;code&gt;cpp-unit-test&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="h-usage"&gt;Usage&lt;/h2&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;plugins {
    `cpp-application`
    `cpp-unit-test`

    id("net.sf.loggersoft.cpp-front") version "0.1"
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="h-configuration"&gt;Configuration&lt;/h2&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;cppFront {
    //source.from(fileTree("dir" to "src/main/cpp2.bak", "includes" to listOf("*.cpp2")))
    //source.setFrom(fileTree("dir" to "src/main/cpp2/win", "includes" to listOf("*.cpp2")))
    //testSource.from(fileTree("dir" to "src/main/cpp2/win", "includes" to listOf("*.cpp2")))

    // The compiler binary file or path to home (inside expected 'bin' and 'include' subdirectories)
    //compilerHint = "/usr/bin/cppfront"
    //compilerHint = "C:\\Software\\cppfront\\bin\\cppfront.exe"

    //rawArgs = listOf("-verb")

    //pureCpp2 = true
    //importStd = true
    //includeStd = true
    //emitCleanCpp1 = true
    //noExceptions = true
    //noRtti = true
    //noComparisonChecks = true
    //noDivZeroChecks = true
    //noNullChecks = true
    //noSubscriptChecks = true
}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;source&lt;/strong&gt; - the main source set of the project (default is &lt;code&gt;src/main/cpp2&lt;/code&gt;).&lt;br/&gt;
&lt;strong&gt;testSource&lt;/strong&gt; - the test source set of the project (default is &lt;code&gt;src/test/cpp2&lt;/code&gt;).&lt;br/&gt;
&lt;strong&gt;compilerHint&lt;/strong&gt; - the path to home directory of cppfront toolchain (&lt;code&gt;bin&lt;/code&gt; inside expected) or full path to cppfront compiler binary. &lt;br/&gt;
&lt;strong&gt;rawArgs&lt;/strong&gt; - the raw command line arguments for cppfront compiler. Should begins from &lt;code&gt;-&lt;/code&gt;&lt;br/&gt;
&lt;strong&gt;pureCpp2&lt;/strong&gt; - allow Cpp2 syntax only - also sets -import-std.&lt;br/&gt;
&lt;strong&gt;importStd&lt;/strong&gt; - import all std:: via 'import std;' - ignored if -include-std is set.&lt;br/&gt;
&lt;strong&gt;includeStd&lt;/strong&gt; - #include all std:: headers.&lt;br/&gt;
&lt;strong&gt;emitCleanCpp1&lt;/strong&gt; - emit clean Cpp1 without #line directives.&lt;br/&gt;
&lt;strong&gt;noExceptions&lt;/strong&gt; - disable C++ EH - failed 'as' for 'variant' will assert.&lt;br/&gt;
&lt;strong&gt;noRtti&lt;/strong&gt; - disable C++ RTTI - using 'as' for &lt;code&gt;std::any&lt;/code&gt; will assert.&lt;br/&gt;
&lt;strong&gt;noComparisonChecks&lt;/strong&gt; - disable mixed-sign comparison safety checks.&lt;br/&gt;
&lt;strong&gt;noDivZeroChecks&lt;/strong&gt; - disable integer division by zero checks.&lt;br/&gt;
&lt;strong&gt;noNullChecks&lt;/strong&gt; - disable null safety checks.&lt;br/&gt;
&lt;strong&gt;noSubscriptChecks&lt;/strong&gt; - disable subscript safety checks.&lt;/p&gt;
&lt;h2 id="h-tasks"&gt;Tasks&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;cppFrontVersion&lt;/strong&gt; - information about cppfront toolchain&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;gradle&lt;span class="w"&gt; &lt;/span&gt;cppFrontVersion

&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;Task&lt;span class="w"&gt; &lt;/span&gt;:cppfront-app:cppFrontVersion
cpp-front&lt;span class="w"&gt; &lt;/span&gt;compiler:
&lt;span class="w"&gt;  &lt;/span&gt;version:&lt;span class="w"&gt; &lt;/span&gt;v0.8.1&lt;span class="w"&gt; &lt;/span&gt;Build&lt;span class="w"&gt; &lt;/span&gt;9B08:1148
&lt;span class="w"&gt;  &lt;/span&gt;home:&lt;span class="w"&gt; &lt;/span&gt;/home/akornilov/.gradle/plugins/cpp-front
&lt;span class="w"&gt;  &lt;/span&gt;compiler:&lt;span class="w"&gt; &lt;/span&gt;/home/akornilov/.gradle/plugins/cpp-front/bin/cppfront
&lt;span class="w"&gt;  &lt;/span&gt;include&lt;span class="w"&gt; &lt;/span&gt;directory:&lt;span class="w"&gt; &lt;/span&gt;/home/akornilov/.gradle/plugins/cpp-front/include

BUILD&lt;span class="w"&gt; &lt;/span&gt;SUCCESSFUL&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;817ms
&lt;span class="m"&gt;21&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;actionable&lt;span class="w"&gt; &lt;/span&gt;tasks:&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;executed,&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;20&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;up-to-date
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h2 id="h-example"&gt;Example:&lt;/h2&gt;
&lt;p&gt;Full sources of simple &lt;a class="" href="/p/gradle-cpp/code/ci/default/tree/cppfront-app/"&gt;cppfront-app&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Alexander Kornilov</dc:creator><pubDate>Wed, 10 Sep 2025 20:46:46 -0000</pubDate><guid>https://sourceforge.nete62c9c2c18970be28fbb0e1c01967a842e86f5c7</guid></item></channel></rss>