Skip to content

Commit a74b1fc

Browse files
authored
Merge pull request #81 from bboczula/codex/issue-40-private-runtime-context
[codex] Create private runtime context implementation
2 parents eda47ec + 618f9a0 commit a74b1fc

15 files changed

Lines changed: 854 additions & 221 deletions

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ Asset loading entry points will build on these handle and descriptor types as th
179179
180180
Build the project with Premake-generated Visual Studio projects. The package output contains Debug and Release binaries plus the public SDK headers under `bin/<Config>/inc/AssetSuite`.
181181
182-
The installed public header surface is validated by `PublicHeaderCompile`, which compiles an external-consumer translation unit and checks that installed headers do not expose platform-specific, legacy, or STL-owning API types.
182+
The installed public header surface is validated by `PublicHeaderCompile`, which compiles an external-consumer translation unit and checks that installed headers do not expose platform-specific, legacy, STL-owning, or private runtime implementation types. The validation flow also verifies that installed headers remain under `AssetSuite/*.h`.
183183
184184
## Installation
185185

premake5.lua

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ COPY_RELEASE_LIB_FILE = "{COPY} %{cfg.targetdir}/assetsuite_r.lib %{cfg.targetdi
99
COPY_DEBUG_LIB_FILE = "{COPY} %{cfg.targetdir}/assetsuite_d.lib %{cfg.targetdir}/../lib"
1010
COPY_PUBLIC_HEADER_FILES = "{COPY} %{cfg.targetdir}/../../../include/AssetSuite/*.h %{cfg.targetdir}/../inc/AssetSuite"
1111
RUN_PUBLIC_HEADER_HYGIENE_CHECK = "powershell -NoProfile -ExecutionPolicy Bypass -File %{cfg.targetdir}/../../../validation/public_header_hygiene/PublicHeaderHygiene.ps1 -Roots include/AssetSuite,bin/%{cfg.buildcfg}/inc"
12+
RUN_PUBLIC_INSTALL_SURFACE_CHECK = "powershell -NoProfile -ExecutionPolicy Bypass -File %{cfg.targetdir}/../../../validation/public_header_hygiene/AssertPublicInstallSurface.ps1 -InstalledIncludeRoot bin/%{cfg.buildcfg}/inc"
1213
LOCATION_DIRECTORY_NAME = "build"
1314

1415
-- Global Functions
@@ -69,7 +70,8 @@ project "AssetSuite"
6970
}
7071
files {
7172
"include/AssetSuite/**.h",
72-
"source/common/**.h", "source/common/**.cpp"
73+
"source/common/**.h", "source/common/**.cpp",
74+
"source/runtime/**.h", "source/runtime/**.cpp"
7375
}
7476
SetDebugFilters()
7577
SetReleaseFilters()
@@ -165,8 +167,13 @@ project "UnitTest"
165167
language "C++"
166168
cppdialect "C++17"
167169
targetdir "bin/%{cfg.buildcfg}/tests"
168-
files { "unit_tests/**.h", "unit_tests/**.cpp" }
169-
links { "AssetSuite", "zlib", "bmp", "png", "ppm", "wavefront", "bitstream" }
170+
defines { "ASSETSUITE_UNIT_TEST_PRIVATE_RUNTIME" }
171+
files {
172+
"unit_tests/**.h", "unit_tests/**.cpp",
173+
"source/common/AssetSuiteContext.cpp",
174+
"source/runtime/**.cpp"
175+
}
176+
links { "AssetSuite", "zlib", "bmp", "png", "ppm", "bypass", "wavefront", "bitstream" }
170177
includedirs { "include" }
171178
SetDebugFilters()
172179
SetReleaseFilters()
@@ -186,7 +193,10 @@ project "PublicHeaderCompile"
186193
links { "AssetSuite" }
187194
includedirs { "bin/%{cfg.buildcfg}/inc" }
188195
dependson { "AssetSuite" }
189-
prebuildcommands { RUN_PUBLIC_HEADER_HYGIENE_CHECK }
196+
prebuildcommands {
197+
RUN_PUBLIC_INSTALL_SURFACE_CHECK,
198+
RUN_PUBLIC_HEADER_HYGIENE_CHECK
199+
}
190200
SetDebugFilters()
191201
SetReleaseFilters()
192202
filter "configurations:Debug"

0 commit comments

Comments
 (0)