Skip to content

Commit 0abf93f

Browse files
authored
Plugin config file (#43)
* Rename plugin info files * Handle plugin info in cmake * Cleaner cmake setup: define languages and check MSVC more robustly
1 parent 2d4a284 commit 0abf93f

34 files changed

Lines changed: 173 additions & 92 deletions

ExampleAnalysis/CMakeLists.txt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ option(MV_UNITY_BUILD "Combine target source files into batches for faster compi
55
# -----------------------------------------------------------------------------
66
# ExampleAnalysis Plugin
77
# -----------------------------------------------------------------------------
8-
PROJECT("ExampleAnalysisPlugin")
8+
PROJECT("ExampleAnalysisPlugin" LANGUAGES CXX)
99

1010
# -----------------------------------------------------------------------------
1111
# CMake Options
@@ -14,12 +14,12 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
1414
set(CMAKE_INCLUDE_CURRENT_DIR ON)
1515
set(CMAKE_AUTOMOC ON)
1616

17-
if(MSVC)
17+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
1818
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DWIN32 /EHsc /MP /permissive- /Zc:__cplusplus")
1919
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
2020
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MD")
2121
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")
22-
endif(MSVC)
22+
endif()
2323

2424
# -----------------------------------------------------------------------------
2525
# Dependencies
@@ -42,7 +42,7 @@ set(PLUGIN_SOURCES
4242
src/ExampleAnalysisPlugin.cpp
4343
src/SettingsAction.h
4444
src/SettingsAction.cpp
45-
src/ExampleAnalysisPlugin.json
45+
PluginInfo.json
4646
)
4747

4848
source_group(Plugin FILES ${PLUGIN_SOURCES})
@@ -99,11 +99,16 @@ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
9999
--prefix ${ManiVault_INSTALL_DIR}/$<CONFIGURATION>
100100
)
101101

102+
# Append plugin version to output file
103+
# 0 disables automatic folder placement (same as plugin type)
104+
# since we want to place all example plugins in a separate folder
105+
mv_handle_plugin_config(${PROJECT_NAME} 0)
106+
102107
# -----------------------------------------------------------------------------
103108
# Miscellaneous
104109
# -----------------------------------------------------------------------------
105110
# Automatically set the debug environment (command + working directory) for MSVC
106-
if(MSVC)
111+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
107112
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<IF:$<CONFIG:DEBUG>,${ManiVault_INSTALL_DIR}/Debug,$<IF:$<CONFIG:RELWITHDEBINFO>,${ManiVault_INSTALL_DIR}/RelWithDebInfo,${ManiVault_INSTALL_DIR}/Release>>)
108113
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_COMMAND $<IF:$<CONFIG:DEBUG>,"${ManiVault_INSTALL_DIR}/Debug/ManiVault Studio.exe",$<IF:$<CONFIG:RELWITHDEBINFO>,"${ManiVault_INSTALL_DIR}/RelWithDebInfo/ManiVault Studio.exe","${ManiVault_INSTALL_DIR}/Release/ManiVault Studio.exe">>)
109114
endif()

ExampleAnalysis/PluginInfo.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name" : "Example Analysis",
3+
"version" : {
4+
"plugin" : "1.4",
5+
"core" : ["1.3"]
6+
},
7+
"type" : "Analysis",
8+
"dependencies" : ["Points"]
9+
}

ExampleAnalysis/src/ExampleAnalysisPlugin.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,7 @@ class ExampleAnalysisPluginFactory : public AnalysisPluginFactory
150150
Q_INTERFACES(mv::plugin::AnalysisPluginFactory mv::plugin::PluginFactory)
151151
Q_OBJECT
152152
Q_PLUGIN_METADATA(IID "studio.manivault.ExampleAnalysisPlugin"
153-
FILE "ExampleAnalysisPlugin.json")
153+
FILE "PluginInfo.json")
154154

155155
public:
156156

ExampleAnalysis/src/ExampleAnalysisPlugin.json

Lines changed: 0 additions & 5 deletions
This file was deleted.

ExampleData/CMakeLists.txt

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ option(MV_UNITY_BUILD "Combine target source files into batches for faster compi
55
# -----------------------------------------------------------------------------
66
# ExampleData Plugin
77
# -----------------------------------------------------------------------------
8-
PROJECT("ExampleDataPlugin")
8+
PROJECT("ExampleDataPlugin" LANGUAGES CXX)
99

1010
# -----------------------------------------------------------------------------
1111
# CMake Options and Setup
@@ -14,12 +14,12 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
1414
set(CMAKE_INCLUDE_CURRENT_DIR ON)
1515
set(CMAKE_AUTOMOC ON)
1616

17-
if(MSVC)
17+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
1818
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DWIN32 /EHsc /MP /permissive- /Zc:__cplusplus")
1919
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
2020
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MD")
2121
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")
22-
endif(MSVC)
22+
endif()
2323

2424
# Include cmake tools
2525
include(GenerateExportHeader)
@@ -43,7 +43,7 @@ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../Common ${CMAKE_CURRENT_BINARY_DI
4343
set(PLUGIN_SOURCES
4444
src/ExampleDataPlugin.h
4545
src/ExampleDataPlugin.cpp
46-
src/ExampleDataPlugin.json
46+
PluginInfo.json
4747
)
4848

4949
set(PLUGIN_HEADERS
@@ -120,11 +120,16 @@ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
120120
--prefix ${ManiVault_INSTALL_DIR}/$<CONFIGURATION>
121121
)
122122

123+
# Append plugin version to output file
124+
# 0 disables automatic folder placement (same as plugin type)
125+
# since we want to place all example plugins in a separate folder
126+
mv_handle_plugin_config(${PROJECT_NAME} 0)
127+
123128
# -----------------------------------------------------------------------------
124129
# Miscellaneous
125130
# -----------------------------------------------------------------------------
126131
# Automatically set the debug environment (command + working directory) for MSVC
127-
if(MSVC)
132+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
128133
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<IF:$<CONFIG:DEBUG>,${ManiVault_INSTALL_DIR}/Debug,$<IF:$<CONFIG:RELWITHDEBINFO>,${ManiVault_INSTALL_DIR}/RelWithDebInfo,${ManiVault_INSTALL_DIR}/Release>>)
129134
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_COMMAND $<IF:$<CONFIG:DEBUG>,"${ManiVault_INSTALL_DIR}/Debug/ManiVault Studio.exe",$<IF:$<CONFIG:RELWITHDEBINFO>,"${ManiVault_INSTALL_DIR}/RelWithDebInfo/ManiVault Studio.exe","${ManiVault_INSTALL_DIR}/Release/ManiVault Studio.exe">>)
130135
endif()

ExampleData/PluginInfo.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name" : "Example Data",
3+
"version" : {
4+
"plugin" : "1.4",
5+
"core" : ["1.3"]
6+
},
7+
"type" : "Data",
8+
"dependencies" : []
9+
}

ExampleData/src/ExampleDataPlugin.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ class ExampleDataPluginFactory : public RawDataFactory
110110
Q_INTERFACES(mv::plugin::RawDataFactory mv::plugin::PluginFactory)
111111
Q_OBJECT
112112
Q_PLUGIN_METADATA(IID "studio.manivault.ExampleDataPlugin"
113-
FILE "ExampleDataPlugin.json")
113+
FILE "PluginInfo.json")
114114

115115
public:
116116
ExampleDataPluginFactory();

ExampleData/src/ExampleDataPlugin.json

Lines changed: 0 additions & 5 deletions
This file was deleted.

ExampleDependencies/CMakeLists.txt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ option(MV_UNITY_BUILD "Combine target source files into batches for faster compi
55
# -----------------------------------------------------------------------------
66
# ExampleAnalysis Plugin
77
# -----------------------------------------------------------------------------
8-
PROJECT("ExampleDependenciesPlugin")
8+
PROJECT("ExampleDependenciesPlugin" LANGUAGES CXX C)
99

1010
# -----------------------------------------------------------------------------
1111
# CMake Options
@@ -14,12 +14,12 @@ set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
1414
set(CMAKE_INCLUDE_CURRENT_DIR ON)
1515
set(CMAKE_AUTOMOC ON)
1616

17-
if(MSVC)
17+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
1818
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /DWIN32 /EHsc /MP /permissive- /Zc:__cplusplus")
1919
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MDd")
2020
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} /MD")
2121
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MD")
22-
endif(MSVC)
22+
endif()
2323

2424
include(cmake/get_cpm.cmake)
2525

@@ -40,7 +40,7 @@ CPMAddPackage(
4040
OPTIONS "HWY_ENABLE_EXAMPLES OFF" "HWY_ENABLE_INSTALL OFF" "HWY_ENABLE_TESTS OFF" "HWY_ENABLE_CONTRIB ON" "BUILD_SHARED_LIBS ON"
4141
)
4242

43-
if (MSVC)
43+
if (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
4444
set_target_properties(hwy_test PROPERTIES EXCLUDE_FROM_ALL True)
4545
set_target_properties(hwy_list_targets PROPERTIES EXCLUDE_FROM_ALL True)
4646
endif()
@@ -68,7 +68,7 @@ set(PLUGIN_SOURCES
6868
src/ExampleDependenciesPlugin.cpp
6969
src/SettingsAction.h
7070
src/SettingsAction.cpp
71-
src/ExampleDependenciesPlugin.json
71+
PluginInfo.json
7272
)
7373

7474
source_group(Plugin FILES ${PLUGIN_SOURCES})
@@ -151,11 +151,16 @@ set_target_properties(hwy hwy_contrib hwy_list_targets hwy_test
151151
# Automatically available when using find_package(ManiVault)
152152
mv_install_dependencies(${PROJECT_NAME} "hwy" "hwy_contrib")
153153

154+
# Append plugin version to output file
155+
# 0 disables automatic folder placement (same as plugin type)
156+
# since we want to place all example plugins in a separate folder
157+
mv_handle_plugin_config(${PROJECT_NAME} 0)
158+
154159
# -----------------------------------------------------------------------------
155160
# Miscellaneous
156161
# -----------------------------------------------------------------------------
157162
# Automatically set the debug environment (command + working directory) for MSVC
158-
if(MSVC)
163+
if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
159164
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY $<IF:$<CONFIG:DEBUG>,${ManiVault_INSTALL_DIR}/Debug,$<IF:$<CONFIG:RELWITHDEBINFO>,${ManiVault_INSTALL_DIR}/RelWithDebInfo,${ManiVault_INSTALL_DIR}/Release>>)
160165
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_COMMAND $<IF:$<CONFIG:DEBUG>,"${ManiVault_INSTALL_DIR}/Debug/ManiVault Studio.exe",$<IF:$<CONFIG:RELWITHDEBINFO>,"${ManiVault_INSTALL_DIR}/RelWithDebInfo/ManiVault Studio.exe","${ManiVault_INSTALL_DIR}/Release/ManiVault Studio.exe">>)
161166
endif()
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"name" : "Example Dependencies",
3+
"version" : {
4+
"plugin" : "1.4",
5+
"core" : ["1.3"]
6+
},
7+
"type" : "Analysis",
8+
"dependencies" : ["Points"]
9+
}

0 commit comments

Comments
 (0)