@@ -7,18 +7,7 @@ option(MV_UNITY_BUILD "Combine target source files into batches for faster compi
77# -----------------------------------------------------------------------------
88set (PROJECT "ScatterplotPlugin" )
99
10- set (PLUGIN_CONFIG_FILE "${CMAKE_CURRENT_SOURCE_DIR} /PluginInfo.json" )
11-
12- if (NOT EXISTS "${PLUGIN_CONFIG_FILE} " )
13- message (FATAL_ERROR "JSON file not found: ${PLUGIN_CONFIG_FILE} " )
14- endif ()
15-
16- file (READ ${PLUGIN_CONFIG_FILE} PLUGIN_INFO_JSON)
17- string (JSON PLUGIN_VERSION GET "${PLUGIN_INFO_JSON} " version plugin)
18- message (STATUS "PLUGIN_VERSION: ${PLUGIN_VERSION} " )
19-
2010PROJECT (${PROJECT}
21- VERSION ${PLUGIN_VERSION}
2211 DESCRIPTION "A scatterplot viewer plugin for ManiVault"
2312 LANGUAGES CXX
2413)
@@ -158,11 +147,44 @@ add_custom_command(TARGET ${PROJECT} POST_BUILD
158147 --prefix ${ManiVault_INSTALL_DIR} /$<CONFIGURATION >
159148)
160149
150+ # Read config file
151+ set (PLUGIN_CONFIG_FILE "${CMAKE_CURRENT_SOURCE_DIR} /PluginInfo.json" )
152+
153+ if (NOT EXISTS "${PLUGIN_CONFIG_FILE} " )
154+ message (FATAL_ERROR "JSON file not found: ${PLUGIN_CONFIG_FILE} " )
155+ endif ()
156+
157+ file (READ ${PLUGIN_CONFIG_FILE} PLUGIN_INFO_JSON)
158+
159+ # Check if config file contains certain entries
160+ set (HAS_PLUGIN_TYPE 0)
161+
162+ # Get the number of top-level keys
163+ string (JSON TOP_LEVEL_COUNT LENGTH "${PLUGIN_INFO_JSON} " )
164+
165+ math (EXPR LAST_INDEX "${TOP_LEVEL_COUNT} - 1" )
166+ foreach (I RANGE 0 ${LAST_INDEX} )
167+ string (JSON KEY_NAME MEMBER "${PLUGIN_INFO_JSON} " ${I} )
168+ if ("${KEY_NAME} " STREQUAL "type" )
169+ set (HAS_PLUGIN_TYPE 1)
170+ endif ()
171+ endforeach ()
172+
173+ # Extract plugin version
174+ string (JSON PLUGIN_VERSION GET "${PLUGIN_INFO_JSON} " version plugin)
175+ message (STATUS "PLUGIN_VERSION: ${PLUGIN_VERSION} " )
161176set_target_properties (${PROJECT} PROPERTIES
162- FOLDER ViewPlugins
163177 OUTPUT_NAME "${PROJECT} _p${PLUGIN_VERSION} _c${ManiVault_VERSION} "
164178)
165179
180+ # Extract plugin type
181+ if (HAS_PLUGIN_TYPE)
182+ string (JSON PLUGIN_TYPE GET "${PLUGIN_INFO_JSON} " type )
183+ set_target_properties (${PROJECT} PROPERTIES
184+ FOLDER "${PLUGIN_TYPE} Plugins"
185+ )
186+ endif ()
187+
166188# -----------------------------------------------------------------------------
167189# Miscellaneous
168190# -----------------------------------------------------------------------------
0 commit comments