Skip to content

Commit 47b5653

Browse files
committed
Create new plugin to move code related to adaptivity
1 parent 477df1a commit 47b5653

6 files changed

Lines changed: 110 additions & 2 deletions

File tree

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ sofa_find_package(Sofa.GL REQUIRED)
1111

1212
set(README_FILE README.md)
1313

14-
option(SOFA-PLUGIN_SHELLS_ADAPTIVITY "Enables shells adaptivity" OFF)
15-
1614
# List all files
1715
set(SHELL_SRC_DIR src/Shell)
1816
set(HEADER_FILES
@@ -124,3 +122,5 @@ sofa_create_package_with_targets(
124122
INCLUDE_INSTALL_DIR ${PROJECT_NAME}
125123
RELOCATABLE "plugins"
126124
)
125+
126+
sofa_add_subdirectory(plugin extensions/Shell.Adaptivity Shell.Adaptivity)
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# CMakeLists.txt for Shell.Adaptivity plugin
2+
cmake_minimum_required(VERSION 3.12)
3+
project(Shell.Adaptivity VERSION 1.0 LANGUAGES CXX)
4+
5+
find_package(Sofa.Config REQUIRED)
6+
sofa_find_package(Shell REQUIRED)
7+
8+
set(HEADER_FILES
9+
src/Shell/Adaptivity/config.h.in
10+
src/Shell/Adaptivity/init.h
11+
)
12+
13+
set(SOURCE_FILES
14+
src/Shell/Adaptivity/init.cpp
15+
)
16+
17+
add_library(${PROJECT_NAME} SHARED ${HEADER_FILES} ${SOURCE_FILES})
18+
target_link_libraries(${PROJECT_NAME} PUBLIC Shell)
19+
20+
sofa_create_package_with_targets(
21+
PACKAGE_NAME ${PROJECT_NAME}
22+
PACKAGE_VERSION ${PROJECT_VERSION}
23+
TARGETS ${PROJECT_NAME} AUTO_SET_TARGET_PROPERTIES
24+
INCLUDE_SOURCE_DIR "src"
25+
INCLUDE_INSTALL_DIR ${PROJECT_NAME}
26+
RELOCATABLE "plugins"
27+
)
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# CMake package configuration file for the plugin @PROJECT_NAME@
2+
3+
@PACKAGE_GUARD@
4+
@PACKAGE_INIT@
5+
6+
find_package(Shell QUIET REQUIRED)
7+
8+
if(NOT TARGET @PROJECT_NAME@)
9+
include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake")
10+
endif()
11+
12+
check_required_components(Shell.Adaptivity)
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#pragma once
2+
#include <sofa/config.h>
3+
4+
#ifdef SOFA_BUILD_SHELL_ADAPTIVITY
5+
# define SOFA_TARGET @PROJECT_NAME@
6+
# define SHELL_ADAPTIVITY_API SOFA_EXPORT_DYNAMIC_LIBRARY
7+
#else
8+
# define SHELL_ADAPTIVITY_API SOFA_IMPORT_DYNAMIC_LIBRARY
9+
#endif
10+
11+
namespace shelladaptivity
12+
{
13+
constexpr const char* MODULE_NAME = "@PROJECT_NAME@";
14+
constexpr const char* MODULE_VERSION = "@PROJECT_VERSION@";
15+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#include <Shell.Adaptivity/init.h>
2+
#include <sofa/core/ObjectFactory.h>
3+
4+
namespace shelladaptivity
5+
{
6+
7+
void initializePlugin()
8+
{
9+
static bool first = true;
10+
if (first) {
11+
first = false;
12+
// Register components here
13+
}
14+
}
15+
16+
}
17+
18+
extern "C"
19+
{
20+
SHELL_ADAPTIVITY_API void initExternalModule()
21+
{
22+
shelladaptivity::initializePlugin();
23+
}
24+
25+
SHELL_ADAPTIVITY_API const char* getModuleName()
26+
{
27+
return shelladaptivity::MODULE_NAME;
28+
}
29+
30+
SHELL_ADAPTIVITY_API const char* getModuleVersion()
31+
{
32+
return shelladaptivity::MODULE_VERSION;
33+
}
34+
35+
SHELL_ADAPTIVITY_API const char* getModuleLicense()
36+
{
37+
return "LGPL";
38+
}
39+
40+
SHELL_ADAPTIVITY_API const char* getModuleDescription()
41+
{
42+
return "SOFA plugin for Shell.Adaptivity";
43+
}
44+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#pragma once
2+
#include <Shell.Adaptivity/config.h>
3+
4+
namespace shelladaptivity
5+
{
6+
7+
/** Initialize the Shell.Adaptivity plugin */
8+
void SHELL_ADAPTIVITY_API initializePlugin();
9+
10+
}

0 commit comments

Comments
 (0)