Currently, my engine is using export
for debug builds, while I wanted to not export
things for release build.
That happens because I structured the engine to load a game as a DLL when in development. But for releases, it gets all built together. The problem is that the symbols are still export
ed. And exporting a symbol increases binary size needlessly and also (possibly) losing some optimization opportunities since that symbol is exposed.
version(Standalone)
{
extern(System):
}
else version(dll): export extern(System):
int[2] getWindowSize(){return [HipRenderer.width, HipRenderer.height];}
void setWindowSize(uint width, uint height)
{
HipRenderer.setWindowSize(width, height);
HipRenderer.setViewport(viewport);
camera.setSize(cast(int)viewport.worldWidth,cast(int)viewport.worldHeight);
}
This is basically what I'm needing. I know that asking for that may be a chaos. But it would be good to at least have something like export(dll)
or something like that, so, at least I would be able to use version
for identifying if I need that exported or not.
That would basically mean, if I'm specifying -version=dll
, export
would work, else, it won't matter.