Skip to content

Commit f407230

Browse files
committed
Merge branch 'master' into tutorial
2 parents e62cd8a + 668dfd5 commit f407230

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+2568
-197518
lines changed

Superbuild/Superbuild.cmake

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,11 @@ OPTION(BUILD_TESTING "Build with tests." ON)
7070
# Configure python
7171
OPTION(BUILD_WITH_PYTHON "Build with python support." ON)
7272

73+
###########################################
74+
# Configure python
75+
OPTION(WITH_TETGEN "Build Tetgen." ON)
76+
MARK_AS_ADVANCED(WITH_TETGEN)
77+
7378
###########################################
7479
# Configure Windows executable to run with
7580
# or without the console
@@ -122,34 +127,34 @@ MARK_AS_ADVANCED(REGENERATE_MODULE_FACTORY_CODE)
122127

123128
SET( SCIRun_DEPENDENCIES )
124129

130+
MACRO(ADD_EXTERNAL cmake_file external)
131+
INCLUDE( ${cmake_file} )
132+
LIST(APPEND SCIRun_DEPENDENCIES ${external})
133+
ENDMACRO()
134+
125135
SET(SUPERBUILD_DIR ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "" FORCE)
126136
SET(SCIRUN_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src CACHE INTERNAL "" FORCE)
127137
SET(SCIRUN_BINARY_DIR ${CMAKE_BINARY_DIR}/SCIRun CACHE INTERNAL "" FORCE)
128138

129139
IF(BUILD_TESTING)
130-
INCLUDE( ${SUPERBUILD_DIR}/TestDataConfig.cmake )
131-
LIST(APPEND SCIRun_DEPENDENCIES SCIRunTestData_external)
140+
ADD_EXTERNAL( ${SUPERBUILD_DIR}/TestDataConfig.cmake SCIRunTestData_external )
132141
ENDIF()
133142

134-
INCLUDE( ${SUPERBUILD_DIR}/ZlibExternal.cmake )
135-
LIST(APPEND SCIRun_DEPENDENCIES Zlib_external)
136-
137-
INCLUDE( ${SUPERBUILD_DIR}/SQLiteExternal.cmake )
138-
LIST(APPEND SCIRun_DEPENDENCIES SQLite_external)
139-
140-
INCLUDE( ${SUPERBUILD_DIR}/LibPNGExternal.cmake )
141-
LIST(APPEND SCIRun_DEPENDENCIES LibPNG_external)
143+
ADD_EXTERNAL( ${SUPERBUILD_DIR}/ZlibExternal.cmake Zlib_external )
144+
ADD_EXTERNAL( ${SUPERBUILD_DIR}/SQLiteExternal.cmake SQLite_external )
145+
ADD_EXTERNAL( ${SUPERBUILD_DIR}/LibPNGExternal.cmake LibPNG_external )
146+
ADD_EXTERNAL( ${SUPERBUILD_DIR}/TeemExternal.cmake Teem_external )
142147

143148
IF(BUILD_WITH_PYTHON)
144-
INCLUDE( ${SUPERBUILD_DIR}/PythonExternal.cmake )
145-
LIST(APPEND SCIRun_DEPENDENCIES Python_external)
149+
ADD_EXTERNAL( ${SUPERBUILD_DIR}/PythonExternal.cmake Python_external )
146150
ENDIF()
147151

148-
INCLUDE( ${SUPERBUILD_DIR}/BoostExternal.cmake )
149-
LIST(APPEND SCIRun_DEPENDENCIES Boost_external)
152+
IF(WITH_TETGEN)
153+
MESSAGE(STATUS "Configuring Tetgen library under GPL. The SCIRun InterfaceWithTetGen module can be disabled by setting the CMake build variable WITH_TETGEN to OFF.")
154+
ADD_EXTERNAL( ${SUPERBUILD_DIR}/TetgenExternal.cmake Tetgen_external )
155+
ENDIF()
150156

151-
INCLUDE( ${SUPERBUILD_DIR}/TeemExternal.cmake )
152-
LIST(APPEND SCIRun_DEPENDENCIES Teem_external)
157+
ADD_EXTERNAL( ${SUPERBUILD_DIR}/BoostExternal.cmake Boost_external )
153158

154159
###########################################
155160
# Download external data sources
@@ -171,13 +176,15 @@ SET(SCIRUN_CACHE_ARGS
171176
"-DBUILD_HEADLESS:BOOL=${BUILD_HEADLESS}"
172177
"-DSCIRUN_TEST_RESOURCE_DIR:PATH=${SCIRUN_TEST_RESOURCE_DIR}"
173178
"-DBUILD_WITH_PYTHON:BOOL=${BUILD_WITH_PYTHON}"
179+
"-DWITH_TETGEN:BOOL=${WITH_TETGEN}"
174180
"-DREGENERATE_MODULE_FACTORY_CODE:BOOL=${REGENERATE_MODULE_FACTORY_CODE}"
175181
"-DGENERATE_MODULE_FACTORY_CODE:BOOL=${GENERATE_MODULE_FACTORY_CODE}"
176182
"-DZlib_DIR:PATH=${Zlib_DIR}"
177183
"-DLibPNG_DIR:PATH=${LibPNG_DIR}"
178184
"-DSQLite_DIR:PATH=${SQLite_DIR}"
179185
"-DBoost_DIR:PATH=${Boost_DIR}"
180186
"-DTeem_DIR:PATH=${Teem_DIR}"
187+
"-DTetgen_DIR:PATH=${Tetgen_DIR}"
181188
)
182189

183190
IF(BUILD_WITH_PYTHON)
@@ -187,6 +194,12 @@ IF(BUILD_WITH_PYTHON)
187194
)
188195
ENDIF()
189196

197+
IF(WITH_TETGEN)
198+
LIST(APPEND SCIRUN_CACHE_ARGS
199+
"-DTetgen_DIR:PATH=${Tetgen_DIR}"
200+
)
201+
ENDIF()
202+
190203
IF(WIN32)
191204
LIST(APPEND SCIRUN_CACHE_ARGS
192205
"-DSCIRUN_SHOW_CONSOLE:BOOL=${SCIRUN_SHOW_CONSOLE}"

Superbuild/TetgenConfig.cmake.in

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
set(TETGEN_INCLUDE "@TETGEN_INCLUDE@")
2+
set(TETGEN_LIBRARY_DIR "@TETGEN_LIBRARY_DIR@")
3+
set(TETGEN_LIBRARY "@TETGEN_LIBRARY@")
4+
set(TETGEN_USE_FILE "@TETGEN_USE_FILE@")
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#
21
# For more information, please see: http://software.sci.utah.edu
32
#
43
# The MIT License
@@ -24,26 +23,31 @@
2423
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
2524
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
2625
# DEALINGS IN THE SOFTWARE.
27-
#
2826

29-
PROJECT(SQLite)
30-
31-
###########################################
32-
# Source files for SQLite
33-
SET( SQLITE_SRCS
34-
sqlite3.h
35-
sqlite3ext.h
36-
sqlite3.c
27+
SET_PROPERTY(DIRECTORY PROPERTY "EP_BASE" ${ep_base})
28+
ExternalProject_Add(Tetgen_external
29+
URL "http://www.tetgen.org/1.5/src/tetgen1.5.0.tar.gz"
30+
PATCH_COMMAND ""
31+
INSTALL_COMMAND ""
32+
CMAKE_CACHE_ARGS
33+
-DCMAKE_VERBOSE_MAKEFILE:BOOL=${CMAKE_VERBOSE_MAKEFILE}
34+
-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE}
35+
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
36+
#-DTETLIBRARY
3737
)
3838

39-
ADD_DEFINITIONS(-DSQLITE_ENABLE_COLUMN_METADATA)
40-
41-
###########################################
42-
# Set the name of the library
43-
SET(SCI_SQLITE_LIBRARY sqlite CACHE INTERNAL "SQLite Library name." FORCE)
39+
ExternalProject_Get_Property(Tetgen_external SOURCE_DIR)
40+
ExternalProject_Get_Property(Tetgen_external BINARY_DIR)
41+
ExternalProject_Get_Property(Tetgen_external INSTALL_DIR)
42+
SET(TETGEN_INCLUDE ${SOURCE_DIR})
43+
SET(TETGEN_LIBRARY_DIR ${BINARY_DIR})
44+
SET(TETGEN_USE_FILE ${INSTALL_DIR}/UseTetgen.cmake)
45+
# see Tetgen CMakeLists.txt file
46+
SET(TETGEN_LIBRARY "tet")
47+
SET(Tetgen_DIR ${INSTALL_DIR} CACHE PATH "")
4448

45-
###########################################
46-
# Include directory of SQLite
47-
SET(SCI_SQLITE_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR} CACHE INTERNAL "SQLite include directories" FORCE)
49+
# Boost is special case - normally this should be handled in external library repo
50+
CONFIGURE_FILE(${SUPERBUILD_DIR}/TetgenConfig.cmake.in ${INSTALL_DIR}/TetgenConfig.cmake @ONLY)
51+
CONFIGURE_FILE(${SUPERBUILD_DIR}/UseTetgen.cmake ${TETGEN_USE_FILE} COPYONLY)
4852

49-
ADD_LIBRARY(${SCI_SQLITE_LIBRARY} STATIC ${SQLITE_SRCS})
53+
MESSAGE(STATUS "Tetgen_DIR: ${Tetgen_DIR}")

Superbuild/UseTetgen.cmake

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
include_directories(${TETGEN_INCLUDE})
2+
link_directories(${TETGEN_LIBRARY_DIR})

src/.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
CMakeLists.txt.user
2-
*.svn-base

src/CMakeLists.txt

Lines changed: 21 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -206,61 +206,40 @@ IF(BUILD_TESTING)
206206
ENDIF()
207207

208208
#########################################################################
209-
## Python
210-
#
211-
#OPTION(BUILD_WITH_PYTHON "Build with python support." OFF)
212-
#
213-
#IF(BUILD_WITH_PYTHON)
214-
# MESSAGE(STATUS "Configuring Python")
215-
# SET(PythonLibs_FIND_VERSION "3.2")
216-
# FIND_PACKAGE(PythonLibs REQUIRED)
217-
# IF(NOT PYTHONLIBS_FOUND)
218-
# MESSAGE(FATAL_ERROR "Python 3.3 or 3.2 not found. Set PYTHON_INCLUDE_DIR and PYT#HON_LIBRARY to the correct Python installation.")
219-
# ENDIF()
220-
#
221-
# ADD_DEFINITIONS(-DBOOST_PYTHON_STATIC_LIB)
222-
# ADD_DEFINITIONS(-DBUILD_WITH_PYTHON)
223-
#ENDIF(BUILD_WITH_PYTHON)
209+
# External projects
224210

211+
MACRO(CONFIG_STANDARD_EXTERNAL name config_file directory)
212+
FIND_PACKAGE(${name} CONFIGS ${config_file} HINTS ${directory} NO_SYSTEM_ENVIRONMENT_PATH)
213+
IF(NOT ${name}_FOUND)
214+
MESSAGE(FATAL_ERROR "${name} library not found in ${directory}")
215+
ENDIF()
216+
ENDMACRO()
225217

226-
FIND_PACKAGE(Zlib CONFIGS ZlibConfig.cmake HINTS ${Zlib_DIR} NO_SYSTEM_ENVIRONMENT_PATH)
227-
IF(NOT Zlib_FOUND)
228-
MESSAGE(FATAL_ERROR "Zlib library not found in ${Zlib_DIR}")
229-
ENDIF()
218+
CONFIG_STANDARD_EXTERNAL( Zlib ZlibConfig.cmake ${Zlib_DIR} )
230219
INCLUDE(${ZLIB_USE_FILE})
231220

232-
FIND_PACKAGE(LibPNG CONFIGS LibPNGConfig.cmake HINTS ${LibPNG_DIR} NO_SYSTEM_ENVIRONMENT_PATH)
233-
IF(NOT LibPNG_FOUND)
234-
MESSAGE(FATAL_ERROR "Png library not found in ${LibPNG_DIR}")
235-
ENDIF()
221+
CONFIG_STANDARD_EXTERNAL( LibPNG LibPNGConfig.cmake ${LibPNG_DIR} )
236222
INCLUDE(${PNG_USE_FILE})
237223

238-
FIND_PACKAGE(SQLite CONFIGS SQLiteConfig.cmake HINTS ${SQLite_DIR} NO_SYSTEM_ENVIRONMENT_PATH)
239-
IF(NOT SQLite_FOUND)
240-
MESSAGE(FATAL_ERROR "SQLite library not found in ${SQLite_DIR}")
241-
ENDIF()
224+
CONFIG_STANDARD_EXTERNAL( SQLite SQLiteConfig.cmake ${SQLite_DIR} )
242225
INCLUDE(${SQLITE_USE_FILE})
243226

244-
FIND_PACKAGE(Teem CONFIGS TeemConfig.cmake HINTS ${Teem_DIR} NO_SYSTEM_ENVIRONMENT_PATH)
245-
IF(NOT Teem_FOUND)
246-
MESSAGE(FATAL_ERROR "Teem library not found in ${Teem_DIR}")
247-
ENDIF()
227+
CONFIG_STANDARD_EXTERNAL( Teem TeemConfig.cmake ${Teem_DIR} )
248228
INCLUDE(${Teem_USE_FILE})
249229

250230
IF(BUILD_WITH_PYTHON)
251-
FIND_PACKAGE(Python CONFIGS PythonConfig.cmake HINTS ${Python_DIR} NO_SYSTEM_ENVIRONMENT_PATH)
252-
IF(NOT Python_FOUND)
253-
MESSAGE(FATAL_ERROR "Python library not found in ${Python_DIR}")
254-
ENDIF()
231+
CONFIG_STANDARD_EXTERNAL( Python PythonConfig.cmake ${Python_DIR} )
255232
INCLUDE(${SCI_PYTHON_USE_FILE})
256233
ENDIF()
257234

258-
FIND_PACKAGE(Boost CONFIGS BoostConfig.cmake HINTS ${Boost_DIR} NO_SYSTEM_ENVIRONMENT_PATH)
259-
IF(NOT Boost_FOUND)
260-
MESSAGE(FATAL_ERROR "Boost library not found in ${Boost_DIR}")
261-
ENDIF()
235+
CONFIG_STANDARD_EXTERNAL( Boost BoostConfig.cmake ${Boost_DIR} )
262236
INCLUDE(${SCI_BOOST_USE_FILE})
263237

238+
IF(WITH_TETGEN)
239+
CONFIG_STANDARD_EXTERNAL( Tetgen TetgenConfig.cmake ${Tetgen_DIR} )
240+
INCLUDE(${TETGEN_USE_FILE})
241+
ENDIF()
242+
264243
########################################################################
265244
# Custom compiler flags and definitions
266245

@@ -356,45 +335,11 @@ ENDIF()
356335
# ENDIF()
357336

358337
########################################################################
359-
# Download external data sources
360-
361-
#OPTION(DOWNLOAD_TOOLKITS "Download toolkit repositories." ON)
362-
#MARK_AS_ADVANCED(DOWNLOAD_TOOLKITS)
363-
#IF(DOWNLOAD_TOOLKITS)
364-
# INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMake/ToolkitsConfig.cmake)
365-
# EXTERNAL_TOOLKIT(BrainStimulator)
366-
# EXTERNAL_TOOLKIT(FwdInvToolkit)
367-
#ENDIF()
368-
#
369-
#########################################################################
370-
## Configure zlib external project
371-
#
372-
#INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMake/ZlibConfig.cmake)
373-
#EXTERNAL_ZLIB_LIBRARY(GIT)
374-
#
375-
#
376-
##########################################################################
377-
## Configure Boost external project
378-
#
379-
#INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMake/BoostConfig.cmake)
380-
#EXTERNAL_BOOST_LIBRARY(GIT)
381-
#
382-
#
383-
#########################################################################
384-
## Configure teem external project
385-
#
386-
#INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/CMake/TeemConfig.cmake)
387-
#EXTERNAL_TEEM_LIBRARY(GIT)
338+
# Configure tetgen module build
388339

389-
390-
########################################################################
391-
# Configure tetgen external project
392-
393-
OPTION(WITH_TETGEN "Build Tetgen." ON)
394-
MARK_AS_ADVANCED(WITH_TETGEN)
395340
IF(WITH_TETGEN)
396341
ADD_DEFINITIONS(-DWITH_TETGEN)
397-
ENDIF(WITH_TETGEN)
342+
ENDIF()
398343

399344
########################################################################
400345
# Configure CPM and Spire - http://github.com/iauns/cpm
@@ -610,7 +555,7 @@ INCLUDE_DIRECTORIES(
610555
${SCIRun_SOURCE_DIR}/Externals/log4cpp/include
611556
${SCI_TEEM_INCLUDE}
612557
${SCI_ZLIB_INCLUDE}
613-
${SCI_TETGEN_INCLUDE}
558+
#${SCI_TETGEN_INCLUDE}
614559
)
615560

616561
INCLUDE_DIRECTORIES(SYSTEM ${SCI_BOOST_INCLUDE})
@@ -911,25 +856,16 @@ IF(BUILD_TESTING)
911856
ENDIF()
912857
ENDIF()
913858

914-
#SET_PROPERTY(TARGET Boost_external PROPERTY FOLDER "Externals")
915859
SET_PROPERTY(TARGET ${CPM_LIBRARIES} PROPERTY FOLDER "Externals")
916860
SET_PROPERTY(TARGET ${SCI_LOG4CPP_LIBRARY} PROPERTY FOLDER "Externals")
917-
#SET_PROPERTY(TARGET sqlite PROPERTY FOLDER "Externals")
918861
SET_PROPERTY(TARGET cleaver PROPERTY FOLDER "Externals")
919-
#SET_PROPERTY(TARGET Zlib_external PROPERTY FOLDER "Externals")
920-
#SET_PROPERTY(TARGET Teem_external PROPERTY FOLDER "Externals")
921862
SET_PROPERTY(TARGET xml2 PROPERTY FOLDER "Externals")
922863

923864
IF(BUILD_WITH_PYTHON)
924865
SET_PROPERTY(TARGET Core_Python PROPERTY FOLDER "Core")
925866
SET_PROPERTY(TARGET SCIRunPythonAPI PROPERTY FOLDER "Dataflow/Engine")
926867
ENDIF()
927868

928-
IF(WITH_TETGEN)
929-
SET_PROPERTY(TARGET tetgen PROPERTY FOLDER "Externals")
930-
SET_PROPERTY(TARGET tetlib PROPERTY FOLDER "Externals")
931-
ENDIF()
932-
933869
########################################################################
934870
# Custom CMake settings for CPack
935871

src/Core/Algorithms/Legacy/DataIO/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,13 @@ SET(Core_Algorithms_Legacy_DataIO_SRCS
3232
DataIOAlgo.cc
3333
#MRCReader.cc
3434
ObjToFieldReader.cc
35+
VTKToTriSurfReader.cc
3536
#StreamData/StreamACQFile.cc
3637
)
3738

3839
SET(Core_Algorithms_Legacy_DataIO_HEADERS
3940
ObjToFieldReader.h
41+
VTKToTriSurfReader.h
4042
DataIOAlgo.h
4143
)
4244

0 commit comments

Comments
 (0)