Export LDC_RuntimeCompilation version when runtime compilation is enabled

This commit is contained in:
Ivan 2017-08-27 13:38:16 +03:00
parent 0ef4edb0fb
commit 482b822d73
4 changed files with 18 additions and 1 deletions

View file

@ -946,6 +946,10 @@ void registerPredefinedVersions() {
VersionCondition::addPredefinedGlobalIdent("D_ObjectiveC"); VersionCondition::addPredefinedGlobalIdent("D_ObjectiveC");
} }
if (global.params.enableRuntimeCompile) {
VersionCondition::addPredefinedGlobalIdent("LDC_RuntimeCompilation");
}
// Define sanitizer versions. // Define sanitizer versions.
if (opts::isSanitizerEnabled(opts::AddressSanitizer)) { if (opts::isSanitizerEnabled(opts::AddressSanitizer)) {
VersionCondition::addPredefinedGlobalIdent("LDC_AddressSanitizer"); VersionCondition::addPredefinedGlobalIdent("LDC_AddressSanitizer");

View file

@ -53,7 +53,7 @@ if(LDC_RUNTIME_COMPILE)
set(jitrt_d_o "") set(jitrt_d_o "")
set(jitrt_d_bc "") set(jitrt_d_bc "")
compile_jit_rt_D("${d_flags}" "" "${path_suffix}" "${COMPILE_ALL_D_FILES_AT_ONCE}" jitrt_d_o jitrt_d_bc) compile_jit_rt_D("-enable-runtime-compile;${d_flags}" "" "${path_suffix}" "${COMPILE_ALL_D_FILES_AT_ONCE}" jitrt_d_o jitrt_d_bc)
add_library(ldc-jit-rt${target_suffix} STATIC ${jitrt_d_o} ${LDC_JITRT_CXX}) add_library(ldc-jit-rt${target_suffix} STATIC ${jitrt_d_o} ${LDC_JITRT_CXX})
set_target_properties( set_target_properties(

View file

@ -1,5 +1,8 @@
module ldc.runtimecompile; module ldc.runtimecompile;
version(LDC_RuntimeCompilation)
{
struct CompilerSettings struct CompilerSettings
{ {
uint optLevel = 0; uint optLevel = 0;
@ -69,3 +72,5 @@ align(1):
} }
extern void rtCompileProcessImpl(const ref Context context, size_t contextSize); extern void rtCompileProcessImpl(const ref Context context, size_t contextSize);
} }
}

View file

@ -5,6 +5,14 @@ import std.stdio;
import ldc.attributes; import ldc.attributes;
import ldc.runtimecompile; import ldc.runtimecompile;
version(LDC_RuntimeCompilation)
{
}
else
{
static assert(false, "LDC_RuntimeCompilation is not defined");
}
@runtimeCompile int foo() @runtimeCompile int foo()
{ {
return 5; return 5;