Skip to content

Commit a76c36f

Browse files
committed
add support for addons
1 parent f293204 commit a76c36f

File tree

5 files changed

+60
-35
lines changed

5 files changed

+60
-35
lines changed

code/addons/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,4 @@ add_subdirectory(scripting)
1111
#add_subdirectory(staticui)
1212
add_subdirectory(tinyxml)
1313
add_subdirectory(nsharp)
14-
add_subdirectory(tbui)
14+
add_addon(tbui)

code/addons/graphicsfeature/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
nebula_begin_module(graphicsfeature)
2-
fips_deps(render application dynui tbui nflatbuffer)
2+
fips_deps(render application dynui nflatbuffer)
3+
add_addon_hook(tbui)
34
target_precompile_headers(graphicsfeature PRIVATE <application/stdneb.h>)
45
fips_ide_group(features)
56
fips_files(

code/addons/graphicsfeature/graphicsfeatureunit.cc

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
#include "graphics/cameracontext.h"
1010
#include "visibility/visibilitycontext.h"
1111
#include "dynui/imguicontext.h"
12+
#if WITH_NEBULA_ADDON_TBUI
1213
#include "tbui/tbuicontext.h"
14+
#endif
1315
#include "characters/charactercontext.h"
1416
#include "dynui/im3d/im3dcontext.h"
1517
#include "appgame/gameapplication.h"
@@ -155,7 +157,9 @@ GraphicsFeatureUnit::OnActivate()
155157
Im3d::Im3dContext::Create();
156158
Dynui::ImguiContext::Create();
157159
//StaticUI::StaticUIContext::Create();
160+
#if WITH_NEBULA_ADDON_TBUI
158161
TBUI::TBUIContext::Create();
162+
#endif
159163

160164
CameraContext::Create();
161165
ModelContext::Create();
@@ -288,7 +292,9 @@ GraphicsFeatureUnit::OnActivate()
288292
Util::Array<Graphics::ViewIndependentCall> preLogicCalls =
289293
{
290294
Dynui::ImguiContext::NewFrame,
295+
#if WITH_NEBULA_ADDON_TBUI
291296
TBUI::TBUIContext::FrameUpdate,
297+
#endif
292298
CameraContext::UpdateCameras,
293299
ModelContext::UpdateTransforms,
294300
Characters::CharacterContext::UpdateAnimations,
@@ -380,7 +386,9 @@ GraphicsFeatureUnit::OnDeactivate()
380386
Raytracing::RaytracingContext::Discard();
381387
Im3d::Im3dContext::Discard();
382388
Dynui::ImguiContext::Discard();
389+
#if WITH_NEBULA_ADDON_TBUI
383390
TBUI::TBUIContext::Discard();
391+
#endif
384392
FeatureUnit::OnDeactivate();
385393
DestroyWindow(this->wnd);
386394
this->gfxServer->DiscardStage(this->defaultStage);

fips-files/include.cmake

Lines changed: 45 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
fips_ide_group(nebula)
22

3+
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.31")
4+
cmake_policy(SET CMP0175 OLD)
5+
endif()
36
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.27")
47
cmake_policy(SET CMP0147 NEW)
58
endif()
@@ -427,6 +430,26 @@ macro(nebula_idl_generate_cs_target)
427430
endforeach()
428431
endmacro()
429432

433+
macro(add_addon)
434+
set_nebula_export_dir()
435+
foreach(addon ${ARGN})
436+
if(${addon} IN_LIST ADDON_LIST)
437+
add_subdirectory(${addon})
438+
endif()
439+
endforeach()
440+
endmacro()
441+
442+
macro(add_addon_hook)
443+
set_nebula_export_dir()
444+
foreach(addon ${ARGN})
445+
if(${addon} IN_LIST ADDON_LIST)
446+
fips_deps(${addon})
447+
string(TOUPPER ${addon} addon)
448+
add_compile_definitions(WITH_NEBULA_ADDON_${addon})
449+
endif()
450+
endforeach()
451+
endmacro()
452+
430453
macro(add_frameshader_intern)
431454
foreach(frm ${ARGN})
432455
get_filename_component(basename ${frm} NAME)
@@ -541,40 +564,29 @@ macro(set_nebula_export_dir)
541564
MESSAGE(WARNING "Registry keys for project not found, did you set your workdir?")
542565
return()
543566
endif()
544-
if(EXISTS ${workdir}/projectinfo.json)
545-
FILE(READ "${workdir}/projectinfo.json" projectJson)
546-
sbeParseJson(projectInfo projectJson)
547-
resolve_assigns(${projectInfo.DestDir} targetdir ${workdir})
548-
SET(EXPORT_DIR ${targetdir})
549-
set(WORK_DIR "${workdir}")
550-
else()
551-
MESSAGE(WARNING "No projectinfo found in project folder, setting default export")
552-
set(EXPORT_DIR "${workdir}/export")
553-
set(WORK_DIR "${workdir}")
554-
endif()
555-
567+
elseif(EXISTS $ENV{HOME}/.config/nebula/gscept.cfg)
568+
FILE(READ "$ENV{HOME}/.config/nebula/gscept.cfg" SettingsJson)
569+
sbeParseJson(Settings SettingsJson)
570+
set(workdir ${Settings.ToolkitShared.workdir})
556571
else()
557-
if(EXISTS $ENV{HOME}/.config/nebula/gscept.cfg)
558-
FILE(READ "$ENV{HOME}/.config/nebula/gscept.cfg" SettingsJson)
559-
sbeParseJson(Settings SettingsJson)
560-
set(workdir ${Settings.ToolkitShared.workdir})
561-
562-
if(EXISTS ${workdir}/projectinfo.json)
563-
FILE(READ "${workdir}/projectinfo.json" projectJson)
564-
sbeParseJson(projectInfo projectJson)
565-
resolve_assigns(${projectInfo.DestDir} targetdir ${workdir})
566-
SET(EXPORT_DIR ${targetdir})
567-
set(WORK_DIR "${workdir}")
568-
else()
569-
MESSAGE(WARNING "No projectinfo found in project folder, setting default export")
570-
set(EXPORT_DIR "${workdir}/export")
571-
set(WORK_DIR "${workdir}")
572-
endif()
573-
else()
574-
# use environment
575-
set(EXPORT_DIR $ENV{NEBULA_WORK}/export)
576-
set(WORK_DIR $ENV{NEBULA_WORK})
577-
endif()
572+
# use environment
573+
set(workdir $ENV{NEBULA_WORK})
574+
endif()
575+
if(EXISTS ${workdir}/projectinfo.json)
576+
file(READ "${workdir}/projectinfo.json" projectJson)
577+
sbeParseJson(projectInfo projectJson)
578+
resolve_assigns(${projectInfo.DestDir} targetdir ${workdir})
579+
set(EXPORT_DIR ${targetdir})
580+
set(WORK_DIR "${workdir}")
581+
set(ADDON_LIST "")
582+
foreach(addon ${projectInfo.Addons})
583+
list(APPEND ADDON_LIST ${projectInfo.Addons_${addon}})
584+
endforeach()
585+
else()
586+
MESSAGE(WARNING "No projectinfo found in project folder, setting default export")
587+
set(EXPORT_DIR "${workdir}/export")
588+
set(WORK_DIR "${workdir}")
589+
set(ADDON_LIST tbui)
578590
endif()
579591
endmacro()
580592

projectinfo.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,8 @@
4949
"Value": "toolkit:syswork/materials"
5050
}
5151
],
52+
"Addons":
53+
[
54+
"tbui",
55+
],
5256
}

0 commit comments

Comments
 (0)