Commit 6ad5cd21 authored by jcfr's avatar jcfr
Browse files

COMP: Rename Slicer3_BUILD_MODULES into Slicer_BUILD_MODULES

git-svn-id: http://svn.slicer.org/Slicer4/trunk@15095 3bd1e089-480b-0410-8dfb-8563597acbee
parent 42e41181
......@@ -33,10 +33,10 @@ if(BUILD_SHARED_LIBS)
"\"${Slicer3_FORWARD_DIR_BUILD}\" CONFIG_DIR_POST,\"${VTK_DIR}/bin\" CONFIG_DIR_POST,\"${KWWidgets_RUNTIME_DIRS}\" CONFIG_DIR_POST,\"${ITK_DIR}/bin\" CONFIG_DIR_POST,\"${Teem_DIR}/bin\" CONFIG_DIR_POST,\"${TCL_DIR}/bin\",\"${INCR_TCL_LIBRARY_PATH}\",\"${INCR_TK_LIBRARY_PATH}\"")
set(Slicer3_FORWARD_PATH_INSTALL
"\"../lib/TclTk/bin\",\"../lib/TclTk/lib/itcl${INCR_TCL_VERSION_DOT}\",\"../lib/TclTk/lib/itk${INCR_TCL_VERSION_DOT}\"")
if(Slicer3_BUILD_MODULES)
if(Slicer_BUILD_MODULES)
set(Slicer3_FORWARD_PATH_BUILD
"${Slicer3_FORWARD_PATH_BUILD},\"${Slicer3_HOME}/${Slicer_INSTALL_MODULES_BIN_DIR}\" CONFIG_DIR_POST")
endif(Slicer3_BUILD_MODULES)
endif(Slicer_BUILD_MODULES)
if(Slicer_BUILD_CLI)
set(Slicer3_FORWARD_PATH_BUILD
"${Slicer3_FORWARD_PATH_BUILD},\"${Slicer3_HOME}/${Slicer_INSTALL_PLUGINS_BIN_DIR}\" CONFIG_DIR_POST")
......@@ -46,19 +46,19 @@ if(BUILD_SHARED_LIBS)
"\"${Slicer3_FORWARD_DIR_BUILD}\",\"${VTK_DIR}/bin\",\"${KWWidgets_RUNTIME_DIRS}\",\"${ITK_DIR}/bin\",\"${Teem_DIR}/bin\",\"${TCL_DIR}/bin\",\"${INCR_TCL_LIBRARY_PATH}\",\"${INCR_TK_LIBRARY_PATH}\",\"${OPENGL_gl_LIBRARY_PATH}\"")
set(Slicer3_FORWARD_PATH_INSTALL
"\"../${Slicer_INSTALL_LIB_DIR}\",\"../lib/vtk-${VTK_MAJOR_VERSION}.${VTK_MINOR_VERSION}\",\"../lib/KWWidgets\",\"../lib/InsightToolkit\",\"../lib/Teem-${Teem_VERSION_MAJOR}.${Teem_VERSION_MINOR}\",\"../lib/TclTk/lib\",\"../lib/TclTk/lib/itcl${INCR_TCL_VERSION_DOT}\",\"../lib/TclTk/lib/itk${INCR_TCL_VERSION_DOT}\",\"../lib/FreeSurfer\",\"../lib/IGT\",\"../lib/ITKCommandIO\",\"../lib/LoadableModule\",\"../lib/MGHImageIO\",\"../lib/MRML\",\"../lib/ModuleDescriptionParser\",\"../lib/MRMLIDImageIO\",\"../lib/Qdec\",\"../lib/RemoteIO\",\"../lib/SlicerIO\",\"../lib/tclap\",\"../lib/vtkITK\",\"../lib/vtkTeem\"")
if(Slicer3_BUILD_MODULES)
if(Slicer_BUILD_MODULES)
set(Slicer3_FORWARD_PATH_BUILD
"${Slicer3_FORWARD_PATH_BUILD},\"${Slicer3_HOME}/${Slicer_INSTALL_MODULES_BIN_DIR}\"")
endif(Slicer3_BUILD_MODULES)
endif(Slicer_BUILD_MODULES)
if(Slicer_BUILD_CLI)
set(Slicer3_FORWARD_PATH_BUILD
"${Slicer3_FORWARD_PATH_BUILD},\"${Slicer3_HOME}/${Slicer_INSTALL_PLUGINS_BIN_DIR}\"")
endif(Slicer_BUILD_CLI)
endif(WIN32)
if(Slicer3_BUILD_MODULES)
if(Slicer_BUILD_MODULES)
set(Slicer3_FORWARD_PATH_INSTALL
"${Slicer3_FORWARD_PATH_INSTALL},\"../${Slicer_INSTALL_MODULES_BIN_DIR}\"")
endif(Slicer3_BUILD_MODULES)
endif(Slicer_BUILD_MODULES)
if(Slicer_BUILD_CLI)
set(Slicer3_FORWARD_PATH_INSTALL
"${Slicer3_FORWARD_PATH_INSTALL},\"../${Slicer_INSTALL_PLUGINS_BIN_DIR}\"")
......@@ -156,9 +156,9 @@ set(dir_list
${SlicerDaemon_Init_BINARY_DIR}
)
if(Slicer3_BUILD_MODULES)
add_definitions(-DSlicer3_BUILD_MODULES)
endif(Slicer3_BUILD_MODULES)
if(Slicer_BUILD_MODULES)
add_definitions(-DSlicer_BUILD_MODULES)
endif(Slicer_BUILD_MODULES)
if(Slicer_BUILD_CLI)
add_definitions(-DSlicer_BUILD_CLI)
......@@ -224,7 +224,7 @@ target_link_libraries(Slicer3${Slicer3_EXE_SUFFIX}
# ${SLICERLIBCURL_LIBRARIES}
)
if(Slicer3_BUILD_MODULES)
if(Slicer_BUILD_MODULES)
target_link_libraries(Slicer3${Slicer3_EXE_SUFFIX}
Volumes
CommandLineModule
......@@ -233,7 +233,7 @@ if(Slicer3_BUILD_MODULES)
SlicerTractographyDisplay
SlicerTractographyFiducialSeeding
)
else(Slicer3_BUILD_MODULES)
else(Slicer_BUILD_MODULES)
# if Slicer_BUILD_CLI is ON, we still need at least the CommandLineModule
# so that we can have CLI, without all the other modules
if(Slicer_BUILD_CLI)
......@@ -241,7 +241,7 @@ else(Slicer3_BUILD_MODULES)
CommandLineModule
)
endif(Slicer_BUILD_CLI)
endif(Slicer3_BUILD_MODULES)
endif(Slicer_BUILD_MODULES)
if(Slicer_USE_PYTHON AND PYTHON_LIBRARIES)
target_link_libraries(Slicer3${Slicer3_EXE_SUFFIX} SlicerBaseGUIPython)
......
......@@ -131,12 +131,12 @@ extern "C" {
#include <LoadableModuleFactory.h>
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer_BUILD_MODULES)
#include "vtkScriptedModuleLogic.h"
#include "vtkScriptedModuleGUI.h"
#endif
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer3_BUILD_MODULES))
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer_BUILD_MODULES))
#include "vtkCommandLineModuleLogic.h"
#include "vtkCommandLineModuleGUI.h"
#endif
......@@ -189,13 +189,13 @@ extern "C" int Vtkteem_Init(Tcl_Interp *interp);
//TODO added temporary
#if !defined(DAEMON_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(DAEMON_DEBUG) && defined(Slicer_BUILD_MODULES)
extern "C" int Slicerdaemon_Init(Tcl_Interp *interp);
#endif
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer3_BUILD_MODULES))
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer_BUILD_MODULES))
extern "C" int Commandlinemodule_Init(Tcl_Interp *interp);
#endif
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer_BUILD_MODULES)
extern "C" int Scriptedmodule_Init(Tcl_Interp *interp);
#endif
......@@ -737,13 +737,13 @@ int Slicer3_main(int& argc, char *argv[])
Igt_Init(interp);
Vtkteem_Init(interp);
#if !defined(DAEMON_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(DAEMON_DEBUG) && defined(Slicer_BUILD_MODULES)
Slicerdaemon_Init(interp);
#endif
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer3_BUILD_MODULES))
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer_BUILD_MODULES))
Commandlinemodule_Init(interp);
#endif
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer_BUILD_MODULES)
Scriptedmodule_Init(interp);
#endif
......@@ -1599,7 +1599,7 @@ int Slicer3_main(int& argc, char *argv[])
remoteIOGUI->Enter();
#endif
#if !defined(DAEMON_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(DAEMON_DEBUG) && defined(Slicer_BUILD_MODULES)
//
// --- SlicerDaemon Module
// need to source the slicerd.tcl script here
......@@ -1617,7 +1617,7 @@ int Slicer3_main(int& argc, char *argv[])
}
#endif
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer3_BUILD_MODULES))
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer_BUILD_MODULES))
std::vector<std::string> moduleNames;
std::vector<std::string>::const_iterator mit;
if ( slicerApp->GetLoadCommandLineModules()
......@@ -1837,7 +1837,7 @@ int Slicer3_main(int& argc, char *argv[])
slicerApp->Script ("namespace eval slicer3 set Broker [vtkEventBroker New]");
//slicerApp->Script ("namespace eval slicer3 set Broker [vtkEventBroker GetInstance]");
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer3_BUILD_MODULES))
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer_BUILD_MODULES))
mit = moduleNames.begin();
while ( mit != moduleNames.end() )
{
......@@ -1857,7 +1857,7 @@ int Slicer3_main(int& argc, char *argv[])
}
#endif
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer_BUILD_MODULES)
//
// process any ScriptedModules
// - scan for pkgIndex.tcl files
......@@ -2240,7 +2240,7 @@ int Slicer3_main(int& argc, char *argv[])
appGUI->RemoveGUIObservers ( );
appGUI->SetAndObserveMainSliceLogic ( NULL, NULL, NULL );
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer3_BUILD_MODULES))
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer_BUILD_MODULES))
// remove the observers from the factory discovered modules
// (as we remove the observers, cache the GUIs in a vector so we
// can delete them later).
......@@ -2264,7 +2264,7 @@ int Slicer3_main(int& argc, char *argv[])
}
#endif
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer_BUILD_MODULES)
if ( !NoModules && (ignoreModules->LookupValue("Scripted") < 0) )
{
// remove the observers from the scripted modules
......@@ -2382,7 +2382,7 @@ int Slicer3_main(int& argc, char *argv[])
#endif
dataGUI->Delete ();
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer_BUILD_MODULES)
if ( !NoModules && (ignoreModules->LookupValue("Scripted") < 0) )
{
tclCommand = "";
......@@ -2415,7 +2415,7 @@ int Slicer3_main(int& argc, char *argv[])
// cout << "vtkSlicerApplicationGUI deleting app GUI\n";
// appGUI->Delete ();
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer3_BUILD_MODULES))
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer_BUILD_MODULES))
// delete the factory discovered module GUIs (as we delete the
// GUIs, cache the associated logic instances so we can delete
std::vector<vtkSlicerModuleGUI*>::iterator git;
......@@ -2483,7 +2483,7 @@ int Slicer3_main(int& argc, char *argv[])
appLogic->TerminateProcessingThread();
appLogic->Delete ();
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer3_BUILD_MODULES))
#if !defined(COMMANDLINE_DEBUG) && (defined(Slicer_BUILD_CLI) || defined(Slicer_BUILD_MODULES))
// delete the factory discovered module Logics
std::vector<vtkSlicerModuleLogic*>::iterator lit;
for (lit = moduleLogics.begin(); lit != moduleLogics.end(); ++lit)
......@@ -2495,7 +2495,7 @@ int Slicer3_main(int& argc, char *argv[])
#endif
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(SCRIPTEDMODULE_DEBUG) && defined(Slicer_BUILD_MODULES)
if ( !NoModules && (ignoreModules->LookupValue("Scripted") < 0) )
{
// delete the scripted logics
......
......@@ -59,10 +59,10 @@ IF(BUILD_SHARED_LIBS)
ENDIF(Slicer_BUILD_QTLOADABLEMODULES)
#IF(Slicer3_BUILD_MODULES)
#IF(Slicer_BUILD_MODULES)
# SET(Slicer3_FORWARD_PATH_BUILD
# "${Slicer3_FORWARD_PATH_BUILD},\"${Slicer3_HOME}/${Slicer_INSTALL_MODULES_BIN_DIR}\" CONFIG_DIR_POST")
#ENDIF(Slicer3_BUILD_MODULES)
#ENDIF(Slicer_BUILD_MODULES)
IF(Slicer_BUILD_CLI)
SET(SlicerQT_FORWARD_PATH_BUILD
......@@ -126,10 +126,10 @@ IF(BUILD_SHARED_LIBS)
ENDIF(Slicer_BUILD_QTLOADABLEMODULES)
#IF(Slicer3_BUILD_MODULES)
#IF(Slicer_BUILD_MODULES)
# SET(Slicer3_FORWARD_PATH_BUILD
# "${Slicer3_FORWARD_PATH_BUILD},\"${Slicer3_HOME}/${Slicer_INSTALL_MODULES_BIN_DIR}\"")
#ENDIF(Slicer3_BUILD_MODULES)
#ENDIF(Slicer_BUILD_MODULES)
IF(Slicer_BUILD_CLI)
SET(SlicerQT_FORWARD_PATH_BUILD
......@@ -138,10 +138,10 @@ IF(BUILD_SHARED_LIBS)
ENDIF(Slicer_BUILD_CLI)
ENDIF(WIN32)
# IF(Slicer3_BUILD_MODULES)
# IF(Slicer_BUILD_MODULES)
# SET(Slicer3_FORWARD_PATH_INSTALL
# "${Slicer3_FORWARD_PATH_INSTALL},\"../${Slicer_INSTALL_MODULES_BIN_DIR}\"")
# ENDIF(Slicer3_BUILD_MODULES)
# ENDIF(Slicer_BUILD_MODULES)
IF(Slicer_BUILD_CLI)
SET(SlicerQT_FORWARD_PATH_INSTALL
......@@ -282,9 +282,9 @@ set(include_dirs
# ${SlicerDaemon_Init_BINARY_DIR}
)
# if(Slicer3_BUILD_MODULES)
# add_definitions(-DSlicer3_BUILD_MODULES)
# endif(Slicer3_BUILD_MODULES)
# if(Slicer_BUILD_MODULES)
# add_definitions(-DSlicer_BUILD_MODULES)
# endif(Slicer_BUILD_MODULES)
#
# if(Slicer_BUILD_CLI)
# add_definitions(-DSlicer_BUILD_CLI)
......@@ -350,7 +350,7 @@ INCLUDE_DIRECTORIES(${include_dirs})
# ${SLICERLIBCURL_LIBRARIES}
# )
# if(Slicer3_BUILD_MODULES)
# if(Slicer_BUILD_MODULES)
# target_link_libraries(Slicer3${Slicer3_EXE_SUFFIX}
# Volumes
# CommandLineModule
......@@ -359,7 +359,7 @@ INCLUDE_DIRECTORIES(${include_dirs})
# SlicerTractographyDisplay
# SlicerTractographyFiducialSeeding
# )
# else(Slicer3_BUILD_MODULES)
# else(Slicer_BUILD_MODULES)
# # if Slicer_BUILD_CLI is ON, we still need at least the CommandLineModule
# # so that we can have CLI, without all the other modules
# if(Slicer_BUILD_CLI)
......@@ -367,7 +367,7 @@ INCLUDE_DIRECTORIES(${include_dirs})
# CommandLineModule
# )
# endif(Slicer_BUILD_CLI)
# endif(Slicer3_BUILD_MODULES)
# endif(Slicer_BUILD_MODULES)
# if(Slicer_USE_PYTHON AND PYTHON_LIBRARIES)
# target_link_libraries(Slicer3${Slicer3_EXE_SUFFIX} SlicerBaseGUIPython)
......
......@@ -108,7 +108,7 @@ BUILD_TESTING:BOOL=@BUILD_TESTING@
BUILD_EXAMPLES:BOOL=@BUILD_EXAMPLES@
Slicer_BUILD_CLI:BOOL=@Slicer_BUILD_CLI@
Slicer3_BUILD_MODULES:BOOL=@Slicer3_BUILD_MODULES@
Slicer_BUILD_MODULES:BOOL=@Slicer_BUILD_MODULES@
Slicer_BUILD_QTLOADABLEMODULES:BOOL=@Slicer_BUILD_QTLOADABLEMODULES@
Slicer3_BUILD_WIN32_CONSOLE:BOOL=@Slicer3_BUILD_WIN32_CONSOLE@
Slicer_USE_BatchMake:BOOL=@Slicer_USE_BatchMake@
......
......@@ -665,7 +665,7 @@ ENDIF()
#
option(Slicer_BUILD_CLI "Build Slicer3 CLI Plugins" ON)
IF(Slicer_USE_KWWIDGETS)
option(Slicer3_BUILD_MODULES "Build Slicer3 Modules" ON)
option(Slicer_BUILD_MODULES "Build Slicer3 Modules" ON)
ENDIF()
include("${Slicer_CMAKE_DIR}/Slicer3PluginsMacros.cmake")
......@@ -673,15 +673,15 @@ include("${Slicer_CMAKE_DIR}/Slicer3PluginsMacros.cmake")
IF(Slicer_USE_KWWIDGETS)
include("${Slicer_CMAKE_DIR}/Slicer3ModulesMacros.cmake")
IF(Slicer3_BUILD_MODULES)
IF(Slicer_BUILD_MODULES)
add_subdirectory(Modules)
else(Slicer3_BUILD_MODULES)
else(Slicer_BUILD_MODULES)
# if Slicer_BUILD_CLI is ON, we still need at least the CommandLineModule
# so that we can have CLI, without all the other modules
IF(Slicer_BUILD_CLI)
add_subdirectory(Modules/CommandLineModule)
ENDIF(Slicer_BUILD_CLI)
ENDIF(Slicer3_BUILD_MODULES)
ENDIF(Slicer_BUILD_MODULES)
ENDIF()
#-----------------------------------------------------------------------------
......@@ -689,7 +689,7 @@ ENDIF()
# The EMSegment{Registration,Graph,Algorithm,MRML} libraries are built from the top-level
# CMakeLists.txt. Doing so allow to build these libraries also if Slicer_USE_KWWIDGETS is OFF
IF(Slicer3_BUILD_MODULES OR Slicer_BUILD_QTLOADABLEMODULES)
IF(Slicer_BUILD_MODULES OR Slicer_BUILD_QTLOADABLEMODULES)
include("${Slicer_CMAKE_DIR}/Slicer3ModulesMacros.cmake")
ADD_SUBDIRECTORY(Modules/EMSegment/Algorithm)
ADD_SUBDIRECTORY(Modules/EMSegment/MRML)
......@@ -701,7 +701,7 @@ ENDIF()
# built beforehand,let's enfore that by building EMSegment here.
# Note that EMSegment has been commented in Modules/CMakeLists.txt
IF(Slicer_USE_KWWIDGETS)
IF(Slicer3_BUILD_MODULES)
IF(Slicer_BUILD_MODULES)
ADD_SUBDIRECTORY(Modules/EMSegment)
ENDIF()
ENDIF()
......
......@@ -1798,7 +1798,7 @@ void vtkFetchMILogic::SetSlicerDataTypeOnFiberBundleNodes()
void vtkFetchMILogic::SetSlicerDataTypeOnUnstructuredGridNodes()
{
//--- UNSTRUCTURED GRID NODES
#if !defined(MESHING_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(MESHING_DEBUG) && defined(Slicer_BUILD_MODULES)
// *** add UnstructuredGrid types
// An additional datatype, MRMLUnstructuredGrid and its subclasses are
// also searched in the MRML tree. This is done so instances of FiniteElement
......
......@@ -1121,7 +1121,7 @@ void vtkFetchMIGUI::UpdateColorTableNodes()
void vtkFetchMIGUI::UpdateUnstructuredGridNodes()
{
//--- UNSTRUCTURED GRID NODES
#if !defined(MESHING_DEBUG) && defined(Slicer3_BUILD_MODULES)
#if !defined(MESHING_DEBUG) && defined(Slicer_BUILD_MODULES)
// *** add UnstructuredGrid types
// An additional datatype, MRMLUnstructuredGrid and its subclasses are
// also searched in the MRML tree. This is done so instances of FiniteElement
......
......@@ -18,7 +18,7 @@ set(Slicer_VERSION_MINOR "@Slicer_VERSION_MINOR@")
set(Slicer_VERSION_PATCH "@Slicer_VERSION_PATCH@")
# Whether Slicer3 was built with modules and CLI support.
set(Slicer3_BUILD_MODULES "@Slicer3_BUILD_MODULES@")
set(Slicer_BUILD_MODULES "@Slicer_BUILD_MODULES@")
set(Slicer_BUILD_CLI "@Slicer_BUILD_CLI@")
IF(Slicer_USE_QT)
set(Slicer_BUILD_QTLOADABLEMODULES "@Slicer_BUILD_QTLOADABLEMODULES@")
......
......@@ -18,7 +18,7 @@ set(Slicer_VERSION_MINOR "@Slicer_VERSION_MINOR@")
set(Slicer_VERSION_PATCH "@Slicer_VERSION_PATCH@")
# Whether Slicer3 was built with modules and CLI support.
set(Slicer3_BUILD_MODULES "@Slicer3_BUILD_MODULES@")
set(Slicer_BUILD_MODULES "@Slicer_BUILD_MODULES@")
set(Slicer_BUILD_CLI "@Slicer_BUILD_CLI@")
IF(Slicer_USE_QT)
set(Slicer_BUILD_QTLOADABLEMODULES "@Slicer_BUILD_QTLOADABLEMODULES@")
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment