changeset 2662:b48f2e04954b

still fixing mess...
author Vladimir S. FONOV <vladimir.fonov@gmail.com>
date Mon, 02 Apr 2012 18:26:14 -0400
parents 4f18e69b2b5a
children 5189bc0a26e7 9aaff1b83834
files CMakeLists.txt
diffstat 1 files changed, 55 insertions(+), 138 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,54 +15,35 @@
 SET(PACKAGE_VERSION "${MINC2_PACKAGE_VERSION_MAJOR}.${MINC2_PACKAGE_VERSION_MINOR}.${MINC2_PACKAGE_VERSION_PATCH}")
 SET(PACKAGE_STRING  "${PACKAGE_NAME} ${PACKAGE_VERSION}")
 
-
-
 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
 
-IF(NOT MINC_TOOLKIT_BUILD)
+IF(MINC_TOOLKIT_BUILD)
+  SET(MINC2_EXTERNALLY_CONFIGURED ON)
+ENDIF(MINC_TOOLKIT_BUILD)
+
+IF(NOT MINC2_EXTERNALLY_CONFIGURED)
   SET(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules")
   ENABLE_TESTING()
   INCLUDE(CTest)
   
-  IF(CMAKE_VERSION VERSION_GREATER 2.8.2 )
-    INCLUDE(ExternalProject)
-    INCLUDE(BuildNETCDF)
-    INCLUDE(BuildHDF5)
-    SET(ENABLE_SUPERBUILD ON)
-  ELSE(CMAKE_VERSION VERSION_GREATER 2.8.2 )
-    SET(ENABLE_SUPERBUILD OFF)
-  ENDIF(CMAKE_VERSION VERSION_GREATER 2.8.2)
-  
   SET(CPACK_GENERATOR TGZ)
   SET(CPACK_PACKAGE_VERSION_MAJOR ${MINC2_PACKAGE_VERSION_MAJOR})
   SET(CPACK_PACKAGE_VERSION_MINOR ${MINC2_PACKAGE_VERSION_MINOR})
   SET(CPACK_PACKAGE_VERSION_PATCH ${MINC2_PACKAGE_VERSION_PATCH})
   
   INCLUDE(CPack)
-
-  FIND_PACKAGE(ITK QUIET)
-  
-ENDIF(NOT MINC_TOOLKIT_BUILD)
+ENDIF(NOT MINC2_EXTERNALLY_CONFIGURED)
 
 #ADD_SUBDIRECTORY( doc )
 
-OPTION(BUILD_MINC2       "Support minc2 file format" ON)
-OPTION(BUILD_TOOLS       "Build minc tools (mincreshape,mincresample, etc)" ON)
-OPTION(BUILD_CONVERTERS  "Build minc conversion programs (mnc2nii, nii2mnc , dcm2mnc...)" ON)
-OPTION(BUILD_EZMINC      "Build C++ interface library EZminc" ON)
-OPTION(BUILD_SHARED_LIBS "Build minc2 with shared libraries." OFF)
+OPTION(MINC2_BUILD_V2          "Support minc2 file format" ON)
+OPTION(MINC2_BUILD_TOOLS       "Build minc tools (mincreshape,mincresample, etc)" ON)
+OPTION(MINC2_BUILD_CONVERTERS  "Build minc conversion programs (mnc2nii, nii2mnc , dcm2mnc...)" ON)
+OPTION(MINC2_BUILD_EZMINC      "Build C++ interface library EZminc" ON)
+OPTION(MINC2_BUILD_SHARED_LIBS "Build minc2 with shared libraries." OFF)
 
-IF(ENABLE_SUPERBUILD)
-  OPTION(USE_SYSTEM_NETCDF "Use System NETCDF > 3.6.3" ON)
-ELSE(ENABLE_SUPERBUILD)
-  SET(USE_SYSTEM_NETCDF ON)
-ENDIF(ENABLE_SUPERBUILD)
+IF(MINC2_BUILD_V2 AND NOT MINC2_EXTERNALLY_CONFIGURED)
 
-IF(BUILD_EZMINC AND ITK_FOUND)
-  OPTION(BUILD_MINC4ITK   "Build ITK interface" ON)
-ENDIF(BUILD_EZMINC AND ITK_FOUND)
-
-IF(BUILD_MINC2 AND NOT MINC_TOOLKIT_BUILD)
   IF(ITK_FOUND AND ITK_VERSION_MAJOR VERSION_EQUAL 4) # check if using ITK HDF5 library
     IF(ITKHDF5_LOADED)
       SET(USE_ITK_HDF5 ON)
@@ -71,13 +52,9 @@
     ENDIF(ITKHDF5_LOADED)
   ELSE(ITK_FOUND AND ITK_VERSION_MAJOR VERSION_EQUAL 4) # check if using ITK HDF5 library
     SET(USE_ITK_HDF5 OFF)
-    IF(ENABLE_SUPERBUILD)
-      OPTION(USE_SYSTEM_HDF5 "Use System HDF5 > 1.8" ON)
-    ELSE(ENABLE_SUPERBUILD)
-      SET(USE_SYSTEM_HDF5 ON)
-    ENDIF(ENABLE_SUPERBUILD)
   ENDIF(ITK_FOUND AND ITK_VERSION_MAJOR VERSION_EQUAL 4) # check if using ITK HDF5 library
-ENDIF(BUILD_MINC2 AND NOT MINC_TOOLKIT_BUILD)
+  
+ENDIF(MINC2_BUILD_V2 AND NOT MINC2_EXTERNALLY_CONFIGURED)
 
 IF(BUILD_SHARED_LIBS)
   SET(LIBRARY_TYPE SHARED)
@@ -89,27 +66,19 @@
 
 
 # external packages
-IF(NOT MINC_TOOLKIT_BUILD)
-  IF(USE_SYSTEM_NETCDF AND NOT MINC_TOOLKIT_BUILD)
-    FIND_PACKAGE(NETCDF REQUIRED)
-  ELSE(USE_SYSTEM_NETCDF AND NOT MINC_TOOLKIT_BUILD)
-    build_netcdf(${CMAKE_INSTALL_PREFIX})
-  ENDIF(USE_SYSTEM_NETCDF AND NOT MINC_TOOLKIT_BUILD)
-ENDIF(NOT MINC_TOOLKIT_BUILD)
+IF(NOT MINC2_EXTERNALLY_CONFIGURED)
+  FIND_PACKAGE(NETCDF REQUIRED)
+ENDIF(NOT MINC2_EXTERNALLY_CONFIGURED)
 
 
-IF(BUILD_MINC2 AND NOT MINC_TOOLKIT_BUILD)
+IF(MINC2_BUILD_V2 AND NOT MINC2_EXTERNALLY_CONFIGURED)
   IF(USE_ITK_HDF5)
     SET(HDF5_INCLUDE_DIR "${ITKHDF5_INCLUDE_DIRS}/itkhdf5") # a hack?
     SET(HDF5_LIBRARY     ${ITKHDF5_LIBRARIES})
     SET(ZLIB_LIBRARIES   ${ITKZLIB_LIBRARIES})
   ELSE(USE_ITK_HDF5)
     FIND_PACKAGE(ZLIB REQUIRED)
-    IF(USE_SYSTEM_HDF5)
-      FIND_PACKAGE(HDF5 REQUIRED)
-    ELSE(USE_SYSTEM_HDF5)
-      build_hdf5(${CMAKE_INSTALL_PREFIX})
-    ENDIF(USE_SYSTEM_HDF5)
+    FIND_PACKAGE(HDF5 REQUIRED)
   ENDIF(USE_ITK_HDF5)
   
   IF(ZLIB_FOUND)
@@ -120,11 +89,11 @@
       SET(HAVE_ZLIB 1)
     ENDIF(ZLIB_FOUND)
   ENDIF(ZLIB_FOUND)
-ENDIF(BUILD_MINC2 AND NOT MINC_TOOLKIT_BUILD)
+ENDIF(MINC2_BUILD_V2 AND NOT MINC2_EXTERNALLY_CONFIGURED)
 
 # add for building relocatable library
 IF(UNIX)
-  SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
+  SET(CMAKE_C_FLAGS   "${CMAKE_C_FLAGS} -fPIC")
   SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
 ENDIF(UNIX)
 
@@ -171,34 +140,23 @@
 # aliases
 SET(VERSION "${PACKAGE_VERSION}")
 
-IF(BUILD_EZMINC)
+IF(MINC2_BUILD_EZMINC)
   set(MINC2_INCLUDE_DIRS_CONFIG    
     ${CMAKE_CURRENT_SOURCE_DIR}/ezminc
   )
   INCLUDE_DIRECTORIES(
     ${CMAKE_CURRENT_SOURCE_DIR}/ezminc
    )
-ENDIF(BUILD_EZMINC)
-
-IF(BUILD_MINC4ITK AND BUILD_EZMINC AND ITK_FOUND)
-  set(MINC2_INCLUDE_DIRS_CONFIG
-    ${CMAKE_CURRENT_SOURCE_DIR}/minc4itk
-  )
-
-  INCLUDE_DIRECTORIES(
-    ${CMAKE_CURRENT_SOURCE_DIR}/minc4itk
-   )
-ENDIF(BUILD_MINC4ITK AND BUILD_EZMINC  AND ITK_FOUND)
-
+ENDIF(MINC2_BUILD_EZMINC)
 
 # netcdf and HDF5
 
-IF(BUILD_MINC2)
+IF(MINC2_BUILD_V2)
   FIND_PACKAGE(ZLIB REQUIRED)
   SET(MINC2 "1")
 ELSE(BUILD_MINC2)
   SET(MINC2 "0")
-ENDIF(BUILD_MINC2)
+ENDIF(MINC2_BUILD_V2)
 
 # config files for build
 CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h @ONLY)
@@ -216,9 +174,9 @@
 
 INCLUDE_DIRECTORIES( ${NETCDF_INCLUDE_DIR} )
 
-IF(BUILD_MINC2)
+IF(MINC2_BUILD_V2)
   INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/libsrc2 )
-ENDIF(BUILD_MINC2)
+ENDIF(MINC2_BUILD_V2)
 
 # some variables
 SET(minc1_LIB_SRCS
@@ -307,7 +265,7 @@
    volume_io/Volumes/volumes.c
 )
 
-SET(volume_io_internal_HEADERS
+SET(volume_io_HEADERS
     volume_io/Include/volume_io/alloc.h
     volume_io/Include/volume_io/arrays.h 
     volume_io/Include/volume_io/basic.h 
@@ -315,6 +273,7 @@
     volume_io/Include/volume_io/files.h 
     volume_io/Include/volume_io/geom_structs.h 
     volume_io/Include/volume_io/geometry.h 
+    volume_io/Include/internal_volume_io.h 
     volume_io/Include/volume_io/multidim.h 
     volume_io/Include/volume_io/progress.h 
     volume_io/Include/volume_io/string_funcs.h 
@@ -325,41 +284,28 @@
     volume_io/Include/volume_io/volume_cache.h
 )
 
-SET(volume_io_HEADERS
-	volume_io/Include/volume_io.h
-	volume_io/Include/internal_volume_io.h
-)
-
-
 SET(MINC2_LIBRARY minc)
 SET(VOLUME_IO_LIBRARY volume_io)
 
 SET(MINC2_LIBRARIES ${MINC2_LIBRARY} ${NETCDF_LIBRARY})
 
-SET(MINC2_DEPENDENCIES "")
+#SET(MINC2_DEPENDENCIES "")
 
-IF(NOT USE_SYSTEM_NETCDF) 
-  SET(MINC2_DEPENDENCIES ${MINC2_DEPENDENCIES} NETCDF)
-ENDIF(NOT USE_SYSTEM_NETCDF)  
+IF(MINC2_BUILD_V2)
 
-
-IF(BUILD_MINC2)
   INCLUDE_DIRECTORIES( ${HDF5_INCLUDE_DIR} )
 
   SET(minc_LIB_SRCS ${minc1_LIB_SRCS} ${minc2_LIB_SRCS})
   SET(minc_HEADERS ${minc1_HEADERS} ${minc2_HEADERS})
   SET(MINC2_LIBRARY minc2)
   SET(MINC2_LIBRARIES ${MINC2_LIBRARY} ${HDF5_LIBRARY} ${NETCDF_LIBRARY} ${ZLIB_LIBRARIES}  m )
-  
   SET(VOLUME_IO_LIBRARY volume_io2)
   
-  IF(NOT USE_SYSTEM_HDF5)
-    SET(MINC2_DEPENDENCIES ${MINC2_DEPENDENCIES} HDF5)
-  ENDIF(NOT USE_SYSTEM_HDF5)
-ELSE(BUILD_MINC2)
+ELSE(MINC2_BUILD_V2)
   SET(minc_LIB_SRCS ${minc1_LIB_SRCS} )
   SET(minc_HEADERS ${minc1_HEADERS} ${minc2_HEADERS})
-ENDIF(BUILD_MINC2)
+ENDIF(MINC2_BUILD_V2)
+
 
 ADD_LIBRARY(${MINC2_LIBRARY} ${LIBRARY_TYPE} ${minc_LIB_SRCS} )
 TARGET_LINK_LIBRARIES(${MINC2_LIBRARY} ${NETCDF_LIBRARY} ${HDF5_LIBRARY} ${ZLIB_LIBRARIES} m )
@@ -369,41 +315,24 @@
 SET_TARGET_PROPERTIES(${MINC2_LIBRARY}     PROPERTIES VERSION ${PACKAGE_VERSION} SOVERSION ${MINC2_PACKAGE_VERSION_MAJOR})
 SET_TARGET_PROPERTIES(${VOLUME_IO_LIBRARY} PROPERTIES VERSION ${PACKAGE_VERSION} SOVERSION ${MINC2_PACKAGE_VERSION_MAJOR})
 
-#ADD_DEPENDENCIES(${MINC2_LIBRARY} ${MINC2_DEPENDENCIES}) 
 ADD_DEPENDENCIES(${VOLUME_IO_LIBRARY} ${MINC2_LIBRARY})
 
-INSTALL(TARGETS ${MINC2_LIBRARY} ${LIBRARY_INSTALL} DESTINATION lib)
+INSTALL(TARGETS ${MINC2_LIBRARY}     ${LIBRARY_INSTALL} DESTINATION lib)
 INSTALL(TARGETS ${VOLUME_IO_LIBRARY} ${LIBRARY_INSTALL} DESTINATION lib)
-
-INSTALL(FILES 
-    ${minc_HEADERS}
-  DESTINATION 
-    include
-  )
-
-INSTALL(FILES
-    ${volume_io_internal_HEADERS}
-  DESTINATION include/volume_io)
+INSTALL(FILES   ${minc2_HEADERS}     DESTINATION  include  )
+INSTALL(FILES   ${volume_io_HEADERS} DESTINATION include/volume_io)
 
-INSTALL(FILES
-    ${volume_io_HEADERS}
-  DESTINATION include)
+IF(MINC2_BUILD_TOOLS)
+  ADD_SUBDIRECTORY( progs )
+ENDIF(MINC2_BUILD_TOOLS)
 
-IF(BUILD_TOOLS)
-  ADD_SUBDIRECTORY( progs )
-ENDIF(BUILD_TOOLS)
-
-IF(BUILD_CONVERTERS)
+IF(MINC2_BUILD_CONVERTERS)
   ADD_SUBDIRECTORY( conversion )
-ENDIF(BUILD_CONVERTERS)
+ENDIF(MINC2_BUILD_CONVERTERS)
 
-IF(BUILD_EZMINC)
+IF(MINC2_BUILD_EZMINC)
   ADD_SUBDIRECTORY( ezminc )
-ENDIF(BUILD_EZMINC)
-
-IF(BUILD_MINC4ITK AND BUILD_EZMINC AND ITK_FOUND)
-  ADD_SUBDIRECTORY( minc4itk )
-ENDIF(BUILD_MINC4ITK AND BUILD_EZMINC AND ITK_FOUND)
+ENDIF(MINC2_BUILD_EZMINC)
 
 # config for the build directory
 set(MINC2_USE_FILE_CONFIG  ${CMAKE_CURRENT_BINARY_DIR}/UseMINC2.cmake)
@@ -414,28 +343,16 @@
   ${CMAKE_CURRENT_SOURCE_DIR}/volume_io/Include
 )
 
-IF(BUILD_MINC2)
+IF(MINC2_BUILD_V2)
   set(MINC2_INCLUDE_DIRS_CONFIG
     ${MINC2_INCLUDE_DIRS_CONFIG}
     ${CMAKE_CURRENT_SOURCE_DIR}/libsrc2
   )
-ENDIF(BUILD_MINC2)
+ENDIF(MINC2_BUILD_V2)
 
-IF(BUILD_EZMINC)
-  set(MINC2_INCLUDE_DIRS_CONFIG
-    ${MINC2_INCLUDE_DIRS_CONFIG}
-    ${CMAKE_CURRENT_SOURCE_DIR}/ezminc
-  )
+IF(MINC2_BUILD_EZMINC)
   SET(EZMINC_LIBRARIES minc_io ${MINC2_LIBRARIES})
-ENDIF(BUILD_EZMINC)
-
-IF(BUILD_MINC4ITK)
-  set(MINC2_INCLUDE_DIRS_CONFIG
-    ${MINC2_INCLUDE_DIRS_CONFIG}
-    ${CMAKE_CURRENT_SOURCE_DIR}/minc4itk
-  )
-  SET(MINC4ITK_LIBRARIES minc4itk ${EZMINC_LIBRARIES})
-ENDIF(BUILD_MINC4ITK)
+ENDIF(MINC2_BUILD_EZMINC)
 
 set(MINC2_LIBRARY_DIRS_CONFIG ${CMAKE_CURRENT_BINARY_DIR})
 
@@ -448,9 +365,7 @@
 # config for install dir
 set(MINC2_USE_FILE_CONFIG "${CMAKE_INSTALL_PREFIX}/lib/UseMINC2.cmake")
 
-set(MINC2_INCLUDE_DIRS_CONFIG
-  ${CMAKE_INSTALL_PREFIX}/include
-)
+set(MINC2_INCLUDE_DIRS_CONFIG ${CMAKE_INSTALL_PREFIX}/include )
 
 set(MINC2_LIBRARY_DIRS_CONFIG ${CMAKE_INSTALL_PREFIX}/lib)
 
@@ -460,11 +375,13 @@
 configure_file(UseMINC2.cmake.in
   ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/UseMINC2.cmake @ONLY)
 
-INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/UseMINC2.cmake ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/MINC2Config.cmake
+INSTALL(FILES 
+   ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/UseMINC2.cmake 
+   ${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/MINC2Config.cmake
   DESTINATION lib
   COMPONENT Development)
+
 # testing
-
-IF(BUILD_TESTING )
-  ADD_SUBDIRECTORY( testdir )
+IF(BUILD_TESTING)
+  ADD_SUBDIRECTORY(testdir)
 ENDIF(BUILD_TESTING)