Skip to content

Commit e2990a0

Browse files
authored
Merge pull request #47 from NIRALUser/master
Release 1.2.9
2 parents 7dc1435 + 6d819e1 commit e2990a0

44 files changed

Lines changed: 1551 additions & 239 deletions

Some content is hidden

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

CMake/ITKSetStandardCompilerFlags.cmake

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -281,13 +281,7 @@ endmacro()#End the platform check function
281281

282282
#-----------------------------------------------------------------------------
283283
#Check the set of warning flags the compiler supports
284-
check_compiler_warning_flags(C_WARNING_FLAGS CXX_WARNING_FLAGS)
285-
286-
# Append ITK warnings to the CMake flags.
287-
# We do not set them in ITK_REQUIRED FLAGS because all project which
288-
# use ITK don't require these flags .
289-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_WARNING_FLAGS}")
290-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARNING_FLAGS}")
284+
check_compiler_warning_flags(ITK_C_WARNING_FLAGS ITK_CXX_WARNING_FLAGS)
291285

292286
#-----------------------------------------------------------------------------
293287
#Check the set of platform flags the compiler supports

CMakeLists.txt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
cmake_minimum_required(VERSION 2.8.9)
2-
cmake_policy(VERSION 2.8.9)
1+
cmake_minimum_required(VERSION 3.5)
32

43
set(LOCAL_PROJECT_NAME DTIPrepTools)
54
project(${LOCAL_PROJECT_NAME})

Common.cmake

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,6 @@ if(${ITK_VERSION_MAJOR} STREQUAL "3")
2929
set(USE_ITKv4 OFF)
3030
endif()
3131

32-
#CMAKE_DEPENDENT_OPTION(
33-
# USE_DTIPrep "Build DTIPrep" ON "${LOCAL_PROJECT_NAME}_USE_QT" ON)
34-
3532
set(${LOCAL_PROJECT_NAME}_USE_QT ON)
3633
if(${LOCAL_PROJECT_NAME}_USE_QT AND NOT DTIPrep_BUILD_SLICER_EXTENSION )
3734
if(NOT QT4_FOUND)
@@ -121,22 +118,14 @@ SETIFEMPTY(DTIPrepTools_CLI_INSTALL_RUNTIME_DESTINATION ${CMAKE_INSTALL_RUNTIME_
121118
#-------------------------------------------------------------------------
122119
include(ITKSetStandardCompilerFlags)
123120
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
124-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_DEBUG_DESIRED_FLAGS}" )
125-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_DEBUG_DESIRED_FLAGS}" )
121+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_INIT} ${ITK_C_WARNING_FLAGS} ${C_DEBUG_DESIRED_FLAGS}" )
122+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_INIT} ${ITK_CXX_WARNING_FLAGS} ${CXX_DEBUG_DESIRED_FLAGS}" )
126123
else() # Release, or anything else
127-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_RELEASE_DESIRED_FLAGS}" )
128-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_RELEASE_DESIRED_FLAGS}" )
124+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS_INIT} ${ITK_C_WARNING_FLAGS} ${C_RELEASE_DESIRED_FLAGS}" )
125+
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_INIT} ${ITK_CXX_WARNING_FLAGS} ${CXX_RELEASE_DESIRED_FLAGS}" )
129126
endif()
130127

131-
#-----------------------------------------------------------------------------
132-
# Add needed flag for gnu on linux like enviroments to build static common libs
133-
# suitable for linking with shared object libs.
134-
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
135-
if(NOT "${CMAKE_CXX_FLAGS}" MATCHES "-fPIC")
136-
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
137-
endif()
138-
if(NOT "${CMAKE_C_FLAGS}" MATCHES "-fPIC")
139-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
140-
endif()
141-
endif()
128+
set(CMAKE_POSITION_INDEPENDENT_CODE 1)
129+
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
130+
set(CMAKE_VISIBILITY_INLINES_HIDDEN 1)
142131

DTIPrepTools.cmake

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ set( ITKModules
4242
ITKRegistrationCommon
4343
ITKOptimizersv4
4444
ITKConnectedComponents
45-
ITKV3Compatibility
4645
ITKMathematicalMorphology
4746
ITKBinaryMathematicalMorphology
4847
ITKRegionGrowing
@@ -193,7 +192,7 @@ if( DTIPrep_BUILD_SLICER_EXTENSION )
193192
set(EXTENSION_HOMEPAGE "https://www.nitrc.org/projects/dtiprep/")
194193
set(EXTENSION_CATEGORY "DWI/DTI Quality Control")
195194
set(EXTENSION_CONTRIBUTORS "Joy Matsui, Zhexing Liu, Clement Vachet, David Welch, Guido Gerig, kent williams, Mahshid Farzinfar, Sylvain Gouttard, Vincent Magnotta, Hans Johnson, Martin Styner, Francois Budin, Juan Prieto")
196-
set(EXTENSION_DESCRIPTION "DTIPrep performs a "Study-specific Protocol" based automatic pipeline for DWI/DTI quality control and preparation")
195+
set(EXTENSION_DESCRIPTION "DTIPrep performs a 'Study-specific Protocol' based automatic pipeline for DWI/DTI quality control and preparation")
197196
set(EXTENSION_ICONURL "http://www.nitrc.org/project/screenshot.php?group_id=283&screenshot_id=608")
198197
set(EXTENSION_SCREENSHOTURLS "http://www.nitrc.org/project/screenshot.php?group_id=283&screenshot_id=609 http://www.nitrc.org/project/screenshot.php?group_id=283&screenshot_id=610")
199198
set(EXTENSION_DEPENDS "NA") # Specified as a space separated list or 'NA' if any
@@ -222,7 +221,8 @@ if(USE_DTIProcess)
222221
)
223222
list( APPEND ToolsPaths ${SUPERBUILD_BINARY_DIR}/DTIProcess-install/bin/ )
224223
endif()
225-
if(USE_NIRALUtilities)
224+
225+
if(USE_niral_utilities)
226226
list(APPEND NotCLIToolsList
227227
ImageMath
228228
convertITKformats
@@ -235,8 +235,7 @@ if( DTIPrep_BUILD_SLICER_EXTENSION )
235235
INSTALL_EXECUTABLE( OUTPUT_DIR ${NOCLI_INSTALL_DIR} LIST_EXEC ${NotCLIToolsList} PATHS ${ToolsPaths} )
236236
set(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${CMAKE_BINARY_DIR};${EXTENSION_NAME};ALL;/")
237237
include(${Slicer_EXTENSION_CPACK})
238-
endif()
239-
if( SUPERBUILD_NOT_EXTENSION )
238+
else()
240239
if( NOT APPLE )
241240
INSTALL_EXECUTABLE( OUTPUT_DIR bin LIST_EXEC ${NotCLIToolsList} PATHS ${ToolsPaths} )
242241
else()

SuperBuild.cmake

Lines changed: 53 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,57 @@ include(CTest)
1919

2020
include(${CMAKE_CURRENT_LIST_DIR}/Common.cmake)
2121

22+
option(USE_niral_utilities "Build niral_utilities" ON)
23+
2224
if( DTIPrep_BUILD_SLICER_EXTENSION )
2325
set( EXTERNAL_SOURCE_IN_BINARY_DIR ON)
2426
set( USE_SYSTEM_VTK ON CACHE BOOL "Use system VTK" FORCE )
27+
set( USE_SYSTEM_ITK ON CACHE BOOL "Use system ITK" FORCE )
28+
set( USE_SYSTEM_SlicerExecutionModel ON CACHE BOOL "Use system SlicerExecutionModel" FORCE )
2529
#VTK_VERSION_MAJOR is define but not a CACHE variable
2630
set( VTK_VERSION_MAJOR ${VTK_VERSION_MAJOR} CACHE STRING "Choose the expected VTK major version to build Slicer (5, 6, 7).")
2731
set( USE_SYSTEM_DCMTK ON CACHE BOOL "Use system DCMTK" FORCE )
2832
set( USE_SYSTEM_Teem ON CACHE BOOL "Use system Teem" FORCE )
33+
set( USE_SYSTEM_DTIProcess ON CACHE BOOL "Use system DTIProcess" FORCE )
2934
set( BUILD_SHARED_LIBS OFF CACHE BOOL "Use shared libraries" FORCE)
30-
unsetForSlicer(NAMES CMAKE_MODULE_PATH CMAKE_C_COMPILER CMAKE_CXX_COMPILER DCMTK_DIR ITK_DIR SlicerExecutionModel_DIR VTK_DIR QT_QMAKE_EXECUTABLE ITK_VERSION_MAJOR CMAKE_CXX_FLAGS CMAKE_C_FLAGS Teem_DIR)
35+
unsetForSlicer(NAMES
36+
BRAINSCommonLib_DIR
37+
CMAKE_MODULE_PATH
38+
CMAKE_C_COMPILER
39+
CMAKE_CXX_COMPILER
40+
DCMTK_DIR
41+
ITK_DIR
42+
SlicerExecutionModel_DIR
43+
VTK_DIR
44+
QT_QMAKE_EXECUTABLE
45+
ITK_VERSION_MAJOR
46+
CMAKE_CXX_FLAGS
47+
CMAKE_C_FLAGS
48+
Teem_DIR
49+
)
3150
find_package(Slicer REQUIRED)
32-
unsetAllForSlicerBut( NAMES VTK_DIR QT_QMAKE_EXECUTABLE DCMTK_DIR Teem_DIR )
33-
resetForSlicer(NAMES CMAKE_MODULE_PATH CMAKE_C_COMPILER CMAKE_CXX_COMPILER CMAKE_CXX_FLAGS CMAKE_C_FLAGS ITK_DIR SlicerExecutionModel_DIR ITK_VERSION_MAJOR )
51+
unsetAllForSlicerBut( NAMES
52+
BRAINSCommonLib_DIR
53+
SlicerExecutionModel_DIR
54+
ITK_DIR
55+
VTK_DIR
56+
QT_QMAKE_EXECUTABLE
57+
DCMTK_DIR
58+
Teem_DIR
59+
)
60+
resetForSlicer(NAMES
61+
CMAKE_MODULE_PATH
62+
CMAKE_C_COMPILER
63+
CMAKE_CXX_COMPILER
64+
CMAKE_CXX_FLAGS
65+
CMAKE_C_FLAGS
66+
)
3467
if( APPLE )
3568
set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,@loader_path/../../../../../")
3669
endif()
3770
find_package(Subversion REQUIRED )
3871
else()
3972
set( USE_ITK_Module_MGHIO ON )
40-
set( SUPERBUILD_NOT_EXTENSION TRUE )
4173
option(USE_DTIProcess "Build DTIProcess" ON)
4274
endif()
4375

@@ -141,7 +173,12 @@ option(USE_SYSTEM_niral_utilities "Build using external niral_utilities" OFF)
141173
#------------------------------------------------------------------------------
142174
# ${LOCAL_PROJECT_NAME} dependency list
143175
#------------------------------------------------------------------------------
144-
set( ${LOCAL_PROJECT_NAME}_DEPENDENCIES DCMTK ITKv4 SlicerExecutionModel VTK DTIProcess niral_utilities BRAINSTools)
176+
set( ${LOCAL_PROJECT_NAME}_DEPENDENCIES VTK DCMTK ITKv4 SlicerExecutionModel DTIProcess niral_utilities)
177+
if( NOT DTIPrep_BUILD_SLICER_EXTENSION )
178+
list(APPEND ${LOCAL_PROJECT_NAME}_DEPENDENCIES
179+
BRAINSTools
180+
)
181+
endif()
145182
set( ${PROJECT_NAME}_BUILD_DICOM_SUPPORT ON )
146183
set( ${PROJECT_NAME}_BUILD_ZLIB_SUPPORT ON )
147184
if( UNIX )
@@ -237,6 +274,12 @@ if(${LOCAL_PROJECT_NAME}_USE_QT)
237274
)
238275
endif()
239276

277+
# Disable the "You are in 'detached HEAD' state." warning.
278+
set(git_config_arg)
279+
if(CMAKE_VERSION VERSION_GREATER "3.7.2")
280+
set(git_config_arg GIT_CONFIG "advice.detachedHead=false")
281+
endif()
282+
240283
_expand_external_project_vars()
241284
set(COMMON_EXTERNAL_PROJECT_ARGS ${${CMAKE_PROJECT_NAME}_SUPERBUILD_EP_ARGS})
242285
set(extProjName ${LOCAL_PROJECT_NAME})
@@ -290,10 +333,6 @@ if( DTIPrep_BUILD_SLICER_EXTENSION )
290333
Slicer_DIR:PATH
291334
DTIPrep_BUILD_SLICER_EXTENSION:BOOL
292335
)
293-
else()
294-
list(APPEND ${CMAKE_PROJECT_NAME}_SUPERBUILD_EP_VARS
295-
SUPERBUILD_NOT_EXTENSION:BOOL
296-
)
297336
endif()
298337
_expand_external_project_vars()
299338
set(COMMON_EXTERNAL_PROJECT_ARGS ${${CMAKE_PROJECT_NAME}_SUPERBUILD_EP_ARGS})
@@ -322,15 +361,18 @@ ExternalProject_Add(${proj}
322361
DEPENDS ${${LOCAL_PROJECT_NAME}_DEPENDENCIES}
323362
DOWNLOAD_COMMAND ""
324363
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}
325-
BINARY_DIR ${LOCAL_PROJECT_NAME}-build
364+
BINARY_DIR ${LOCAL_PROJECT_NAME}-build
326365
CMAKE_GENERATOR ${gen}
327366
CMAKE_ARGS
328367
--no-warn-unused-cli # HACK Only expected variables should be passed down.
329368
${CMAKE_OSX_EXTERNAL_PROJECT_ARGS}
330369
${COMMON_EXTERNAL_PROJECT_ARGS}
331370
-D${LOCAL_PROJECT_NAME}_SUPERBUILD:BOOL=OFF
332371
-DBUILD_TESTING:BOOL=${BUILD_TESTING}
333-
INSTALL_COMMAND ""
372+
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_BINARY_DIR}/${LOCAL_PROJECT_NAME}-install
373+
-DUSE_niral_utilities=${USE_niral_utilities}
374+
-DUSE_DTIProcess=${USE_DTIProcess}
375+
#INSTALL_COMMAND ""
334376
)
335377

336378
## Force rebuilding of the main subproject every time building from super structure

SuperBuild/External_ANTs.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${extProjName}" AND "${USE_SYSTEM_${extProjName}}"
8686
ExternalProject_Add(${proj}
8787
GIT_REPOSITORY ${${proj}_REPOSITORY}
8888
GIT_TAG ${${proj}_GIT_TAG}
89+
${git_config_arg}
8990
SOURCE_DIR ${EXTERNAL_SOURCE_DIRECTORY}/${proj}
9091
BINARY_DIR ${proj}-build
9192
LOG_CONFIGURE 0 # Wrap configure in script to ignore log output from dashboards

SuperBuild/External_BRAINSTools.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,7 @@ if(NOT ( DEFINED "${extProjName}_SOURCE_DIR" OR ( DEFINED "USE_SYSTEM_${extProjN
242242
ExternalProject_Add(${proj}
243243
GIT_REPOSITORY ${${proj}_REPOSITORY}
244244
GIT_TAG ${${proj}_GIT_TAG}
245+
${git_config_arg}
245246
SOURCE_DIR ${EXTERNAL_SOURCE_DIRECTORY}/${proj}
246247
BINARY_DIR ${proj}-build
247248
LOG_CONFIGURE 0 # Wrap configure in script to ignore log output from dashboards

SuperBuild/External_BatchMake.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${extProjName}" AND "${USE_SYSTEM_${extProjName}}"
6969
ExternalProject_Add(${proj}
7070
GIT_REPOSITORY ${${proj}_REPOSITORY}
7171
GIT_TAG ${${proj}_GIT_TAG}
72+
${git_config_arg}
7273
SOURCE_DIR ${EXTERNAL_SOURCE_DIRECTORY}/${proj}
7374
BINARY_DIR ${proj}-build
7475
LOG_CONFIGURE 0 # Wrap configure in script to ignore log output from dashboards

SuperBuild/External_Cppcheck.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${extProjName}" AND "${USE_SYSTEM_${extProjName}}"
6060
ExternalProject_Add(${proj}
6161
GIT_REPOSITORY ${${proj}_REPOSITORY}
6262
GIT_TAG ${${proj}_GIT_TAG}
63+
${git_config_arg}
6364
SOURCE_DIR ${EXTERNAL_SOURCE_DIRECTORY}/${proj}
6465
BUILD_IN_SOURCE 1
6566
LOG_CONFIGURE 0 # Wrap configure in script to ignore log output from dashboards

SuperBuild/External_DCMTK.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${extProjName}" AND "${USE_SYSTEM_${extProjName}}"
119119
ExternalProject_Add(${proj}
120120
GIT_REPOSITORY ${${proj}_REPOSITORY}
121121
GIT_TAG ${${proj}_GIT_TAG}
122+
${git_config_arg}
122123
SOURCE_DIR ${EXTERNAL_SOURCE_DIRECTORY}/${proj}
123124
BINARY_DIR ${EXTERNAL_BINARY_DIRECTORY}/${proj}-build
124125
INSTALL_DIR ${EXTERNAL_BINARY_DIRECTORY}/${proj}-install

0 commit comments

Comments
 (0)