diff --git a/changelog/betterC_build_option.dd b/changelog/betterC_build_option.dd new file mode 100644 index 0000000..a9628f6 --- /dev/null +++ b/changelog/betterC_build_option.dd @@ -0,0 +1,13 @@ +betterC build option has been added + +This build option can be used to pass `-betterC` argument to DMD or LDC: + +dub.json: +--- +"buildOptions": ["betterC"] +--- + +dub.sdl: +--- +buildOptions "betterC" +--- diff --git a/source/dub/compilers/buildsettings.d b/source/dub/compilers/buildsettings.d index 28b98be..939a1f1 100644 --- a/source/dub/compilers/buildsettings.d +++ b/source/dub/compilers/buildsettings.d @@ -300,9 +300,11 @@ property = 1<<20, /// DEPRECATED: Enforce property syntax (-property) profileGC = 1<<21, /// Profile runtime allocations pic = 1<<22, /// Generate position independent code + betterC = 1<<23, /// Compile in betterC mode (-betterC) + // for internal usage - _docs = 1<<23, // Write ddoc to docs - _ddox = 1<<24 // Compile docs.json + _docs = 1<<24, // Write ddoc to docs + _ddox = 1<<25 // Compile docs.json } struct BuildOptions { diff --git a/source/dub/compilers/dmd.d b/source/dub/compilers/dmd.d index 856cdae..be04a79 100644 --- a/source/dub/compilers/dmd.d +++ b/source/dub/compilers/dmd.d @@ -46,6 +46,7 @@ tuple(BuildOption.deprecationErrors, ["-de"]), tuple(BuildOption.property, ["-property"]), tuple(BuildOption.profileGC, ["-profile=gc"]), + tuple(BuildOption.betterC, ["-betterC"]), tuple(BuildOption._docs, ["-Dddocs"]), tuple(BuildOption._ddox, ["-Xfdocs.json", "-Df__dummy.html"]), diff --git a/source/dub/compilers/ldc.d b/source/dub/compilers/ldc.d index f09e133..04135da 100644 --- a/source/dub/compilers/ldc.d +++ b/source/dub/compilers/ldc.d @@ -46,6 +46,7 @@ tuple(BuildOption.deprecationErrors, ["-de"]), tuple(BuildOption.property, ["-property"]), //tuple(BuildOption.profileGC, ["-?"]), + tuple(BuildOption.betterC, ["-betterC"]), tuple(BuildOption._docs, ["-Dd=docs"]), tuple(BuildOption._ddox, ["-Xf=docs.json", "-Dd=__dummy_docs"]), diff --git a/test/issue1427-betterC/.gitignore b/test/issue1427-betterC/.gitignore new file mode 100644 index 0000000..0fd9d37 --- /dev/null +++ b/test/issue1427-betterC/.gitignore @@ -0,0 +1,4 @@ +test +*.o +*.exe +.dub \ No newline at end of file diff --git a/test/issue1427-betterC/.min_frontend b/test/issue1427-betterC/.min_frontend new file mode 100644 index 0000000..67aaf4a --- /dev/null +++ b/test/issue1427-betterC/.min_frontend @@ -0,0 +1 @@ +2.078 diff --git a/test/issue1427-betterC/.no_run b/test/issue1427-betterC/.no_run new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/issue1427-betterC/.no_run diff --git a/test/issue1427-betterC/.no_test b/test/issue1427-betterC/.no_test new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/test/issue1427-betterC/.no_test diff --git a/test/issue1427-betterC/dub.json b/test/issue1427-betterC/dub.json new file mode 100644 index 0000000..d6e9256 --- /dev/null +++ b/test/issue1427-betterC/dub.json @@ -0,0 +1,4 @@ +{ + "name": "test", + "buildOptions": ["betterC"] +} \ No newline at end of file diff --git a/test/issue1427-betterC/source/app.d b/test/issue1427-betterC/source/app.d new file mode 100644 index 0000000..ca1a7ca --- /dev/null +++ b/test/issue1427-betterC/source/app.d @@ -0,0 +1,3 @@ +version(D_BetterC) {} else static assert(false); + +extern(C) void main() { } \ No newline at end of file