summaryrefslogtreecommitdiffstats
path: root/source/slang
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2020-09-24 14:30:12 -0700
committerGitHub <noreply@github.com>2020-09-24 14:30:12 -0700
commitb72353ec3fe529237828cacbe710233d31eb4837 (patch)
tree2aec9af97efe52b722cb730f8db1c44641e58c62 /source/slang
parent150218bec9e992d32833dd9a0c1396a4d7c12b7e (diff)
Enable default cpp prelude. (#1560)
* Enable default cpp prelude. * Print the "#include" line as a normal source if the file does not exist. * Bug fix * Fix. * Fix c++ prelude header. * Remove unnecessary fopen call.
Diffstat (limited to 'source/slang')
-rw-r--r--source/slang/run-generators.vcxproj30
-rw-r--r--source/slang/run-generators.vcxproj.filters14
-rw-r--r--source/slang/slang.cpp10
-rw-r--r--source/slang/slang.vcxproj1
-rw-r--r--source/slang/slang.vcxproj.filters3
5 files changed, 22 insertions, 36 deletions
diff --git a/source/slang/run-generators.vcxproj b/source/slang/run-generators.vcxproj
index 41f61f01d..82b993466 100644
--- a/source/slang/run-generators.vcxproj
+++ b/source/slang/run-generators.vcxproj
@@ -154,6 +154,10 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClInclude Include="..\..\prelude\slang-cpp-scalar-intrinsics.h" />
+ <ClInclude Include="..\..\prelude\slang-cpp-types.h" />
+ </ItemGroup>
+ <ItemGroup>
<ClCompile Include="..\core\slang-string.cpp" />
</ItemGroup>
<ItemGroup>
@@ -170,32 +174,6 @@
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../bin/windows-x86/release/slang-embed.exe</AdditionalInputs>
<AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../../bin/windows-x64/release/slang-embed.exe</AdditionalInputs>
</CustomBuild>
- <CustomBuild Include="..\..\prelude\slang-cpp-scalar-intrinsics.h">
- <FileType>Document</FileType>
- <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"../../bin/windows-x86/debug/slang-embed" %(Identity)</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"../../bin/windows-x64/debug/slang-embed" %(Identity)</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"../../bin/windows-x86/release/slang-embed" %(Identity)</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"../../bin/windows-x64/release/slang-embed" %(Identity)</Command>
- <Outputs>../../prelude/slang-cpp-scalar-intrinsics.h.cpp</Outputs>
- <Message>slang-embed %(Identity)</Message>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../bin/windows-x86/debug/slang-embed.exe</AdditionalInputs>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../../bin/windows-x64/debug/slang-embed.exe</AdditionalInputs>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../bin/windows-x86/release/slang-embed.exe</AdditionalInputs>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../../bin/windows-x64/release/slang-embed.exe</AdditionalInputs>
- </CustomBuild>
- <CustomBuild Include="..\..\prelude\slang-cpp-types.h">
- <FileType>Document</FileType>
- <Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"../../bin/windows-x86/debug/slang-embed" %(Identity)</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">"../../bin/windows-x64/debug/slang-embed" %(Identity)</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">"../../bin/windows-x86/release/slang-embed" %(Identity)</Command>
- <Command Condition="'$(Configuration)|$(Platform)'=='Release|x64'">"../../bin/windows-x64/release/slang-embed" %(Identity)</Command>
- <Outputs>../../prelude/slang-cpp-types.h.cpp</Outputs>
- <Message>slang-embed %(Identity)</Message>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">../../bin/windows-x86/debug/slang-embed.exe</AdditionalInputs>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">../../bin/windows-x64/debug/slang-embed.exe</AdditionalInputs>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">../../bin/windows-x86/release/slang-embed.exe</AdditionalInputs>
- <AdditionalInputs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">../../bin/windows-x64/release/slang-embed.exe</AdditionalInputs>
- </CustomBuild>
<CustomBuild Include="..\..\prelude\slang-cuda-prelude.h">
<FileType>Document</FileType>
<Command Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">"../../bin/windows-x86/debug/slang-embed" %(Identity)</Command>
diff --git a/source/slang/run-generators.vcxproj.filters b/source/slang/run-generators.vcxproj.filters
index 6a51d5ba7..e8ec8394a 100644
--- a/source/slang/run-generators.vcxproj.filters
+++ b/source/slang/run-generators.vcxproj.filters
@@ -9,6 +9,14 @@
</Filter>
</ItemGroup>
<ItemGroup>
+ <ClInclude Include="..\..\prelude\slang-cpp-scalar-intrinsics.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\prelude\slang-cpp-types.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+ <ItemGroup>
<ClCompile Include="..\core\slang-string.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -17,12 +25,6 @@
<CustomBuild Include="..\..\prelude\slang-cpp-prelude.h">
<Filter>Header Files</Filter>
</CustomBuild>
- <CustomBuild Include="..\..\prelude\slang-cpp-scalar-intrinsics.h">
- <Filter>Header Files</Filter>
- </CustomBuild>
- <CustomBuild Include="..\..\prelude\slang-cpp-types.h">
- <Filter>Header Files</Filter>
- </CustomBuild>
<CustomBuild Include="..\..\prelude\slang-cuda-prelude.h">
<Filter>Header Files</Filter>
</CustomBuild>
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp
index 1086338f4..572c9c3a3 100644
--- a/source/slang/slang.cpp
+++ b/source/slang/slang.cpp
@@ -41,8 +41,9 @@
#undef NOMINMAX
#endif
-extern char const* slang_cuda_prelude;
-extern char const* slang_hlsl_prelude;
+extern Slang::String get_slang_cuda_prelude();
+extern Slang::String get_slang_cpp_prelude();
+extern Slang::String get_slang_hlsl_prelude();
namespace Slang {
@@ -189,8 +190,9 @@ void Session::init()
}
// Set up default prelude code for target languages that need a prelude
- m_languagePreludes[Index(SourceLanguage::CUDA)] = slang_cuda_prelude;
- m_languagePreludes[Index(SourceLanguage::HLSL)] = slang_hlsl_prelude;
+ m_languagePreludes[Index(SourceLanguage::CUDA)] = get_slang_cuda_prelude();
+ m_languagePreludes[Index(SourceLanguage::CPP)] = get_slang_cpp_prelude();
+ m_languagePreludes[Index(SourceLanguage::HLSL)] = get_slang_hlsl_prelude();
}
ISlangUnknown* Session::getInterface(const Guid& guid)
diff --git a/source/slang/slang.vcxproj b/source/slang/slang.vcxproj
index a5d51e36b..d98a29118 100644
--- a/source/slang/slang.vcxproj
+++ b/source/slang/slang.vcxproj
@@ -298,6 +298,7 @@
<ClInclude Include="slang-visitor.h" />
</ItemGroup>
<ItemGroup>
+ <ClCompile Include="..\..\prelude\slang-cpp-prelude.h.cpp" />
<ClCompile Include="..\..\prelude\slang-cuda-prelude.h.cpp" />
<ClCompile Include="..\..\prelude\slang-hlsl-prelude.h.cpp" />
<ClCompile Include="slang-ast-builder.cpp" />
diff --git a/source/slang/slang.vcxproj.filters b/source/slang/slang.vcxproj.filters
index fec82a8f5..b9f9d69c0 100644
--- a/source/slang/slang.vcxproj.filters
+++ b/source/slang/slang.vcxproj.filters
@@ -341,6 +341,9 @@
</ClInclude>
</ItemGroup>
<ItemGroup>
+ <ClCompile Include="..\..\prelude\slang-cpp-prelude.h.cpp">
+ <Filter>Header Files</Filter>
+ </ClCompile>
<ClCompile Include="..\..\prelude\slang-cuda-prelude.h.cpp">
<Filter>Header Files</Filter>
</ClCompile>