Mercurial > hg > minc-tools
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)