|
1 | 1 | fips_ide_group(nebula)
|
2 | 2 |
|
| 3 | +if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.31") |
| 4 | +cmake_policy(SET CMP0175 OLD) |
| 5 | +endif() |
3 | 6 | if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.27")
|
4 | 7 | cmake_policy(SET CMP0147 NEW)
|
5 | 8 | endif()
|
@@ -427,6 +430,26 @@ macro(nebula_idl_generate_cs_target)
|
427 | 430 | endforeach()
|
428 | 431 | endmacro()
|
429 | 432 |
|
| 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 | + |
430 | 453 | macro(add_frameshader_intern)
|
431 | 454 | foreach(frm ${ARGN})
|
432 | 455 | get_filename_component(basename ${frm} NAME)
|
@@ -541,40 +564,29 @@ macro(set_nebula_export_dir)
|
541 | 564 | MESSAGE(WARNING "Registry keys for project not found, did you set your workdir?")
|
542 | 565 | return()
|
543 | 566 | 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}) |
556 | 571 | 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) |
578 | 590 | endif()
|
579 | 591 | endmacro()
|
580 | 592 |
|
|
0 commit comments